画面処理の応用
本章では、画面の入出力機能の応用について説明します。物理画面に対応する標準的な論理画面より大きいか小さい論理画面を構成することが可能です。これにより、単純なデータの入出力だけではなく、画面の操作を行うことができます。
1. LSDA
IPFOPN/IPFOVSを処理するとき、論理画面の属性を定義するパラメータであるLSDA(Logical Screen Data Area)を利用して論理画面の属性を定義することができます。同パラメータを省略した場合には、標準的な論理画面の属性が適用されます。
LSDAの設定により、以下の機能を利用することができます。
-
論理画面を物理画面より大きく作成することができます。
-
画面分割を利用して、画面のレイアウトを自由に設計することができます。
-
スクロールが可能な部分に対して、画面上に固定領域を設定することができます。
-
画面の移動幅を自由に設定することができます。
LSDAで設定した上記の機能は、IPFOPN/IPFOVSが一度呼び出されると、以降は変更することができないため、慎重に設定する必要があります。LSDAで設定する項目は、以下の12項目であり、各項目は、LSDAでそれぞれ2バイトの領域の占めます。
項目 | 説明 |
---|---|
SIZE1 |
論理画面の行のサイズ |
SIZE2 |
論理画面の列のサイズ |
HARD1A |
ハードウェアの表示領域(開始行) |
HARD1B |
ハードウェアの表示領域(最終行) |
HARD2A |
ハードウェアの表示領域(開始列) |
HARD2B |
ハードウェアの表示領域(最終列) |
SCR1 |
画面の移動幅(行方向) |
SCR2 |
画面の移動幅(列方向) |
NOT1 |
画面の固定領域(行位置) |
NOT2 |
画面の固定領域(列位置) |
DISP1 |
物理画面との差(行方向) |
DISP2 |
物理画面との差(列方向) |
LSDAを省略しない場合には、論理画面のサイズ、ハードウェアの表示領域を必ず指定します。それ以外の場合、ゼロを指定すると標準画面と同じ値に設定されます。 |
2. 画面分割
3. 画面移動(スクロール)
物理画面のサイズに対応する標準的な論理画面の最大サイズは、横80×縦24に制限されます。論理画面のサイズを物理画面のサイズより大きく設定した場合、表示領域を超えた部分は、画面に一度に表示することができません。IPFでは、指定されたファンクション・キーの入力により、論理画面上の出力位置を移動させることが可能です。