RPG

225. DSPF のサイズを RPG で調べるには ?

実行中の RPGプログラムの中で今、オープンした DSPF がサイズ : 24*80 のセッションで
オープンされているのか、それとも 27*132 の画面セッションでオープンされているのか
どのように調べればよいのだろうか ?

そこで IBM RPG 解説書 で調べてみると


   FMYDSPF    CF   E             WORKSTN                   
   F                                     INFDS(INFDS)      
     :
     :
   D INFDS           DS                   
   D  NUM_ROWS             282    283B 0  
   D  NUM_COLS             284    285B 0   

のように紹介されているので、この例のとおりにコーディングしてみると
行: NUM_ROWS, 桁: NUM_COLS には 0 や不明な値が入っていて全く検出することができない。
つまり、このIBM マニュアルの記述は全くの間違いである。

正しくは、


   FMYDSPF    CF   E             WORKSTN                   
   F                                     INFDS(INFDS)      
     :
     :
   D INFDS           DS                   
   D  NUM_ROWS             152    153B 0  
   D  NUM_COLS             154    155B 0  

である。
このように記述しておけば 行: NUM_ROWS=24 , 桁: NUM_COLS=80 と正しい値を
取得することができる。
もちろん *DS4 の環境であれば 行: NUM_ROWS=27, 桁: NUM_COLS=132 と検出することができる。