表示装置ファイルの DSPSIZ (画面サイズ) キーワード

これはファイル・レベル・キーワードで、プログラムでこの表示装置ファイルをオープンする際に使用できる表示画面のサイズを指定するために使用します。

このキーワードの形式は次のとおりです。

DSPSIZ(*DSw [*DSx])
DSPSIZ(lines positions[condition-name-1][lines positions[condition-name-2]])

DSPSIZ キーワードは、任意指定のキーワードです。 このキーワードを指定しなかった場合には、表示装置ファイルは、24 x 80 の画面を備えた表示装置に対してのみオープンすることができます。このキーワードは次のいずれかの方法で指定します。

オプション標識は、このキーワードでは無効です。

1 次画面サイズと 2 次画面サイズ

IBM 提供の画面サイズ条件名を使用するか、行数と桁数を直接指定するかにかかわらず、最初に指定した画面サイズが 1 次画面サイズ になります。 2 番目の画面サイズを指定すれば、それが 2 次画面サイズ になります。図 1 に、1 次画面サイズおよび 2 次画面サイズを指定する場合の例を示します。この図は、DSPSIZ(24 80 27 132) として指定されたキーワードを示しています。1 次画面サイズは 24 x 80、2 次画面サイズは 27 x 132 です。

図 1. DSPSIZ による 1 次画面サイズと 2 次画面サイズの指定
図は、DSPSIZ(24 80 27 132) として指定された DSPSIZ キーワードを示しています。

DSPSIZ キーワードに 2 つ以上の画面サイズを指定する場合には、後続の DDS ステートメントの 7 - 16 桁目にレコード・レベルおよびフィールド・レベルで画面サイズ条件名を指定することができます。 指定した画面サイズ条件名は、フィールドの位置およびキーワードを条件付けるために用いられます。1 次および 2 次画面の両方を指定するとき、表示装置ファイルは両方のサイズの妥当性検査を行います。

注: DSPSIZ でユーザー定義の画面サイズ条件名を指定した場合には、IBM 提供の画面サイズ条件名を条件設定に使用することはできません。

27 x 132 のモードによる表示機能は、6040 または 6041 制御装置にローカル接続されているか、5294 または 5394 制御装置にリモート接続されている 3180-2 型表示装置あるいは 3197-D1 型、D2 型、W1 型、または W2 型表示装置でのみ使用できます。 これらの制御装置が使用されていない場合には、DSPSIZ キーワードに 27 x 132 モードの画面サイズを指定しても、それは無視されます。

次の表に有効な画面サイズを示します。

画面サイズ 表示装置 意味
*DS3 または 24 x 80 3179 3180 3196 3197 3476 3486 3487 (HA 型、HC 型、HG 型、および HW 型) 3488 5251 (11 型および 12 型) 5291 5292 24 行 x 80 桁、合計 1920 桁
*DS4 または 27 x 132 3180 3197 (D1 型、D2 型、W1 型、および W2 型) 3477 (FA 型、FC 型、FD 型、および FG 型) 3487 (HA 型、HC 型、HG 型、および HW 型) 3488 (27 x 132 の表示機能を使用するためには、ローカルの場合は 6040 または 6041 制御装置、リモートの場合は 5294 または 5394 制御装置を使用します。) 27 行 x 132 桁、合計 3564 桁

1 次画面サイズとして指定する画面サイズは、当該表示装置ファイルで最も頻繁に使用する画面サイズにすることを推奨します。 実際に使用される画面サイズが 2 次画面サイズの場合には、余分な処理が実行されることになります。

画面サイズ条件名を使用することにより、任意のサイズの画面で 1 つの表示装置ファイルを効率よく使用することができます。 例えば、サブファイルを使用している場合には、27 x 132 の画面については 1 ページあたり 24 レコード、24 x 80 の画面については 1 ページあたり 22 レコードを指定することができます。

DSPSIZ キーワードを指定したときに起こり得る特殊な場合

DSPSIZ を指定したときに、以下の特殊な場合が生じる可能性があります。

注: 表示装置ファイルにおける 1 次位置順序は、2 次画面サイズに別の位置順序を指定して変更するようなことをしてはなりません。 (そのようなことをすると、重大なエラーが起こり、ファイルの作成は行われません。)

例 1

次の例は、DSPSIZ キーワードを用いて 1 次画面サイズと 2 次画面サイズを指定する方法を示しています。

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A*
00020A*                                           1  2
00030A                                      DSPSIZ(27 132 24 80)
00040A          R RECORDA
00050A            FIELDA        10  0   1  2
00060A            FIELDB        10  0   1 81
00070A            FIELDC        10  0  25  1
     A

この例では、1 次画面サイズ 1 が 27 x 132 で、2 次画面サイズ 2 が 24 x 80 です。 FIELDB は 80 桁目を超えており、FIELDC は 24 桁目を超えています。したがって、データ記述処理プログラムは、2 次画面サイズ 24 x 80 の場合には、拡張ソース印刷出力で *NOLOC の位置をこの 2 つのフィールドに割り当てます。

データ記述処理プログラムが入力可能フィールドに *NOLOC を割り当てた場合には、実行時にそのフィールドは、ユーザーの入力バッファーに戻される入力バッファー・データを準備する段階まで処理されます。フィールド自体は表示されません。 したがって、ワークステーション・ユーザーは、このようなフィールドについては入力も変更も行うことができません。出力専用フィールドに ついては、どのような処理も行われません。

図 2 は、上の例に示したコーディング例のコンパイル・リストです。

図 2. コンパイル・リスト
例 1 のために作成したコンパイル・リストの図。

例 2

以下に、DSPSIZ キーワードを用いて 1 次画面サイズと 2 次画面サイズを指定する場合の例をもう 1 つ示します。

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A                                      DSPSIZ(27 132 *WIDE 24 80 *NORMAL)
00020A          R RECORDA
00030A            FIELDA        10  0   1  2
00040A            FIELDB        10  0   1 81
00050A  *NORMAL                         1 50
00060A            FIELDC        10  0  25  1
00070A  *NORMAL                        23  1
     A

この例は、例 1 と似ていますが、2 次画面サイズ (*NORMAL としてユーザーが定義したもの) の場合に有効な位置が FIELDB (1 行目、50 桁目) および FIELDC (23 行目、1 桁目) についてそれぞれ指定されている点が、前の例とは異なります。

例 3

次の例には、異なる画面サイズに対してファイルをオープンする場合の、フィールドの位置の指定方法を示します。

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A                                      DSPSIZ(24 80 27 132)
00020A          R RECORDA
00030A            FIELD1        10  0  23  2
00040A
00050A
00060A  *DS4                           26  2
     A

この例では、FIELD1 に対して、両方の画面サイズで有効な位置が指定されています。 このフィールドは、どちらの画面サイズでも、最終行の 1 つ前の行に表示されます。

例 4

次の例に示すように、画面サイズ条件名を指定しなかった場合でも、DDS のプラス 機能が働く結果、フィールドの表示位置がやはり画面サイズにより決まることがあります。

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A                                      DSPSIZ(*DS4 *DS3)
00020A          R RECORD1
00030A            FIELD1        21      2 70
00040A            FIELD2        10       +10
     A

この例では、DSPSIZ キーワードに指定された各画面サイズについて、各フィールドの行および桁が算出されます。 プラスの値で示されたフィールドの位置が 80 桁目を超えた場合には、フィールドの位置は画面サイズに 応じて決まります。図 3 は、上の例に示したコーディング例のコンパイル・リストです。

図 3. コンパイル・リスト
例 4 のために作成したコンパイル・リストの図。