SB - 選択ボックス

INPUT ステートメントの選択ボックスは、メインフレームコンピュータでのみ利用可能です。他のプラットフォームでは、選択ボックスはマップエディタでのみ定義できます。

選択ボックスは入力フィールドに付加することができます。選択ボックスはコーディングをプログラム内で直接行うことができるため、フィールドにヘルプルーチンを添付する方法に代わる最適な選択肢です。ヘルプルーチンと同様に、特別なプログラムは必要ありません。

英字タイプのすべての INPUT 変数に対して、このフィールドが入力か出力かに関係なく、選択ボックス節を定義できます。

構文は次のとおりです。

SB=operand1 [,operand1]...

operand1 は、選択ボックスを項目で満たすために使用される値オペランドを表します。

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1 C S A       A                         ×

SB では、選択ボックス内に表示する値を指定します。

選択ボックスをフィールドに割り当てるには、次の構文例を使用して、Natural プログラムの英字 INPUT フィールドに属性 SB を指定します。

INPUT #FLD (SB='value1', #ITEM1, #ITEM2(1:3), #ITEM3(*))

以下では次のトピックについて説明します。


構文上の考慮事項

選択ボックスとヘルプルーチンの両方を 1 フィールドに割り当てることができます。

選択ボックスは、INPUT ステートメントのすべての変数フィールドに定義できます。例外は次のとおりです。

システム変数 例えば、次のようになります。 *PROGRAM, *COM
名前付き定数(メインフレームのみ) DEFINE DATA ステートメントの CONST 句で定義されます。

SB 属性に加えて、他の属性も同様に定義できます。例:AD または CD

選択ボックスは、AD=A または AD=M の場合と同様に、修正可能である必要はありません。つまり、AD=O のように書き込み保護されている出力フィールドにでも、選択ボックス(および選択値)を提供することが可能です。AD=O を使用する場合、ユーザーは事前に定義された値のセットから選択するように強制されます。これらの値は選択ボックスに表示されます。

ランタイムの考慮事項

選択ボックスの位置

選択ボックスを含むプログラムを実行するとき、選択ボックスは、ヘルプウィンドウに使用される同じ位置決めアルゴリズムに従って画面に配置されます。つまり、選択ボックスのサイズと位置は、フィールドの "近く" に自動的に決定されます。

選択ボックスの属性

フィールドに割り当てられたカラーおよび高輝度属性は、対応する選択ボックスに表示される値にも適用されます。

選択ボックスの編集マスク

編集マスクがフィールドに定義されている場合、その編集マスクはすべての選択ボックスの値に適用されます。

フィールドに編集マスクを定義するには

INPUT ステートメントを使用して、フィールドに編集マスクを定義できます。次のコード例を参照してください。

DEFINE DATA
LOCAL
1 A(A4)
END-DEFINE
MOVE 'ABCD' TO A
*
SET KEY PF1 = HELP
FORMAT KD=ON
*
INPUT A (AD=M EM=X.X.X.X SB='1234','WXYZ')
WRITE A
END

選択ボックスの行サイズ

選択ボックスの行サイズは、ボックスが対応するフィールドの長さに一致します。

選択ボックスに入力された値が選択ボックスの行サイズを超過した場合、値は切り捨てられます。

選択ボックスの値の順序

選択ボックスの値は、SB 属性に指定された順序で表示されます。