請求書や伝票出力において表紙(鑑)の部分は、あるRPGで出力しているが
明細部分は別の異なるRPGによって印刷している。
そして合計行のフッター部分はさらに別のRPGによって印刷出力している。
これらを単に印刷する目的であれば何の問題も無かったのだが
PDFに保管したい場合は3つの部分がバラバラではどうにも扱いにくいし
取引先などに渡すには不向きである。
できるだけ簡単に3つのRPGによるスプールをひとつにまとめる方法はないだろうか?
それには印刷ファイルを3つのPGMの実行でオープンにしたままで
連続して実行して次々と同じスプールに追加していくことで、ひとつのスプールに
まとめることができる。
OVRPRTF FILE(QPRINT) SECURE(*YES) OVRSCODE(*JOB) SHARE(*YES) .... 1 CALL MYLIB/PRTHED ...... CALL MYLIB/PRTDETAIL :・・・・2 CALL MYLIB/PRTEND ・・・・・・ DLTOVR FILE(QPRINT) LVL(*JOB) ................ 3
【解説】
- 共通して使用する印刷ファイルQPRINT を3つのプログラムで共用できるように
SHARE(*YES) を指定する。SECURE(*YES) は上位の他の一時変更からの保護。
OVRSCODE(*JOB) はV3R2M0 以降では明示的に指定しないとOVRPRTF が
効かない場合がある。 - 各印刷PGMを実行するが最初の2つのPGM : PRTHED と PRTDETAIL では
LR標識を ONにしないで処理を終了するようにしておく。
LR標識をONにすると印刷ファイルがクローズされてしまうからである。
最後の PRTEND では LR標識をONにして終了する。
これによって印刷ファイルがクローズされる。 - 印刷ファイルの一時変更を解除する。