Easytrieve Plus : キー・ブレイク時に合計値ではなく平均値を出力する方法は?

book

Article ID: 185726

calendar_today

Updated On:

Products

EASYPROCLIB CA Easytrieve Report Generator CA Easytrieve Report Generator for Common Services

Issue/Introduction

Question
キー・ブレイク時に合計値ではなく平均値を出力する方法は?

Environment

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

Resolution

Answer
CONTROLステートメントで NOPRINT パラメータを指定し、レポート・プロシジャーで計算しDISPLAYで出力します。
CONTROLステートメントで、フィールド名の後にNOPRINTを指定すると、キー・ブレイクが発生しても合計行がプリントされません。

[CONTROLステートメントの記述]
CONTROL    フィールド名     NOPRINT
                      FINAL                NOPRINT

NOPRINTを指定すると合計行のプリントは行われませんがキー・ブレイク発生時点での合計値は内部で保持されており、 BEFORE-BREAK あるいは AFTER-BREAK プロシ ジャーで合計値を参照することができます。そこでこれらいずれかのプロシジャーで合計値を TALLY (合計件数をもったEASYPLUSシステム定義フィールド)で割ることで平均値を求め、 結果を DISPLAY ステートメントでレポートへ出力します。


記述例
(例) 部別支給額の平均を求め出力

REPORT
SEQUENCE    BU
CONTROL    FINAL    NOPRINT    BU    NOPRINT
TITLE 1    '部別支給額一覧表'
LINE 1    BU    SHIKYU
BEFORE-BREAK.   PROC
    W-SHIKYU = SHIKYU / TALLY
    IF LEVEL = 1
        DISPLAY POS 1 ' 部平均 =' POS 2 +3 W-SHIKYU '円'
    ELSE
        DISPLAY POS 1 '全社平均 =' POS 2 +3 W-SHIKYU '円'
    END-IF
END-PROC

※LEVEL: コントロール・ブレイクのレベルを判断するキーワードです。この例では、部でブレイクした場合(LEVEL=1) と総合計(LEVEL=2) とでDISPLAYの内容(合計行見出し)を変えています。
※POS : 出力位置を指定するキーワードです。POSを指定することで簡単にLINE 1で指定されたフィールドの出力位置に合わせてプリントすることができます。(そのフィールドの左合わせになります。 POS 2 +3 W-SHIKYU の指定は、SHIKYUフィールドのSUMSPACEにより付加された桁数を考慮した出力位置の指定を行っています。)


[出力結果]
92年07月15日                                                            部別支給額一覧表                                                                      1頁

                                                                               部コード           支給額
                                                                                05010              26,000
                                                                                                         46,000
                                                                                                         87,000
                                                                                                         73,000
                                                                               部平均 =           58,000円

                                                                                05011              59,000
                                                                                                         23,800
                                                                                                         98,500
                                                                               部平均 =           60,400円

                                                                               全社平均 =       59,000円

Additional Information

Old Japanese Knowledge document ID: JTEC001014