Easytrieve Plus : サマリー処理で各ブレイクごとの合計件数を簡単に得ることはできるか?
search cancel

Easytrieve Plus : サマリー処理で各ブレイクごとの合計件数を簡単に得ることはできるか?

book

Article ID: 185728

calendar_today

Updated On:

Products

EASYPROCLIB Easytrieve Report Generator Easytrieve Report Generator for Common Services

Issue/Introduction

Question
サマリー処理で各ブレイクごとの合計件数を簡単に得ることはできるか?

Environment

z/OS, MSP, VOS3, IBM, FUJITSU, HITACHI

Resolution

Answer
合計件数を持つシステム定義フィールド TALLY を参照します。
● TALLY
TALLYフィールドは各コントロール・ブレーク・レベルごとに作成されます。どのコントロール・ブレーク・レベルの合計件数かは、LEVELというシステム・フィールドで判断します。 TALLYは10バイトのパック10進フィールドであり、小数点以下の桁数はゼロ桁です。レポートの出力桁数は、TALLY(2桁)+SUMSPACE(3桁)の合計5桁になります。TALLYの出力桁数はREPORTステートメントでTALLYSIZEパラメータで指定します。(標準値=2)

● LEVEL
CONTROLステートメントを指定すると、自動的にLEVELというフィールドが作成されます。
CONTROL       (FINAL)       SHOHIN
                           ↑                    ↑
                       LEVEL = 2    LEVEL = 1

プロシジャー内でこのLEVELを参照することによって、ブレーク・レベルごとの合計値を判断 することができます。 (IF LEVEL = 1 という条件式を満たすときはSHOHIN ごとの合計値に対して処理が行われます。)


記述例
(例) キー・ブレイク発生時の合計件数をリストアウトする

FILE     FILEA
BUNRUI-CD     12     2     N
SOGAKU          70     6     P 0
SHIRE-CD        76     5     A
SHIRE-NM        81   20     K
*
JOB
PRINT
REPORT    SUMMARY
SEQUENCE    SHIRE-CD    BUNRUI-CD
CONTROL    SHIRE-CD    BUNRUI-CD
TITLE  1     '仕入額合計表'
HEADING    TALLY('件数')
LINE    SHIRE-CD    BUNRUI-CD    SOGAKU    TALLY


[出力結果]
90年10月11日                                                            仕入額合計表                                                                     1頁

                                          SHIRE-CD           BUNRUI-CD          SOGAKU             件数
                                          C2405                        01                      512,100               11               → LEVEL = 1 で処理される合計値
                                                                              02                      371,800                5
                                         
                                           C2405                                                  883,900              16               → LEVEL = 2 で処理される合計値

                                           C2410                       02                       700,800              19

                                           C2410                                                   700,800              19

                                                                                                       1,584,700              35               → LEVEL = 3 で処理される合計値( 総合計)