RPG

256. APWを使わずに罫線を印刷するには

印刷罫線を引くにはライセンス・プログラムである APW を使って
罫線イメージを指定して MRGAPW コマンドによって印刷罫線を引く方法が
これまで一般的であったが有償のライセンス・プログラム APW がない場合でも
罫線を引く方法は DDSで用意されている。
それは DFNLIN キー・ワードである。

       A*( 見出し行 )                                            
       A          R COLPRT                                       
       A                                      DFNLIN(*HRZ 2 2 40)
       A                                      DFNLIN(*HRZ 5 2 40)
【解説】

DFNLINキー・ワードは

DFNLIN(水平(*HRZ)または垂直(*VRT) 開始行 開始桁 長さ)

という形式で示すのでやさしく記述することができる。
上記の例では

DFNLIN(*HRZ 2 2 40)

は 水平方向(*HRZ) の罫線を(行, 桁) = (2,2 ) から
40文字の長さの横方向の罫線を引くことを示している。
DFNLIN キー・ワードはレコード・レベルのキー・ワードであるので
印刷レコード名の記述の直後にまとめて記述することが必要である。

BOXキー・ワードは AFPのキー・ワードであるので
SCS印刷には使用することはできないが、DFNLIN を組み合わせることによって
BOXキー・ワードと同じことを記述することができる。

印刷の話は初めてなので、ここで *SCS と *AFP (または *AFPDS) に触れておこう。
印刷装置ファイルの作成(CRTPRTF) では印刷装置タイプとして
*SCS または *AFPDS を指定することができる。(*IPDS も *AFPDSとほぼ同じである)
*AFPDS は一般的に *AFP と総称されることが多いがこれは *SCS の拡張である。
従って印刷スプールの属性は大別して

*SCS と *AFP の2種類がある。

と思ってよい。Default は *SCS であり、元々の印刷スプールの属性は*SCSだけであったが
IBM は *SCS を拡張した *AFP という別の形式の印刷スプールを作った。
*SCS は罫線やちょっとした図形にも対応できるが
本格的な図形を印刷するには*AFP 形式が必要とされた。
そこで IBM は *AFP の紹介に力を入れた時期があったが残念ながら
*AFP を使うにはライセンス・ソフトウェアが相当、高くて数百万円の出費が必要とされた。
*AFP を印刷するにも高価な*AFP専用プリンタが必要とされた。
おまけに *AFP の印刷スプールは WRKOUTQ で表示すると
文字化けとなり正しく表示できなかった。(現在でも正しく表示はできない。)

そこで *AFP は日本国内ではほとんど普及していない。
今では *SCS であっても PDF化する技術が進んでおり
*SCSのPDF化の技術の発展によって
*SCS であっても図形や文字カラーの印刷が可能になってきたからだ。
このあたりの技術については後で詳しく解説する。