始めの言葉

「プリンターから印刷できて当たり前」と、ユーザーからもSIerからも軽視されがちなプリンターの世界ですが、実際にはお困りだったり、思ったような印刷結果が得られないまま我慢してお使いの皆様のために、今までの経験が役立てばと、このブログを立ち上げました。印刷の基本から、応用情報、問題の解決方法を情報発信すると共に、PDF化など、これからどうするかについても、ご相談に乗れれば幸いです。ご質問はコメントでお寄せください。

2018年10月6日土曜日

MapDraw を使った帳票設計のテクニック 第12回 - 条件の設定 - 1 -

MapDraw では、ゾーンや図形、更にフォーマット自体が実行される条件を設定して、様々な帳票設計へのご要望に対応することができます。今までサンプルとして使用してきた、ベイトップ書房の見積書のように、1 本のスプールに対して、1 ページ目は鑑や表紙、2 ページ目以降は明細という 2 種類のフォーマットを適用したいというのは、一般的なご要望と思います。
先ずは、この見積書を例に、複数のフォーマットを用意して、条件に応じて適用する方法についてお話しましょう。
1. 表紙用のフォーマットと、明細用のフォーマットは同じフォーマット名を使用します。そして、シーケンスの番号をそれぞれ順番に振ります。次の例では、フォーマット名は "BAYTOP" で共通ですが、表紙のシーケンスは "00010"、明細のシーケンスは "00020" としています。これは、最後に PDF ファイルを生成するために使用する "MAPCPYSPLF" コマンドのパラメーターに関連します。
表紙のプロジェクトのプロパティ
明細のプロジェクトのプロパティ
2. 表紙と明細をそれぞれ設計していきますが、条件に応じて、表紙を適用するページなのか、明細を適用するページなのかを、Mapping が PDF ファイルを生成する時に判断できるように定義しないとなりません。このスプールでは、各ページの右上に 9 桁の見積り番号がありますが、このスプールができた経緯から、表紙のページでは 5 行目の 106 桁目から始まっていますが、明細のページではどのページでも共通して 4 行目の同じ桁から始まっています。これは、このサンプル・スプールの場合の表紙と明細の違いであって、要は、表紙と明細のページで必ず異なる箇所、ただし、明細のページでは共通なものを見つけることが重要です。
表紙のページの見積り番号の位置
明細のページの見積り番号の位置
3. この違いをプロジェクトの条件に定義します。表紙のプロジェクトのプロパティ画面には、"表面" というタブの画面があります。表紙の場合は、見積り番号の先頭が必ず 5 行目の 106 桁目にありますので、ここに何かデータがあったら、つまりブランクではなかったら適用するという条件を次のように設定します。
5 行目、106 桁目に何かデータがあったらという表紙の条件設定
- There isn't は、もし無ければ
- in line "5" は、5行目に
- between columns "106" and "106" は、106桁目に
- the value の欄には、画面には見えませんが、ブランク 1 桁が定義されていますので、以上を組み合わせて、上記のような条件になります。この条件は、最大 50 まで登録できますが、その場合には、下にある論理ルール欄で、論理式を定義する必要があります。

4. 明細ページの条件は、5 行目の代わりに 4 行目を定義すれば良いのですが、論理ルール欄を利用して、表紙ページを否定した条件 "not 1”も使用可能です。
表紙のページの条件を否定した明細のページの条件
5. これらの条件の設定が正しいかどうかを確認するには、"マルチ・プレビュー" を使用します。表紙でも明細でも、どちらかのプロジェクトの画面の "ホーム" タブ画面の右上にある "マルチ・プレビュー" のボタンを押します。スプールのページを "1" ページから順に変えていった時に、"2" ページ目以降で明細の設計のフォーマットに変わったことが確認できれば OK です。
マルチ・プレビューのボタンと 1 ページ目のプレビュー
スプールの 2 ページ目に切り替えて明細になったプレビュー画面




 

0 件のコメント:

コメントを投稿