IBM マニュアルやDDS解説書には AFPキー・ワードは書かれていても
AFP用の印刷ファイルの具体的な作成方法の解説はほとんど見られないので
AFP用の印刷ファイルの作成方法を初めてここに紹介する。
_
[ QPRTAFP ] AFP印刷ファイル
ソースはこちらから
0001.00 A*************************************************************** 0002.00 A* PGM007P : 商品マスター明細表 0003.00 A* ソース : QTRSRC/QPRTSRC(PGM007P) 0004.00 A* 使用目的 : 照会 (*INQUIRY) 0005.00 A* 作成日 : 2024/10/26 6:52:00 0006.00 A* 作成者 : QTR 0007.00 A* コンパイル : 0008.00 A* CRTPRTF FILE(QTROBJ/QPRTAFP) SRCFILE(QTRSRC/QPRTSRC) 0009.00 A* DEVTYPE(*AFPDS) CDEFNT(QFNT61/X0N16V) IGCDTA(*YES) 0010.00 A* IGCCDEFNT(QFNT61/X0M32F) LVLCHK(*NO) AUT(*ALL) 0011.00 A* 0012.00 A*************************************************************** 0013.00 A*( 見出行 ) 0014.00 * --------------------------- 0015.00 A R PRTHEAD 0016.00 * --------------------------- 0017.00 A SKIPB(03) 0018.00 A 1'PRTAFP' 0019.00 A 66' 商品マスター明細表 ' 0020.00 A IGCCDEFNT(QFNT61/X0M32F + 0021.00 A (*POINTSIZE 20)) 0022.00 A 120'PAGE.' 0023.00 A +1PAGNBR 0024.00 A EDTCDE(Z) 0025.00 A SPACEA(1) 0026.00 A SYSNAM 8A 120TEXT(' システム名 ') 0027.00 A CDEFNT(QFNT61/X0N16V + 0028.00 A (*POINTSIZE 20)) 0029.00 A COLOR(BLU) 0030.00 A SPACEA(1) 0031.00 A 120DATE EDTCDE(Y) 0032.00 A SPACEA(1) 0033.00 A 120TIME 0034.00 A SPACEA(1) 0035.00 A 1' コード ' 0036.00 A 14' 商品名 ' 0037.00 A 38' 単価 ' 0038.00 A 45' 品種コード ' 0039.00 A SPACEA(1) 0040.00 A*( 明細行 ) 0041.00 * --------------------------- 0042.00 A R DETAIL 0043.00 * --------------------------- 0044.00 A SHCODE 10A 1TEXT(' 商品コード ') 0045.00 A SHNAME 24O 11TEXT(' 商品名 ') 0046.00 A SHTANK 7S 0 35TEXT(' 単価 ') 0047.00 A EDTCDE(J) 0048.00 A SHSCOD 4A 45TEXT(' 品種コード ') 0049.00 A HNSNAM 14O 50TEXT(' 品種名 ') 0050.00 A SPACEA(2) 0051.00 A*( 小計行 ) 0052.00 * --------------------------- 0053.00 A R SUMMRY 0054.00 * --------------------------- 0055.00 A 11'* 小計 *' 0056.00 A SHOKEI 9S 0 33TEXT(' 小計 ') 0057.00 A EDTCDE(J) 0058.00 A SPACEA(2) 0059.00 A*( 最終行 ) 0060.00 A R ENDPRT 0061.00 A 11'** 合計 **' 0062.00 A GOKEI 9S 0 33TEXT(' 合計 ') 0063.00 A EDTCDE(J) 0064.00 A SPACEA(2) 0065.00 A 32'* * * * *' 0066.00 A +1' 報 告 書 の 終 り ' 0067.00 A +1' * * * * *' 0068.00 A SPACEA(1)
[コンパイル]
CRTPRTF FILE(QTROBJ/QPRTAFP) SRCFILE(QTRSRC/QPRTSRC)
DEVTYPE(*AFPDS) CDEFNT(QFNT61/X0N16V) IGCDTA(*YES)
IGCCDEFNT(QFNT61/X0M32F) LVLCHK(*NO) AUT(*ALL)
_
…
[注意]
X0N16V, X0M32F の Xに続く文字はO(=オー)ではなく 0(=ゼロ)である。
ライブラリー: QFNT61 とはAFP日本語フォントのライブラリーであり
X0N16Vはその中のAFP日本語フォントである。
AFPを導入していないIBM iではライブラリー: QFNT61も X0N16V も
存在していなくてもコンパイル・エラーにはならない。
さらに実行時エラーにもならない。
しかしCDEFNTと IGCDTA, IGCCDEFNTのパラメータを指定して印刷ファイルを
作成しておかないと実行時に日本語は文字化けして正しく表示されない。
逆にこれらさえ指定しておけばAFP日本語フォントが導入されていなくても
日本語は正しく表示される。
もうひとつの注意は各フィールド・タイプ(A,S, O…)は
漢字のフィールドはタイプOまたはJで定義しておかないと
日本語漢字は文字化けしてしまって表示されない。
*SCSの場合はタイプA のフィールドであっても漢字が出力されていれば
漢字として表示されるが*AFPDSの場合はタイプAに漢字を出力しても
漢字は表示されない。
■ [解説]
AFP のキー・ワードとして
0019.00 A 66' 商品マスター明細表 ' 0020.00 A IGCCDEFNT(QFNT61/X0M32F + 0021.00 A (*POINTSIZE 20))
で表題を大きく表示している。
0026.00 A SYSNAM 8A 120TEXT(' システム名 ') 0027.00 A CDEFNT(QFNT61/X0N16V + 0028.00 A (*POINTSIZE 20)) 0029.00 A COLOR(BLU)
ではシステム名を大きくすると青色で表示している。
_
■ AFP環境の導入についての注意
AFPはIBM によって無償プロダクトに変更されたがAFP環境の導入はやさしくは
ないのでそれなりの知識と経験のあるアドバイザーの指導を受けることをお奨めする。