RPG

229. 画面罫線を GRDxxx で15分で簡単に引くには

表示装置ファイル( DSPF ) の画面罫線を引くには ToolBox を使って
罫線イメージ・レコードを作成していたのが古くからの方法であるが
罫線イメージ・レコードを含む DDSソースを見ても内容は目検では
判断することはできない。

実は IBM は DDSで罫線を引くためのキー・ワードのセットを既に用意している。
この方法を使えば ToolBox も不要であり、なおかつ DDSソースを見るだけで
どのように罫線が構成されているかが一目で判断することができる。
OVERLAY も必要なく 15分もあれば十分使い方を学習できる簡単な方法であるので
ここで紹介しよう。

まず最初に罫線のキー・ワードは IBM DDS解説書の表示装置ファイル解説書をいくら探しても
見つからない。
理由は、表示装置の罫線に関連するキー・ワードは一般の表示装置ファイルのDDSキー・ワード項目ではなく
「DBCSを使用する表示装置ファイルのためのキー・ワードに関する考慮事項」という場所に
書かれているためで、非常に見つけにくい場所にある。

「DBCSを使用する表示装置ファイルのためのキー・ワードに関する考慮事項」を参照すると

GRDATR グリッド属性キー・ワード、罫線の属性を定義する。
GRDBOX グリッド・ボックス、矩形の罫線を記述する。
GRDLIN グリッド・ライン、縦または横方向の線分の罫線を記述する。
GRDCLR グリッド消去, 罫線のイメージを消去する。

これくらいの機能が理解できれば罫線を書くのには十分である。
早速、罫線の書き方を紹介しよう。

1. 罫線は GRDRCD というタイプのレコードに記述する

罫線は罫線レコードに相当する専用の表示レコードに罫線情報だけを記述する。
つまり一般の表示レコード内に罫線イメージを書くのではなく罫線だけを
記述する専用レコードの定義が必要である。

レコード・タイプは GRDRCD という名前として定義する。

【例】
       A*( 罫線バッファー )                                              
       A          R GRDREC                    GRDRCD                     
       A                                      GRDATR((*COLOR WHT) (*LINTYP SLD)) 
       A                                      GRDBOX((*POS (8 2 12 78)) +
       A                                      (*TYPE PLAIN))   
       A                                      GRDLIN((*POS (8 2 78)) + 
       A                                      (*TYPE LOWER))           
       A                                      GRDLIN((*POS (9 6 11)) + 
       A                                      (*TYPE LEFT))            	          

2. 罫線は最初に GRDATR で罫線のタイプを定義する

前述の例のように

         GRDATR((*COLOR WHT) (*LINTYP SLD))

のようにして *COLOR で罫線の色と *LINTYP で罫線の太さやタイプを定義しておく。

3. 罫線は GRDBOX または GRDLIN で定義する

前述の例のように罫線は GRDBOX または GRDLIN で定義する。
GRDBOX は矩形(ボックス型) の罫線を書くのに使用し、GRDLIN は縦または横方向の線分となる
罫線を指定するのに使用する。

       GRDBOX((*POS(行 桁 行数 列数 ) , ....)

であり、

       GRDLIN((*POS(行 桁 数) (*TYPE タイプ))

はタイプが LOWER または UPPER の場合は横線を意味し
タイプが RIGHT または LEFT の場合は縦線を意味している。

4. 罫線の消去は GRDCLR の罫線消去レコードを出力する

【例】
      A*( 罫線クリヤー )                           
      A          R GRDCLR                    GRDRCD
      A                                      GRDCLR

この GRDCLR という表示レコードを出力することで前に表示された罫線イメージを消去することができる。
参考までに、罫線レコードや罫線イメージを受ける表示レコードに OVERLAY キー・ワードは一切不要である。

次は上記の罫線レコードを出力した画面である。