付録C.4 GENREP02パターンを使用した同一帳票の複数枚印刷
COBOLのCALL文を使用して,1種類の帳票を一つのAPから複数枚印刷する方法について説明します。
- 〈この項の構成〉
(1) 処理の概要
注文書3ページ分のデータを読み込み,帳票を無条件に3部印刷します。
注文書を印刷するときの処理概要を次の図に示します。
(2) AP作成上のポイント
作成するAPの基になるAPパターンを次に示します。
-
メインプログラムで使用するAPパターン名:GENREP02
このAPパターンでは,帳票に出力するデータは固定データを代入して,無条件に帳票を1部印刷する仕様になっています。ファイルからデータを読み込む仕様にする場合は,別にコーディングを追加する必要があります。
このほかに,AP作成時には次の注意が必要です。
-
出力先がページプリンタ 網掛け帳票であるため,物理マップ名は「マップ名6B」で指定します。
-
印刷データがない場合に出力論理マップをクリアする処理を追加します。
-
印刷処理の繰り返し方法,および印刷を終了するタイミングを指定します。
(3) コーディング例
コーディング上のポイントを次に示します。
WORKING-STORAGE SECTION. 77 回数 PIC 9(2). * 論理マップのCOPY展開 COPY PTABL5O. …………1. PROCEDURE DIVISION. MOVE 0 TO 回数. : * マップ名の設定 MOVE 'PTABL56B' TO 帳票マップ名. …………1. * 出力データ代入処理,帳票印刷処理を3回呼び出す PERFORM VARYING 回数 FROM 1 BY 1 UNTIL 回数 > 3 PERFORM 出力データ代入 …………2. CALL 'jsvwadrv' USING XMAP-COM XMAP-REQ PTABL50 BY VALUE0. …………3. END-PERFORM. * 出力データ代入処理 出力データ代入 SECTION. MOVE 回数 TO PTABL5-NO-O. MOVE '○×A1電器' TO PTABL5-KOKYAKU-O. MOVE 'K0012345' TO PTABL5-KCODE-O. 出力データ代入-END.
-
マップ名の変更
プログラム中の'\\\111'を'PTABL5'に,'XX'を'6B'に変更します。
-
出力データの代入
-
帳票の印刷