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 で処理される合計値( 総合計)
Feedback
thumb_up
Yes
thumb_down
No