"MapDraw"では、前回お話したように、スプール・データの中の、行番号と桁幅を指定してバーコード表示することができますから、ページ毎にバーコード表示するデータの位置が異なっていても、それらを全て1ページに含むような設計をしておけば、バーコード表示するデータが存在した箇所のみ、バーコードは表示されます。また、同じ場所にあるデータを、あるページでは文字として印刷し、他のページではバーコード表示するといった場合には、それらを切り替える条件を定義できれば、1つの設計で対応できることになります。
そのような技が通用しない場合には、別のアプローチとして、バーコードの種類や配置の組み合わせに応じた帳票設計を、その組み合わせの数だけ用意しておいて、それらを1本のスプールに対して切り替えながら適用するという方法が考えられます。
これは、1本のスプールの中で、1ページ目が表紙、2ページ目以降が明細のページというような、請求書などに多い、複数のフォーマットを必要とする帳票の場合と同じ考え方です。
MapDraw 表紙ページのプレビュー画面 |
MapDraw 明細ページのプレビュー画面 |
("MapDraw"では、プレビュー表示した際、右側の画面のスプール・データは、帳票に表示されたデータのみ緑色に変わります。これによって、データの抜けが無いかを確認できます。)
左の下のものは、2ページ目以降の明細ページをプレビュー表示した画面です。表紙と全く異なる設計になっていることが、お分かりいただけるかと思います。
では、この2種類の帳票設計を1つのスプールに対して、1ページ目と2ページ目以降で、どのようにして切り替えて適用するのでしょうか ?
話は先に飛びますが、"Mapping Suite"が、OS/400上でPDFを生成するコマンドは、"MAPSPLPDF"なのですが、これの主なパラメーターには次のものがあります。
1. 対象となるスプール・ファイルを特定するためのファイル名、ファイル番号、ジョブ名、ジョブ番号、ユーザー
2. 適用する帳票設計の名称(フォーマット名)とシーケンス番号
3. PDF化する対象のスプール・ファイルの中の開始ページと終了ページ
4. PDFファイル名、生成先のフォルダー
5. コード・ページ
この中で、表紙ページと明細ページの切り替えのために重要なのが、"フォーマット名"と"シーケンス番号"です。"フォーマット名"は、Bayトップ書房の見積書として、1つです。シーケンス番号には、表紙ページ用に"00010"、明細ページ用に"00020"を割り振り、"MAPSPLPDF"を実行する際には"*MRG"を指定することで、スプール・ファイルの各ページに対して、その条件に応じた設計(ここでは、表紙用の"00010"と明細用の"00020")を自動的に切り替えて適用します。
表紙ページの"プロジェクトのプロパティ"画面 |
このフォーマット名は、"明細ページ"の設計にも使用します。
"シーケンス番号"も、同じ"プロジェクトのプロパティ"画面で指定します。左の"表紙ページ"の"プロジェクトのプロパティ"画面では、"00010"となっています。"明細ページ"では、この値を"00020"とします。
表紙ページの"条件設定"画面 |
このBayトップ書房の見積書の場合は、見積り番号の位置が、表紙ページでは、5行目の106桁目から114桁目にありますが、明細ページでは、4行目の106桁目から114桁目にあることから、左の画面イメージにあるように、表紙の"プロジェクトのプロパティ"画面で指定しています。(明細ページでは、行の値が 4になっているわけです。)
この切り替え条件で正しく切り替わるかを確認するには、"MapDraw"のプレビュー機能の一つである"マルチ・プレビュー"を使用します。"マルチ・プレビュー"では、"MapDraw"画面で、スプール・データのページ番号を次々と変えていった時に、設定された条件に応じた設計の帳票として表示されます。このページの上の"表紙"と"明細"の2つの画面が、それらです。