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
属性に指定された順序で表示されます。