RPG

499. IINFDS の見方

RPGでファイル仕様書にINFDS(=Information Data Structure)を
定義しておくとそのファイルのよりくわしい情報を取得することができる。
これによってプログラムの機能を拡張することができる。
_

   F@SHOHIN   CF   E             WORKSTN             
   F                                     INFDS(INFDS)
   :
   D INFDS           DS                                                                           
   D  NUM_ROWS             152    153B 0                                       DSPF の行数        
   D  NUM_COLS             154    155B 0                                       DSPF の桁数        
   D  NUM_RCDS             156    159I 0                                        レコード数        
   D  RECNAM               261    270                                          現在のレコード名   
   D  LINE                 370    371B 0                                       カーソル行と桁     
   D  TOPRRN_              378    379B 0                                       SFL 先頭の RRN     
   D  BRRN                 376    377B 0                                       入出力レコード RRN 

    :
   C*****************************************************                                 
   C     CURSOR        BEGSR                                                              
   C*****************************************************                                 
   C     LINE          DIV       256           LIN               3 0          画面の行数 
   C                   MVR                     POS               3 0          画面の桁数 
   C                   ENDSR                                                              

[解説]

NUM_ROW とNUM_COLS は現在の表示画面サイズを表している。
24 * 80 または 27 * 132 の値が取得される・

NUM_RCDS とはこのファイルを最初にオープンしたときのレコード数である。
しかしこのプログラムや他のプログラムでレコードを追加してもこの値は可さんされない。
この値を保守するにはプログラム内部で可さんしなければならない。

RECNAM とは現在、入出力したファイルのレコード名である。

LINE によって表示ファイルに対するカーソルの位置を取得することができる。

TOPRRN はサブ・ファイルをロールアップしたときに今、最上部に表示されている
サブ・ファイル・レコードのRRN を示している。

BRRN はサブ・ファイルや現在のファイルの入出力しているレコードのRRNを
示している。
_