Version 4.2.6
 —  Statements  —

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:

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.

Seitenanfang

Syntax-Beschreibung

IF logical-condition

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

Seitenanfang

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.

Seitenanfang