| DOstatement  DOEND | 
This document covers the following topics:
For explanations of the symbols used in the syntax diagram, see Syntax Symbols.
Belongs to Function Group: Reporting Mode Statements
The DO and DOEND statements are used in
                            reporting mode to specify a group of statements to be executed based on a
                            logical condition as specified in any of the statements listed below.
               
Note:
If you specify a only single statement to be executed based on a
                               logical condition, you can omit the DO and DOEND
                               statements. But with respect to good coding practice, you are not recommended
                               to do so.
                  
The DO and DOEND statements are only
                                      valid in reporting mode.
                     
 WRITE
                                            TITLE, WRITE
                                            TRAILER, and the AT condition statements
                                      AT BREAK,
                                      AT END OF DATA,
                                      AT END OF PAGE,
                                      AT START OF DATA,
                                      AT TOP OF PAGE are not
                                      permitted within a DO/DOEND statement
                                      group.
                     
A loop-initiating statement may be used within a
                                      DO/DOEND statement group provided that the loop is
                                      closed prior to the DOEND statement.
                     
** Example 'DOEEX1': DO/DOEND                                           
************************************************************************
*                                                                       
EMP. FIND EMPLOYEES WITH CITY = 'MILWAUKEE'                             
  VEH. FIND VEHICLES WITH PERSONNEL-ID = PERSONNEL-ID                   
    IF NO RECORDS FOUND DO                                   
      ESCAPE                                                            
    DOEND                                                      
    DISPLAY PERSONNEL-ID (EMP.) NAME (EMP.)                             
            SALARY (EMP.,1)                                             
            MAKE (VEH.) MAINT-COST (VEH.,1)                             
    AT END OF DATA DO                                          
      WRITE NOTITLE                                                     
        / 10X 'AVG SALARY:'                                             
               T*SALARY (1) AVER(SALARY (1))                            
        / 10X 'AVG MAINTENANCE (ZERO VALUES EXCLUDED):'                 
               T*MAINT-COST (1) NAVER(MAINT-COST (1))                   
    DOEND                                                       
    /*
  LOOP
LOOP  
END 
                       
PERSONNEL         NAME           ANNUAL           MAKE         MAINT-COST
   ID                            SALARY                                  
--------- -------------------- ---------- -------------------- ----------
                                                                         
20021100  JONES                     31000 GENERAL MOTORS            140  
20027800  LAWLER                    29000 GENERAL MOTORS              0  
20027800  LAWLER                    29000 TOYOTA                     86  
20030600  NORDYKE                   47000 FORD                      194  
                                                                         
          AVG SALARY:               35666                                
          AVG MAINTENANCE (ZERO VALUES EXCLUDED):                   140