DECIDE
ON
|
||||||||||
{ | } [VALUES ] [OF ]
|
|||||||||
{ | } | |||||||||
{ | VALUES |
{ | } | |||||||
[[,{ | }] ... | |||||||||
[: { | } ]] | statement ...} ... | ||||||||
[ANY [VALUES ]
statement
]
|
||||||||||
[ALL [VALUES ]
statement
]
|
||||||||||
NONE [VALUES ]
statement
|
||||||||||
END-DECIDE
|
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: DECIDE
FOR
| IF
|
IF SELECTION
|
ON ERROR
Gehört zur Funktionsgruppe: Logische Bedingungen
Das Statement DECIDE ON
dient dazu, in Abhängigkeit vom
Wert (bzw. von den Werten) einer Variablen eine oder mehrere Handlungen
auszuführen.
Anmerkung:
Falls unter einer bestimmten Bedingung keine Handlung
ausgeführt werden soll, geben Sie das Statement IGNORE
in der betreffenden Klausel
des DECIDE ON
-Statements an.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | S | A | N | A | U | N | P | I | F | B | D | T | L | G | O | ja | nein | |||
operand2 | C | S | A | A | U | N | P | I | F | B | D | T | L | G | O | ja | nein | |||
operand3 | S | A | A | U | B | ja | nein | |||||||||||||
operand4 | C | S | A | A | U | B | ja | nein | ||||||||||||
operand5 | C | S | N | P | I | B * | ja | nein | ||||||||||||
operand6 | C | S | N | P | I | B * | ja | nein | ||||||||||||
operand7 | C | S | N | P | I | B * | ja | nein | ||||||||||||
operand8 | C | S | N | P | I | B * | ja | nein |
* Format B von operand5, operand6, operand7 und operand8 kann nur mit einer Länge von kleiner oder gleich 4 benutzt werden.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung | |
---|---|---|
FIRST/EVERY
|
Zu verarbeitender Wert:
Mit einem dieser Schlüsselwörter geben Sie an, ob nur der
erste gefundene Wert ( |
|
operand1
|
Kontrollfeld:
Als operand1 oder operand2 geben Sie den Namen des Feldes an, dessen Werte geprüft werden sollen. |
|
VALUES operand2
[[,operand2] ...
[:operand2]statement
...
|
Wert des Kontrollfeldes:
Mit dieser Klausel geben Sie den Wert (operand2) des Kontrollfeldes an, sowie die statements, die ausgeführt werden sollen, wenn das Kontrollfeld diesen Wert hat. Sie können einen Wert, mehrere Werte oder einen Bereich von Werten angeben, vor denen als Option einer oder mehrere Wert/e stehen können. Werden mehrere Werte angegeben, müssen diese entweder mit
dem Input-Delimiterzeichen (wie mit dem Session-Parameter
Bei einem Bereich von Werten geben Sie, durch einen Doppelpunkt voneinander getrennt, den Anfangs- und den Endwert des Bereiches an. |
|
SUBSTRING
(operand3,operand5 ,operand6)
|
SUBSTRING-Option:
Wenn Sie die Nach dem Feldnamen (operand3) geben Sie zuerst die Startposition (operand5) und danach die Länge (operand6) des zu prüfenden Teils des Feldes an. |
|
SUBSTRING
(operand4,operand7 ,operand8)
|
Nach dem Feldnamen (operand4) geben Sie zuerst die Startposition (operand7) und danach die Länge (operand8) des zu prüfenden Teils des Feldes an. |
|
ANY
statement
|
ANY-Klausel:
Mit |
|
ALL
statement
|
ALL-Klausel:
Mit Die |
|
NONE
statement
|
NONE-Klausel:
Mit |
|
END-DECIDE
|
Ende des DECIDE
ON-Statements:
Das für Natural reservierte Wort |
** 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
Ausgabe des Programms DECEX3
:
Enter any PF key and check result
Ausgabe nach Drücken von PF1:
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
Ausgabe des Programms DECEX4
:
ENTER ANY VALUE BETWEEN 1 AND 9: 4
Nach Eingabe und Bestätigung des Wertes 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