GENERATE 文

GENERATE 文は、データ部の報告書節で指定された報告書記述に従って報告書を作成するよう、報告書作成制御システム (RWCS) に指示する。

一般形式


*

構文規則

  1. data-name-1 には、TYPE DETAIL 報告集団の名前を指定する。この名前は、報告書名で修飾してもよい。
  2. report-name-1 を使用できるのは、参照される報告書の記述が下記の条件をすべて満たす場合のみである。
    1. CONTROL 句を含む。
    2. 複数の明細報告集団を含まない。
    3. 本体集団を 1 つ以上含む。

一般規則

  1. report-name-1 を指定した GENERATE 文に応じて、RWCS は合計処理を実行する。ある報告書用に実行されるすべての GENERATE 文で report-name-1 が指定されている場合、作成される報告書を合計報告書と呼ぶ。
  2. data-name-1 を指定した GENERATE 文に応じて、RWCS は明細処理を行う。この処理には、GENERATE 文で指定した明細報告集団に固有の処理も含まれる。通常、data-name-1 を指定した GENERATE 文を実行することによって、RWCS は指定された明細報告集団を表示する。
  3. 報告書に対して GENERATE 文を最初に実行する間に、RWCS は制御データ項目の値を保存する。同じ報告書に対して GENERATE 文を 2 回目以降に実行する間に、RWCS は保存した一連の制御値を使用して、制御切れが発生したかどうかを判別する。制御切れが発生した場合、RWCS は新しい一連の制御値を保存し、以後はその値を使用して、さらに制御切れの発生を検出する。
  4. 報告書を表示する間、本体集団を表示するために改ページが必要になった際に、ページ頭書き報告集団およびページ脚書き報告集団が定義されていると、RWCS によってそのための処理が自動的に行われる。「表示規則表」セクションを参照。
  5. 報告書に対して GENERATE 文を最初に実行する際に、RWCS は下記の報告集団を記載の順番で処理する。ただし、報告書記述項内にそれらの報告集団が定義されていることを前提とする。RWCS は、一般規則 4 で説明したとおり、ページ頭書き報告集団およびページ脚書き報告集団も処理する。RWCS が各タイプの報告集団を処理する際に行う処理は、該当段落で説明する。「TYPE 句」セクションを参照。
    1. 報告書頭書き報告集団を処理する。
    2. ページ頭書き報告集団を処理する。
    3. 制御頭書き報告集団を、最高レベルから最低レベルまですべて処理する。
    4. data-name-1 を指定した GENERATE 文の実行中には、指定された明細報告集団用の処理を実行する。report-name-1 を指定した GENERATE 文の実行中には、明細報告集団の処理に係わる手順の一部を実行する。「TYPE 句」セクションを参照。
  6. 報告書に対して GENERATE 文を 2 回目以降に実行する際に、RWCS は以下の該当する手順を実行する。RWCS は、一般規則 4 で説明したとおり、ページ頭書き報告集団およびページ脚書き報告集団も処理する。RWCS が各タイプの報告集団を処理する際に行う処理は、該当段落で説明する。「TYPE 句」セクションを参照。
    1. 制御切れの検出。制御データ項目の値が変わったかどうかを判別する規則は、比較条件の場合と同じである。制御切れが発生した場合は、以下の処理を行う。
      1. 制御切れを検出するために RWCS が使用した制御データ項目の値を、制御脚書きに関連する USE 手続きおよび SOURCE 句で使用できるようにする。「TYPE 句」セクションを参照。
      2. 制御脚書き報告集団を、低いレベルから高いレベルの順に処理する。制御切れが発生した最高レベル以下の制御脚書き報告集団のみが処理される。
      3. 制御頭書き報告集団を、高いレベルから低いレベルの順に処理する。制御切れが発生した最高レベル以下の制御頭書き報告集団のみが処理される。
    2. data-name-1 を指定した GENERATE 文の実行中には、指定された明細報告集団用の処理を実行する。report-name-1 を指定した GENERATE 文の実行中には、明細報告集団の処理に係わる手順の一部を実行する。「TYPE 句」セクションを参照。
  7. 報告書に対して GENERATE 文を実行できるのは、その報告書に対して INITIATE 文が実行された後で、かつ TERMINATE 文が実行される前までの間のみである。