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

Document created by Masaaki_Iyama Employee on Jun 23, 2015Last modified by Masaaki_Iyama Employee on Jun 24, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC001014

製品名: CA-Easytrieve Plus

バージョン: ALL

OS: z/OS, MSP, VOS3

 

Question

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

 

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

 

  [出力結果]

     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円

 

                                           

※LEVEL: コントロール・ブレイクのレベルを判断するキーワードです。この例では、部でブレイクした場合(LEVEL=1) と総合計(LEVEL=2) とでDISPLAYの内容(合計行見出し)を変えています。

※POS   : 出力位置を指定するキーワードです。POSを指定することで簡単にLINE 1で指定されたフィールドの出力位置に合わせてプリントすることができます。(そのフィールドの左合わせになります。 POS 2 +3 W-SHIKYU の指定は、SHIKYUフィールドのSUMSPACEにより付加された桁数を考慮した出力位置の指定を行っています。)

Attachments

    Outcomes