IF

#### Search Results

Search

# IF

#### Structured Mode-Syntax

`IF` logical-condition
[`THEN`] statement
[`ELSE` statement ]
`END-IF`

#### Reporting Mode-Syntax

`IF` logical-condition
[`THEN`] |  | statement |  |
`DO` statement `DOEND`
| `ELSE` |  | statement |  |
`DO` statement `DOEND`

Dieses Dokument behandelt folgende Themen:

- Funktion

- Syntax-Beschreibung

- Beispiel - IF-Statement

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

## Funktion

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.

## Syntax-Beschreibung

Syntax-Element-Beschreibung

Syntax-Element | Beschreibung
--- | ---
`IF logical-condition` | Logische Bedingung: Die logische Bedingung, die Sie definieren, bestimmt, wann das Statement bzw. die Statements, die Sie im `IF`-Statement angeben, ausgeführt werden soll/en und wann nicht. 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` | THEN-Klausel: 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` | ELSE-Klausel: 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` | Ende des IF-Statements: Im Structured Mode muss das für Natural reservierte Wort `END-IF` zum Beenden des `IF`-Statements benutzt werden. Im Reporting Mode werden die Statements `DO ... DOEND` benutzt, um je nach Situation eines oder mehrere passende Statements anzugeben, und um die Klauseln und das `IF`-Statement zu beenden. Falls Sie nur ein einziges Statement angeben, können Sie die Statements `DO ... DOEND` weglassen. Das ist jedoch nicht im Sinne einer guten Kodierpraxis und wird nicht empfohlen.
`statement` `DO statement ... DOEND`

## Beispiel - IF-Statement

    ** 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`.

### On this page

- Funktion
- Syntax-Beschreibung
- Beispiel - IF-Statement