Easytrieve Plus : BEFORE-BREAK、AFTER-BREAKプロシジャー使用上の注意点は?
search cancel

Easytrieve Plus : BEFORE-BREAK、AFTER-BREAKプロシジャー使用上の注意点は?

book

Article ID: 185533

calendar_today

Updated On:

Products

EASYPROCLIB Easytrieve Report Generator Easytrieve Report Generator for Common Services

Issue/Introduction

Question
BEFORE-BREAK、AFTER-BREAKプロシジャー使用上の注意点は?

Environment

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

Resolution

Answer
合計値、コントロール・キー・フィールド以外のデータは、次の入力データが参照されます。また、レポ-ト・プロシジャー内では使用できないステートメントもあります。BEFORE-BREAK、AFTER-BREAK プロシジャーは、以下の点に注意して使用してください。

● 合計値やコントロール・キー・フィールド以外のデータは参照しない。
BEFORE-BREAK、AFTER-BREAKプロシジャーは、コントロール・レポートの合計値を変更したり、合計行にコメントをつけたりするために用意されているレポート・プロシジャーです。キ-・ブレイクの発生を判断するために、入力エリアには次のレコードが入力されています。コントロール・キー・フィールドや合計値は、Easytrieve Plusが用意したコントロール処理のためのエリアを参照しますが、その他の明細データはつぎのデータが参照されてしまいます。BEFORE-BREAK、AFTER-BREAKプロシジャーではコントロール・キー・フィールド、合計値以外のフィ-ルドは参照しないようにします。

● レポート・プロシジャーでは、下記のステートメントは使用できません。
GET (データベース・オプション使用時)
PUT
READ
WRITE
POINT
PRINT
(データベース・オプション使用時)
DLI
IDMS
SQL
AIM
※ SEARCH、CALLは使用可能です。

● DISPLAY実行時ライン・カウンターの値の判定は行われません。
EASYPLUSは内部でもつライン・カウンターの値を判断して自動改頁処理を実行しますが、この判断は明細行の出力直前にのみ実行され、DISPLAYによる出力直前には実行されません。このため、DISPLAY実行途中に改頁のタイミングがくる場合は注意が必要です。
記述例
(例) 合計行の見出しをBEFORE-BREAKプロシジャーで変更する。
FILE     FILEA
HIN-CODE     *     5     A     HEADING ‘商品コード'
HIN-NAME     *   10     A     HEADING ‘商品名'
TANKA           *     5     N 0  HEADING ‘単価'
SURYO          *     5     N 0  HEADING ‘数量'
W-URIAGE   W  10     N 0  HEADING ‘売上げ金額'
*
JOB
PRINT
*
REPORT
SEQUENCE   HIN-CODE
CONTROL     FINAL NOPRINT HIN-CODE NOPRINT
TITLE            ‘商品別売上一覧表'
LINE              HIN-CODE HIN-NAME TANKA SURYO W-URIAGE
BEFORE-BREAK. PROC
IF LEVEL = 1
DISPLAY ‘ *** TOTAL *** ' POS 1 HIN-CODE +
POS 2 HIN-NAME POS 4 SURYO POS 5 W-URIAGE
END-IF
END-PROC

※この例では、商品コード別に集計処理を行い、合計行は自動出力せずに、BEFORE-BREAKプロシジャーでDISPLAYしています。ところが、このままだと商品名はコントロール・キー・フィールドではないブレイク後の次のデータの内容がDISPLAYされてしまいます。この場合、CONTROLステートメントの指定を次のように変更します。
CONTROL     FINAL NOPRINT HIN-CODE NOPRINT HIN-NAME NOPRINT
商品名と商品コードとは同時にブレイクする項目であり商品名をコントロール・キー・フィールドに指定しても新たなキー・ブレイクを指定したことにはなりません。商品名はコントロール・キー・フィールドとして指定したことにより、BAFORE-BREAK、AFTER-BREAKプロシジャーで正しい値を参照できるようになります。
※LEVEL: キー・ブレイクのレベルを判定するシステム定義フィールド
※POS : DISPLAYによる出力位置を指定するキーワード

Additional Information

Old Japanese Knowledge document ID: JTEC001016