画面装置ファイル : DSPF のフィールドの 行、桁 の位置は DDS にいったん記述すると
そのままであり、動的に変更することはできない、と信じられがちであるが
実は変化させる方法がひとつだけあるので紹介する。
DSPF の DDSソースにはファイル・レベルで次のような記述がある。
A DSPSIZ(24 80 *DS3)
これは画面サイズ( DSPSIZ
)を表すキー・ワードであり 24行 80桁のサイズを *DS3
で
代表することを意味している。
画面項目の桁位置は、実はこの画面サイズによって制御できるのである。
その前に DSPSIZ
について、もう少し説明すると DSPSIZ(40 128 *DS5)
のように
自由にサイズを指定できるわけではない。
自由にサイズ指定ができればよいのだがそれは残念ながらできない。
24 80 *DS3
または 27 132 *DS4
の二つだけが有効であり、このふたつなら同時に指定することもできる。
A DSPSIZ(27 132 *DS4 24 80 *DS3)
とすれば 27*132 および 24*80 の両方をサポートする画面であることを
意味している。
そこで
A DSPSIZ(27 132 *DS4 24 80 *DS3) : : A ZKSU 5Y 0O 9 82TEXT(' 在庫数 ') A *DS3 10 2
のように記述することができる。
これは *DS4
の場合は フィールド : ZKSU
は 9行目 82桁に配置し、*DS3
の場合は
10行目 2桁目に配置することを意味している。
このように指定すると *DS3
および *DS4
の画面サイズによってフィールドや
テキスト(固定情報)の位置を制御することができる。
ただし *DS3
の場合と *DS4
の場合によって配置の位置が前後するような指定は
コンパイラー( CRTDSPF
) によってエラーであると判断されてしまう。
これは DSPF の入出力バッファーが *DS3
と *DS4
によって異なってしまうことになるからである。
とは言うものの読者は DSPF の桁位置を変化させる方法があるとは驚いたかもしれない。