| DECIDEFOR | 
 | FIRST | 
 | CONDITION | 
| EVERY | ||||
| { WHENlogical-condition  
                                   statement }   | ||||
| [ WHEN ANYstatement ] | ||||
| [ WHEN ALLstatement ] | ||||
| WHEN NONEstatement  | ||||
| END-DECIDE | ||||
This document covers the following topics:
For explanations of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: DECIDE
                            ON | IF |
                      IF SELECTION |
                      ON ERROR
Belongs to Function Group: Processing of Logical Conditions
The DECIDE FOR statement is used to decide for one or more
                       actions depending on multiple conditions (cases).
               
Note:
 If no action is to be performed under a certain condition,
                          you must specify the statement IGNORE in the corresponding clause of
                          the DECIDE FOR statement.
                  
| Syntax Element | Description | 
|---|---|
| FIRSTCONDITION | Processing of First Condition Only: Only the first true condition is to be processed. See also Example 1. | 
| EVERYCONDITION | Processing of Every Condition: Every true condition is to be processed. See also Example 2. | 
| WHEN
                                       logical-condition statement | Logical Condition(s) to be Processed: With this clause, you specify the logical condition(s) to be processed. See the section Logical Condition Criteria in the Programming Guide. | 
| WHEN
                                       ANYstatement | WHEN ANY Clause: With  | 
| WHEN
                                       ALLstatement | WHEN ALL Clause: With  This clause is applicable only if  | 
| WHEN
                                       NONEstatement | WHEN NONE Clause: With  | 
| END-DECIDE | End of DECIDE FOR Statement: The Natural reserved word  | 
** Example 'DECEX1': DECIDE FOR (with FIRST option)                     
************************************************************************
DEFINE DATA LOCAL                                                       
1 #FUNCTION (A1)                                                        
1 #PARM     (A1)                                                        
END-DEFINE                                                              
*                                                                       
INPUT #FUNCTION #PARM                                                   
*                                                                       
DECIDE FOR FIRST CONDITION                                              
  WHEN #FUNCTION = 'A' AND #PARM = 'X'                                  
    WRITE 'Function A with parameter X selected.'                       
  WHEN #FUNCTION = 'B' AND #PARM = 'X'                                  
    WRITE 'Function B with parameter X selected.'                       
  WHEN #FUNCTION = 'C' THRU 'D'                                         
    WRITE 'Function C or D selected.'                                   
  WHEN NONE                                                             
    REINPUT 'Please enter a valid function.'                            
            MARK *#FUNCTION 
END-DECIDE
*         
END 
                    #FUNCTION #PARM
#FUNCTION A #PARM Y Please enter a valid function.
** Example 'DECEX2': DECIDE FOR (with EVERY option)                     
************************************************************************
DEFINE DATA LOCAL                                                       
1 #FIELD1 (N5.4)                                                        
END-DEFINE                                                              
*                                                                       
INPUT #FIELD1                                                           
*                                                                       
DECIDE FOR EVERY CONDITION                                              
  WHEN #FIELD1 >= 0                                                     
    WRITE '#FIELD1 is positive or zero.'                                
  WHEN #FIELD1 <= 0                                                     
    WRITE '#FIELD1 is negative or zero.'                                
  WHEN FRAC(#FIELD1) = 0                                                
    WRITE '#FIELD1 has no decimal digits.'                              
  WHEN ANY                                                              
    WRITE 'Any of the above conditions is true.'                        
  WHEN ALL                                                              
    WRITE '#FIELD1 is zero.'
  WHEN NONE
    IGNORE 
END-DECIDE
*          
END 
                    #FIELD1 42
Page      1                                                  05-01-11  14:56:26
                                                                               
#FIELD1 is positive or zero.                                                   
#FIELD1 has no decimal digits.                                                 
Any of the above conditions is true.