IF
logical-condition |
|||||
[THEN ]
statement
|
|||||
[ELSE
statement
]
|
|||||
END-IF
|
IF
logical-condition |
|||||
[THEN ] |
statement | ||||
DO statement
DOEND
|
|||||
ELSE
|
statement | ||||
DO statement
DOEND
|
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
| DECIDE
ON
| IF
SELECTION
| ON
ERROR
Gehört zur Funktionsgruppe: Logische Bedingungen
Mit dem Statement IF
wird die Verarbeitung eines Statements
oder einer Gruppe von Statements in Abhängigkeit von einer logischen Bedingung
(logical-condition) gesteuert.
Anmerkung:
Falls keine Handlung ausgeführt werden soll, wenn die Bedingung
erfüllt ist, geben Sie das Statement IGNORE
in der
THEN
-Klausel an.
IF logical-condition |
Die logische Bedingung, die Sie definieren, bestimmt, wann das
Statement bzw. die Statements, die Sie im Beispiele: IF #A = #B IF LEAVE-TAKEN GT 30 IF #SALARY(1) * 1.15 GT 5000 IF SALARY (4) = 5000 THRU 6000 IF DEPT = 'A10' OR = 'A20' OR = 'A30' Näheres hierzu siehe Abschnitt Logische Bedingungen im Leitfaden zur Programmierung. |
---|---|
THEN statement | In der THEN -Klausel geben Sie eines oder mehrere
Statements an, die ausgeführt werden sollen, wenn
die logische Bedingung erfüllt ist.
|
ELSE statement | In der ELSE -Klausel geben Sie eines oder mehrere
Statements an, die ausgeführt werden sollen, wenn
die logische Bedingung nicht erfüllt ist.
|
END-IF | Das für Natural reservierte Wort END-IF muss zum
Beenden des IF -Statements benutzt werden.
|
** Example 'IFEX1S': IF (structured mode) ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 NAME 2 FIRST-NAME 2 SALARY (1) 2 BIRTH 1 VEHIC-VIEW VIEW OF VEHICLES 2 PERSONNEL-ID 2 MAKE * 1 #BIRTH (D) END-DEFINE * MOVE EDITED '19450101' TO #BIRTH (EM=YYYYMMDD) SUSPEND IDENTICAL SUPPRESS LIMIT 20 * FND. FIND EMPLOY-VIEW WITH CITY = 'FRANKFURT' SORTED BY NAME BIRTH IF SALARY (1) LT 40000 WRITE NOTITLE '*****' NAME 30X 'SALARY LT 40000' ELSE IF BIRTH GT #BIRTH FIND VEHIC-VIEW WITH PERSONNEL-ID = PERSONNEL-ID (FND.) DISPLAY (IS=ON) NAME BIRTH (EM=YYYY-MM-DD) SALARY (1) MAKE (AL=8) END-FIND END-IF END-IF END-FIND END
Ausgabe des Programms IFEX1S
:
NAME DATE ANNUAL MAKE OF SALARY BIRTH -------------------- ---------- ---------- -------- BAECKER 1956-01-05 74400 BMW ***** BECKER SALARY LT 40000 BLOEMER 1979-11-07 45200 FIAT FALTER 1954-05-23 70800 FORD ***** FALTER SALARY LT 40000 ***** GROTHE SALARY LT 40000 ***** HEILBROCK SALARY LT 40000 ***** HESCHMANN SALARY LT 40000 HUCH 1952-09-12 67200 MERCEDES ***** KICKSTEIN SALARY LT 40000 ***** KLEENE SALARY LT 40000 ***** KRAMER SALARY LT 40000
Äquivalentes Reporting-Mode-Beispiel: IFEX1R
.