SUM 句 (報告書作成機能)

SUM 句は合計カウンターを設定し、合計の対象とするデータ項目を指定する。

一般形式


*

構文規則

  1. SUM 句を含む報告集団記述項の左辺のデータ項目は、数値として定義する。identifier-1 は、数値データ項目を参照する。identifier-1 が報告書節内で定義されている場合は、合計カウンターを参照する。

    UPON 指定を省略した場合、関連付けられた SUM 句内にあり、それ自体が合計カウンターである一意名は、その SUM 句を含む報告集団内、またはその報告書の制御階層内の下位レベルの報告集団内で定義する。

    UPON 指定をした場合は、関連付けられた SUM 句に含まれる一意名を合計カウンターにすることはできない。

  2. data-name-1 は、その SUM 句が含まれる制御脚書き (CONTROL FOOTING) 報告集団を含む報告書に記述されている明細 (DETAIL) 報告集団の名前とする。data-name-1 は報告書名で修飾できる。
  3. SUM 句は、制御脚書き報告集団の記述内でのみ指定できる。
  4. data-name-2 は、その報告書の CONTROL 句内で指定したデータ名のいずれかとする。data-name-2 は、 RESET 指定が含まれる報告集団に関連付けられた制御よりも低い制御階層にすることはできない。

    RESET 指定に FINAL を含める場合、その報告書の CONTROL 句にも FINAL を指定する。

    OSVS  この規則は必須ではない。

  5. 合計カウンターに使用できる最高位の修飾語は、報告書名である。

一般規則

  1. SUM 句は、合計カウンターを設定する。合計カウンターは、演算符号付きの数値データ項目である。報告書作成制御システム (RWCS) は、実行時に identifier-1 が参照する各データ項目の値を合計カウンターに加算する。この加算は算術文の規則に従って行われる。「算術文」および「作用対象の重複」セクションを参照。
  2. 合計カウンターのサイズは、基本項目の記述内でその SUM 句を伴う PICTURE 句が指定する受け取り側項目の文字位置の数に等しい。
  3. 報告書の基本項目で指定された SUM 句の数にかかわらず、1 つの基本項目に対して設定される合計カウンターは 1 つのみである。
  4. 印字可能項目用の報告書の基本項目に SUM 句を含めた場合、合計カウンターがソース データ項目となる。RWCS は、MOVE 文の規則に従って合計カウンターに含まれるデータを印字可能項目に転記してから、その印字可能項目を表示する。
  5. 報告書の基本項目に SUM 句が含まれている場合、その左辺にデータ名を書くと、そのデータ名は合計カウンターの名前となる。このデータ名は、基本項目も定義できる印字可能項目の名前ではない。
  6. 手続き部の文によって、合計カウンターの内容を変更することもできる。
  7. 一意名が参照するデータ項目の値を合計カウンターに加える処理は、GENERATE 文および TERMINATE 文の実行中に RWCS が行う。合計カウンターへの加算方法には、縦の集計、横の集計、および繰上げの 3 種類がある。縦の集計は、GENERATE 文の実行中に制御切れの処理をした後で、明細報告集団を処理する前に行われる。「GENERATE 文」セクションを参照。横の集計および繰上げは、制御脚書き報告集団の処理中に行われる。「TYPE 句」セクションを参照。
  8. UPON 指定で明細報告集団を使用して、選択的に縦の集計を行うことができる。
  9. RWCS は、各加数を合計カウンターに加算する。加算を行うタイミングは加数の種類によって異なる。
    1. 加数が同じ 制御脚書き報告集団で定義されている合計カウンターである場合、合計カウンターにその加数を加算することを、横の集計と呼ぶ。

      横の集計は、制御切れが発生して制御脚書き報告集団が処理される際に行われる。

      横の集計は、制御脚書き報告集団で合計カウンターが定義されている順序に従って実行される。つまり、制御脚書き報告集団で定義されている最初の合計カウンターへの横の集計がすべて行われる。次に、制御脚書き報告集団で定義されている 2 番目の合計カウンターへの横の集計がすべて行われる。

      いずれかの加数が、その SUM 句を含むデータ記述項によって定義された合計カウンターである場合、加算処理で加算を行う際にはその合計カウンターの加算前の値が使用される。

    2. 加数が、下位レベルの制御脚書き報告集団で定義された合計カウンターである場合に、合計カウンターにその加数を加算することを繰上げと呼ぶ。制御切れが発生し、下位レベルの制御脚書き報告集団を処理する際に、下位レベルの制御脚書き報告集団の合計カウンターは、上位レベルの合計カウンターに足し込まれる。
    3. 加数が合計カウンターではない場合に、合計カウンターにその加数を加算することを縦の集計と呼ぶ。SUM 句が UPON 指定を含む場合、指定した明細報告集団用の GENERATE 文の実行時に、加数の縦の集計が行われる。SUM 句が UPON 指定を含まない場合、その SUM 句を含む報告書に対してデータ名を指定した GENERATE 文を実行するたびに、合計カウンターではない加数の縦の集計が行われる。
  10. 複数の一意名に同じ加数が指定されている場合、その加数は SUM 句で参照される回数だけ合計カウンターに加算される。複数のデータ名に同じ明細報告集団を指定することは可能である。そのような明細報告集団に対してデータ名を指定した GENERATE 文を実行する際に、UPON 指定でそのデータ名が登場する回数だけ加算が発生する。
  11. 報告書名を指定した GENERATE 文を実行する際に行われる縦の集計については、別途説明する。「GENERATE 文」セクションを参照。
  12. RESET 指定を省略すると、合計カウンターが定義されている制御脚書き報告集団の処理を行う際に、RWCS はその合計カウンターの値をゼロに設定し直す。RESET を明示的に指定すると、制御階層の指定されたレベルの処理を行う際に、RWCS は合計カウンターの値をゼロに設定し直す。「TYPE 句」セクションを参照。

    SUM 句の値は最初に、合計カウンターを含む報告書に対して INITIATE 文を実行する際に、RWCS によってゼロに設定される。