| 
                                           
                            
  |  
                                      
                         
                                              ACCEPT |  
                                      
                        
                                           
                            
  |  
                                      
                         [IF]
                                           logical-condition | 
                                      
                                    
                     
 
                                              REJECT |  
                                    
                     
This document covers the following topics:
For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: AT
                                BREAK | AT START OF
                                DATA | AT END OF
                                DATA | BACKOUT
                                TRANSACTION | BEFORE BREAK
                                PROCESSING | DELETE |
                          END TRANSACTION |
                          FIND |
                          HISTOGRAM |
                          GET |
                          GET SAME |
                          GET TRANSACTION DATA |
                          LIMIT |
                          PASSW |
                          PERFORM BREAK PROCESSING
                          | READ |
                          RETRY |
                          STORE |
                          UPDATE
Belongs to Function Group: Database Access and Update
The statements ACCEPT and REJECT are used
                            for accepting/rejecting a record based on user-specified logical criterion. The
                            ACCEPT/REJECT statement may be used in conjunction
                            with statements which read data records in a processing loop (FIND, READ, HISTOGRAM,
                            CALL FILE,
                            SORT or
                            READ WORK FILE). The
                            criterion is evaluated after the record has been selected/read.
               
Whenever an ACCEPT/REJECT statement is
                            encountered for processing, it will internally refer to the innermost currently
                            active processing loop initiated with one of the above mentioned
                            statements.
               
When ACCEPT/REJECT statements are placed
                            in a subroutine, in case of a record reject, the subroutine(s) entered in the
                            processing loop will automatically be terminated and processing will continue
                            with the next record of the innermost currently active processing loop.
               
| Syntax Element | Description | 
|---|---|
 
                                             IF |  
                                        
                         
                                             
                            IF Clause: An IF
                                             clause may be used with an ACCEPT or REJECT statement
                                             to specify logical condition criteria in addition to that specified when the
                                             record was selected/read with a FIND, READ, or HISTOGRAM statement. The logical
                                             condition criteria are evaluated after the record has been read and after
                                             record processing has started.
                         |  
                                      
                     
 logical-condition | 
                                        
                                        
                         
                                             
                            Logical Condition
                                                     Criterion: The basic criterion is a relational expression.
                                             Multiple relational expressions may be combined with logical operators
                                             (AND, OR) to form complex criteria. 
                                             
                           Arithmetic expressions may also be used to form a relational expression. The fields used to specify the logical criterion may be database fields or user-defined variables. For additional information on logical conditions, see Logical Condition Criteria in the Programming Guide. Note:  |  
                                      
                     
Normally, only one ACCEPT or REJECT
                            statement is required in a single processing loop. If more than one
                            ACCEPT/REJECT is specified consecutively,
                            the following conditions apply:
               
If consecutive ACCEPT and REJECT
                                      statements are contained in the same processing loop, they are processed in the
                                      specified order.
                     
If an ACCEPT condition is satisfied, the record
                                      will be accepted and consecutive ACCEPT/REJECT
                                      statements will be ignored.
                     
If a REJECT condition is satisfied, the record will
                                      be rejected and consecutive ACCEPT/REJECT statements
                                      will be ignored.
                     
If the processing continues to the last
                                      ACCEPT/REJECT statement, the last statement will
                                      determine whether the record is accepted or rejected.
                     
If other statements are interleaved between multiple
                            ACCEPT/REJECT statements, each
                            ACCEPT/REJECT will be handled independently.
               
If a LIMIT
                            statement or other limit notation has been specified for a processing loop
                            containing an ACCEPT or REJECT statement, each record
                            processed is counted against the limit regardless of whether or not the record
                            is accepted or rejected.
               
** Example 'ACREX1': ACCEPT ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 NAME 2 SEX 2 MAR-STAT END-DEFINE * LIMIT 50 READ EMPLOY-VIEW ACCEPT IF SEX='M' AND MAR-STAT = 'S' WRITE NOTITLE '=' NAME '=' SEX 5X '=' MAR-STAT END-READ END
NAME: MORENO S E X: M MARITAL STATUS: S NAME: VAUZELLE S E X: M MARITAL STATUS: S NAME: BAILLET S E X: M MARITAL STATUS: S NAME: HEURTEBISE S E X: M MARITAL STATUS: S NAME: LION S E X: M MARITAL STATUS: S NAME: DEZELUS S E X: M MARITAL STATUS: S NAME: BOYER S E X: M MARITAL STATUS: S NAME: BROUSSE S E X: M MARITAL STATUS: S NAME: DROMARD S E X: M MARITAL STATUS: S NAME: DUC S E X: M MARITAL STATUS: S NAME: BEGUERIE S E X: M MARITAL STATUS: S NAME: FOREST S E X: M MARITAL STATUS: S NAME: GEORGES S E X: M MARITAL STATUS: S
** Example 'ACREX2': ACCEPT/REJECT                                      
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 NAME                                                                
  2 FIRST-NAME                                                          
  2 SALARY    (1)                                                       
*                                                                       
1 #PROC-COUNT (N8) INIT <0>                                             
END-DEFINE                                                              
*                                                                       
EMP. FIND EMPLOY-VIEW WITH NAME = 'JACKSON'                             
  WRITE NOTITLE *COUNTER NAME FIRST-NAME 'SALARY:' SALARY(1)            
  /*                                                                    
  ACCEPT IF SALARY (1) LT 50000                                         
  WRITE *COUNTER 'ACCEPTED FOR FURTHER PROCESSING'                      
  /*                                                                    
  REJECT IF SALARY (1) GT 30000                                         
  WRITE *COUNTER 'NOT REJECTED'                                         
  /*                                                   
  ADD 1 TO #PROC-COUNT                                 
END-FIND                                               
*                                                      
SKIP 2                                                 
WRITE NOTITLE 'TOTAL PERSONS FOUND ' *NUMBER (EMP.) /
              'TOTAL PERSONS SELECTED' #PROC-COUNT     
END 
                                   1 JACKSON              CLAUDE               SALARY:      33000
          1 ACCEPTED FOR FURTHER PROCESSING                             
          2 JACKSON              FORTUNA              SALARY:      36000
          2 ACCEPTED FOR FURTHER PROCESSING                             
          3 JACKSON              CHARLIE              SALARY:      23000
          3 ACCEPTED FOR FURTHER PROCESSING                             
          3 NOT REJECTED                                                
                                                                        
                                                                        
TOTAL PERSONS FOUND            3                                        
TOTAL PERSONS SELECTED         1