| DECIDE
                                         ON | ||||||||||||||||||
| 
 | 
 | [VALUE]
                                         [OF] | 
 | 
 | ||||||||||||||
| 
 | VALUE | 
 | 
 | 
 | : | 
 | 
 | 
 | statement  |    | ||||||||
| ,  | ||||||||||||||||||
| [ANY[VALUE]statement ] | ||||||||||||||||||
| [ALL[VALUE]statement ] | ||||||||||||||||||
| NONE[VALUE]statement  | ||||||||||||||||||
| END-DECIDE | ||||||||||||||||||
This document covers the following topics:
For explanations of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: DECIDE
                            FOR | IF |
                      IF SELECTION |
                      ON ERROR
Belongs to Function Group: Processing of Logical Conditions
The DECIDE ON statement is used to specify multiple actions
                       to be performed depending on the value (or values) contained in a variable.
               
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 ON statement.
                  
Operand Definition Table:
| Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| op1 | S | A | N | A | U | N | P | I | F | B | D | T | L | G | O | yes | no | |||
| op2 | C | S | A | A | U | N | P | I | F | B | D | T | L | G | O | yes | no | |||
| op3 | S | A | A | U | B | yes | no | |||||||||||||
| op4 | C | S | A | A | U | B | yes | no | ||||||||||||
| op5 | C | S | N | P | I | B * | yes | no | ||||||||||||
| op6 | C | S | N | P | I | B * | yes | no | ||||||||||||
| op7 | C | S | N | P | I | B * | yes | no | ||||||||||||
| op8 | C | S | N | P | I | B * | yes | no | ||||||||||||
* Format B of op5,
                       op6,
                       op7 and
                       op8 may be used only with a length of
                       less than or equal to 4. 
               
Syntax Element Description:
| Syntax Element | Description | 
|---|---|
| FIRST/EVERY | Processing of Values: With one of these keywords, you indicate whether only the first or every value that is found is to be processed. | 
| op1 |  Selection Field: As  | 
| VALUES
                                       op2 [[,op2] ...
                                       [:op2]statement
                                       ... | VALUES Clause: With this clause, you specify the value
                                        ( You can specify one value, multiple values, or a range of values optionally preceded by one or more values. Multiple values must be separated from one another either by the
                                        input delimiter character (as specified with the session parameter
                                         For a range of values, you specify the starting value and ending value of the range, separated from each other by a colon. | 
| SUBSTRING | SUBSTRING Option: Without the  After the field name ( | 
| SUBSTRING
                                       (op4,op7,op8) | SUBSTRING Option: After the field name ( | 
| ANY statement  | ANY Clause: With  | 
| ALL statement  | ALL Clause: With  The  | 
| NONE statement | NONE Clause: With  | 
| END-DECIDE | End of DECIDE ON Statement: The Natural reserved word  | 
** 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 
                    Enter any PF key and check result
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 
                    ENTER ANY VALUE BETWEEN 1 AND 9: 4
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