This document covers the following topics:
Related Statements: AT END OF
                                PAGE | AT TOP OF
                                PAGE | CLOSE
                                PRINTER | DEFINE PRINTER |
                          DISPLAY |
                          FORMAT |
                          NEWPAGE |
                          PRINT |
                          SKIP |
                          SUSPEND IDENTICAL SUPPRESS
                          | WRITE |
                          WRITE TITLE |
                          WRITE TRAILER 
               
Belongs to Function Group: Creation of Output Reports
The EJECT statement may be used to control page
                            advance/page ejection.
               
Two different structures are possible for this statement.
For explanations of the symbols used in the syntax diagrams below, see Syntax Symbols.
| EJECT | 
 | ON | 
 | [(rep)] | 
| OFF | 
Syntax Element Description:
| Syntax Element | Description | |
|---|---|---|
| EJECT
                                                  ON/OFF (rep) | With Report Specification - Online and
                                                       Batch Modes: | |
| EJECT OFF
                                                  (rep)  | Causes no page advance (except as
                                               specified with Syntax 2 of the EJECTstatement) for the specified report to be executed. | |
| EJECT ON
                                                  (rep) | Causes page advances for the specified report to be executed. | |
| EJECT
                                                  ON/OFF | Without Report Specification - Batch Mode
                                                       only: Without report notation
                                                        | |
| EJECT ON | Causes Natural to generate a page
                                               eject between the source program listing, the output report and the message EXECUTION COMPLETED. This is the default setting. | |
| EJECT
                                                  OFF | Causes Natural to suppress page breaks
                                               between the above output. EJECT OFFremains in effect until
                                               revoked with a subsequentEJECT ONstatement. | |
| (rep) | Report Specification: The notation
                                                        A value in the range 0 - 31 or a logical name which has
                                                    been assigned using the  If  For information on how to control the format of an output report created with Natural, see Report Format and Control in the Programming Guide. | |
This form of the EJECT statement may be used to cause
                              a page advance without a title or heading line being generated on the next page
                              and without TOP/END PAGE processing.
               
| EJECT | [( rep )] | 
 | 
 | IF | 
 | LESS[THAN] 
                                                  operand1  [LINES] [LEFT] | 
 | 
| WHEN | 
Operand Definition Table:
| Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand1 | C | S | N | P | I | yes | no | ||||||||||||
Syntax Element Description:
| Syntax Element | Description | 
|---|---|
| (rep) | Report Specification: The notation
                                                     A value in the range 0 - 31 or a logical name which has
                                                    been assigned using the  If  For information on how to control the format of an output report created with Natural, see Report Format and Control in the Programming Guide. | 
| IF LESS THAN
                                                  operand1 LINES LEFT | IF LESS THAN ... LINES LEFT
                                                       Clause: A page advance will be performed only when the current
                                                    line for the page is greater than the page size minus
                                                     | 
The execution of an EJECT statement does not cause any
                            statements used with an AT TOP OF
                                  PAGE, AT END OF
                                  PAGE, WRITE
                                  TITLE or WRITE
                                  TRAILER statement to be executed. It does not affect system
                            functions evaluated by DISPLAY GIVE SYSTEM
                                  FUNCTIONS.
               
EJECT causes a new physical page only. It causes the
                            Natural system variable *LINE-COUNT
                            to be set to 1 but has no effect on the setting of the Natural
                            system variable *PAGE-NUMBER.
               
** Example 'EJTEX1': EJECT                                              
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 CITY                                                                
  2 NAME                                                                
  2 JOB-TITLE                                                           
END-DEFINE                                                              
*                                                                       
FORMAT PS=15                                                            
LIMIT 9                                                                 
READ EMPLOY-VIEW BY CITY                                                
  /*                                                                    
  AT START OF DATA                                                      
    EJECT                                                               
    WRITE /// 20T '%' (29) /                                            
              20T '%%'                          47T '%%' /              
              20T '%%' 3X 'REPORT OF EMPLOYEES' 47T '%%' /              
              20T '%%' 3X '  SORTED BY CITY   ' 47T '%%' / 
              20T '%%'                          47T '%%' /
              20T '%' (29) /                              
    EJECT                                                 
  END-START                                               
  EJECT WHEN LESS THAN 3 LINES LEFT                       
  /*                                                      
  WRITE '*' (64)                                          
  DISPLAY NOTITLE NOHDR CITY NAME JOB-TITLE 5X *LINE-COUNT
  WRITE '*' (64)                                          
END-READ                                                  
END 
                         
  
                     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%                    
                     %%                         %%
                     %%   REPORT OF EMPLOYEES   %%
                     %%     SORTED BY CITY      %%
                     %%                         %%
                     %%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
                       **************************************************************** AIKEN SENKO PROGRAMMER 2 **************************************************************** **************************************************************** AIX EN OTHE GODEFROY COMPTABLE 5 **************************************************************** **************************************************************** AJACCIO CANALE CONSULTANT 8 **************************************************************** **************************************************************** ALBERTSLUND PLOUG KONTORASSISTENT 11 **************************************************************** **************************************************************** ALBUQUERQUE HAMMOND SECRETARY 14 ****************************************************************
**************************************************************** ALBUQUERQUE ROLLING MANAGER 2 **************************************************************** **************************************************************** ALBUQUERQUE FREEMAN MANAGER 5 **************************************************************** **************************************************************** ALBUQUERQUE LINCOLN ANALYST 8 **************************************************************** **************************************************************** ALFRETON GOLDBERG JUNIOR 11 ****************************************************************