DECIDE
ON |
||||||||||||||||||
[VALUE]
[OF] |
||||||||||||||||||
VALUE |
: |
statement | ||||||||||||||||
, | ||||||||||||||||||
[ANY [VALUE] statement ] |
||||||||||||||||||
[ALL [VALUE] statement ] |
||||||||||||||||||
NONE [VALUE] statement |
||||||||||||||||||
END-DECIDE |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:DECIDE
FOR
| IF
| IF SELECTION
| ON ERROR
関連機能グループ:論理条件の処理
DECIDE ON
ステートメントでは、変数の値(1 つまたは複数の値)に応じて行う複数の処理を指定します。
注意:
ある条件のもとで何も実行しない場合は、DECIDE ON
ステートメントの対応する節にステートメント IGNORE
を指定する必要があります。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
op1 |
S | A | N | A | U | N | P | I | F | B | D | T | L | G | O | ○ | × | |||
op2 |
C | S | A | A | U | N | P | I | F | B | D | T | L | G | O | ○ | × | |||
op3 |
S | A | A | U | B | ○ | × | |||||||||||||
op4 |
C | S | A | A | U | B | ○ | × | ||||||||||||
op5 |
C | S | N | P | I | B * | ○ | × | ||||||||||||
op6 |
C | S | N | P | I | B * | ○ | × | ||||||||||||
op7 |
C | S | N | P | I | B * | ○ | × | ||||||||||||
op8 |
C | S | N | P | I | B * | ○ | × |
* op5
、op6
、op7
および op8
のフォーマット B は、4 以下の長さでのみ使用できます。
構文要素の説明:
構文要素 | 説明 |
---|---|
FIRST/EVERY |
値の処理:
これらのキーワードの 1 つで、見つかった最初の値に対してだけ処理を行うか、または見つかったすべての値に対して処理を行うかを指定します。 |
op1 |
選択フィールド:
|
VALUES
op2 [[,op2] ...
[:op2]statement
... |
VALUES 節:
この節では、選択フィールドの値( 選択フィールドには、1 つの値、複数の値、またはオプションで 1 つ以上の値の範囲を指定できます。 複数の値を指定する場合は、入力デリミタ文字( 値の範囲を指定する場合、範囲の開始値と終了値をコロン(:)で区切って指定します。 |
SUBSTRING |
SUBSTRING オプション:
フィールド名( |
SUBSTRING
(op4,op7,op8) |
SUBSTRING オプション:
フィールド名( |
ANY statement |
ANY 節:
|
ALL statement |
ALL 節:
|
NONE statement |
NONE 節:
|
END-DECIDE |
DECIDE ON ステートメントの終了:
|
** Example 'DECEX3': DECIDE ON (with FIRST option) ************************************************************************ * SET KEY ALL INPUT 'Enter any PF key' / 'and check result' / * DECIDE ON FIRST VALUE OF *PF-KEY VALUE 'PF1' WRITE 'PF1 key entered.' VALUE 'PF2' WRITE 'PF2 key entered.' ANY VALUE WRITE 'PF1 or PF2 key entered.' NONE VALUE WRITE 'Neither PF1 nor PF2 key entered.' END-DECIDE * END
Enter any PF key and check result
Page 1 05-01-11 15:08:50 PF1 key entered. PF1 or PF2 key entered.
** Example 'DECEX4': DECIDE ON (with EVERY option) ************************************************************************ DEFINE DATA LOCAL 1 #FIELD (N1) END-DEFINE * INPUT 'Enter any value between 1 and 9:' #FIELD (SG=OFF) * DECIDE ON EVERY VALUE OF #FIELD VALUE 1 : 4 WRITE 'Content of #FIELD is 1-4' VALUE 2 : 5 WRITE 'Content of #FIELD is 2-5' ANY VALUE WRITE 'Content of #FIELD is 1-5' ALL VALUE WRITE 'Content of #FIELD is 2-4' NONE VALUE WRITE 'Content of #FIELD is not 1-5' END-DECIDE * END
ENTER ANY VALUE BETWEEN 1 AND 9: 4
4
を入力して確認した後:
Page 1 05-01-11 15:11:45 Content of #FIELD is 1-4 Content of #FIELD is 2-5 Content of #FIELD is 1-5 Content of #FIELD is 2-4