この方法は、集計表形式およびフリーフレーム形式で使用できます。
ここでは、“B.4.14 BREAKが発生せずに改ページされる場合に合計欄に累計を出力したい”で作成した集計表形式の個人出退勤簿で、従業員番号が変わらずに改ページされる場合に総計欄に累計ではなく*を出力する方法を例に説明します。
具体的には総計欄の数字項目「総計数字」と同じ位置にテキスト項目「総計文字」を定義し、BREAKが発生せずに改ページされる場合には「総計文字」に"******"を出力し、BREAKが発生して改ページされる場合には「総計数字」に総計金額を出力する処理を行います。改ページ時にBREAKの判断を行うために「制御切れ判断」を使用します。「制御切れ判断」のデータはBREAKが発生しない間は"なし"となっており、BREAKが発生すると"発生"となります。
帳票様式定義画面で、非出力項目(レコードのみ項目)の項目形式(レコード項目形式)「テキスト項目」として「制御切れ判断」を追加します。
帳票様式定義画面で、ページ脚書きパーティションに(CF1)、テキスト項目として「総計文字」を追加します。
データ定義画面の[データ定義]タブで、「総計数字」のオペランドを「CASE(制御切れ判断 = "発生", 総計計算用) DEFAULT(_NULL_)」に変更します。
⇒「制御切れ判断」が"発生"の場合は「総計計算用」のデータを出力し、それ以外の場合には何も出力しません。
データ定義画面の[データ定義]タブで、「総計文字」のオペランドに「CASE(制御切れ判断 = "発生", _NULL_) DEFAULT("******")」を指定します。
⇒「制御切れ判断」が"発生"の場合は何も出力せず、それ以外の場合に"******"を出力します。
データ定義画面の[データ定義]タブで、「制御切れ判断」のオペランドに「ハイフン(-)」を指定します。
⇒「制御切れ判断」はデータを受け取りません。
データ定義画面の[拡張定義]タブで、「PAGE-HEAD」段落に「SET 制御切れ判断 TO "なし"」を追加します。
⇒ページ頭書きパーティションが出力された後、制御脚書きパーティションが出力されなかった場合、ページ脚書きパーティションが出力されるときに「総計文字」に"******"が出力されます。
データ定義画面の[拡張定義]タブで、「CNTL-FOOT」段落に「SET 制御切れ判断 TO "発生"」を追加します。
⇒制御脚書きパーティションが出力された後、ページ脚書きパーティションが出力されるときに「総計数字」に「総計計算用」のデータが出力されます。
データ定義画面の[拡張定義]タブで、「PAGE-FOOT」段落に、「COMPUTE 総計文字」を追加します。
⇒「制御切れ判断」のデータによって総計欄に出力されるデータが設定されます。
例)
データ項目名 | オペランド |
---|---|
従業員番号 | BREAK |
月 | |
日 | |
出勤時間 | |
総計計算用 | SUM(出勤時間) |
総計数字 | CASE(制御切れ判断 = "発生", 総計計算用) |
総計文字 | CASE(制御切れ判断 = "発生", _NULL_) |
制御切れ判断 | - |
PAGE-HEAD SET 制御切れ判断 TO "なし" CNTL-HEAD 従業員番号 CH1 SET 総計計算用 TO 0 DETAIL COMPUTE 総計計算用 CNTL-FOOT 従業員番号 $FF SET 制御切れ判断 TO "発生" PAGE-FOOT COMPUTE 総計数字 COMPUTE 総計文字
ポイント
この機能は、Windows用帳票サンプル「個人出退勤簿2」、UNIX系OS用帳票サンプル「SYUTTAI2」で使用しています。