EJECT

このドキュメントでは、次のトピックについて説明します。

関連ステートメント: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

関連機能グループ:出力レポートの作成


関数

EJECT ステートメントは、改ページとページ換えの制御に使用します。

構文説明

このステートメントには、2 つの異なる構造が可能です。

次の構文図で使用されている記号については、「構文記号」を参照してください。

EJECT - 構文 1

EJECT

ON

[(rep)]
OFF

構文要素の説明:

構文要素 説明
EJECT ON/OFF (rep)
レポート指定を含む EJECT ON/OFF - オンラインおよびバッチモード:
EJECT OFF (rep) 指定レポートのページ換え処理を行いません(構文 2EJECT ステートメントの指定は除く)。
EJECT ON (rep) 指定レポートのページ換え処理を実行します。
EJECT ON/OFF
レポート指定を含まない EJECT ON/OFF - バッチモードのみ:

レポート指定 (rep) のない EJECT ON/OFF では、バッチモードで使用して、プログラムの実行中に作成される出力リスト間のページ換え処理を制御できます。

EJECT ON ソースプログラムリスト、出力レポートおよび次のメッセージの間でページ換えを実行します
EXECUTION COMPLETED
。これはデフォルト設定です。
EJECT OFF 上記の各出力間のページ換えを停止します。EJECT OFF は次の EJECT ON ステートメントが指定されるまで有効です。
(rep)
レポート指定:

表記 (rep) は、EJECT ステートメントを適用するレポートの ID を指定するために使用できます。

範囲 0~31 の値、または DEFINE PRINTER ステートメントを使用して割り当てた論理名を指定できます。

(rep) を指定しない場合、EJECT ステートメントは最初のレポート(レポート 0)に適用されます。

Natural で作成した出力レポートのフォーマットを制御する方法については、『プログラミングガイド』の「レポートフォーマットおよび制御」を参照してください。

EJECT - 構文 2

この形式の EJECT ステートメントでは、次のページでタイトルまたはヘッダー行を生成することなく、TOP/END PAGE 処理を行わずに改ページが実行されます。

EJECT [( rep )]

IF

LESS [THAN] operand1  [LINES] [LEFT]

WHEN

オペランド定義テーブル:

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1 C S         N P I                 ×

構文要素の説明:

構文要素 説明
(rep)
レポート指定:

表記 (rep) は、EJECT ステートメントを適用するレポートの ID を指定するために使用できます。

範囲 0~31 の値、または DEFINE PRINTER ステートメントを使用して割り当てた論理名を指定できます。

(rep) を指定しない場合、EJECT ステートメントは最初のレポート(レポート 0)に適用されます。

Natural で作成した出力レポートのフォーマットを制御する方法については、『プログラミングガイド』の「レポートフォーマットおよび制御」を参照してください。

IF LESS THAN operand1 LINES LEFT
IF LESS THAN ...LINES LEFT 節:

現在の行の位置が、ページサイズから operand1 の値を引いた値よりも大きいときに限り、ページ換えが行われます。operand1 の値は数値定数または変数で指定できます。

処理

EJECT ステートメントを実行しても、AT TOP OF PAGEAT END OF PAGEWRITE TITLE または WRITE TRAILER で使用されるステートメントは実行されません。また、DISPLAY GIVE SYSTEM FUNCTIONS で評価されるシステム関数にも影響しません。

EJECT では、新規の物理ページの生成だけが行われます。Natural システム変数 *LINE-COUNT1 に設定されますが、*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

プログラム EJTEX1 の出力:

  
  
                     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%                    
                     %%                         %%
                     %%   REPORT OF EMPLOYEES   %%
                     %%     SORTED BY CITY      %%
                     %%                         %%
                     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Enter キーを押した後:

****************************************************************              
AIKEN                SENKO                PROGRAMMER                         2
****************************************************************              
****************************************************************              
AIX EN OTHE          GODEFROY             COMPTABLE                          5
****************************************************************              
****************************************************************              
AJACCIO              CANALE               CONSULTANT                         8
****************************************************************              
****************************************************************              
ALBERTSLUND          PLOUG                KONTORASSISTENT                   11
****************************************************************              
****************************************************************              
ALBUQUERQUE          HAMMOND              SECRETARY                         14
****************************************************************

Enter キーを押した後:

****************************************************************              
ALBUQUERQUE          ROLLING              MANAGER                            2
****************************************************************              
****************************************************************              
ALBUQUERQUE          FREEMAN              MANAGER                            5
****************************************************************              
****************************************************************              
ALBUQUERQUE          LINCOLN              ANALYST                            8
****************************************************************              
****************************************************************              
ALFRETON             GOLDBERG             JUNIOR                            11
****************************************************************