始めの言葉

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

2018年7月22日日曜日

MapDraw を使った帳票設計のテクニック 第5回 - 四則演算 - 1 -

MapDraw を使うと、スプール・ファイルのデータを元に四則演算して、スプール・データに無い合計の値等を表示させるような設計ができます。
とは言え、実際に使用されている事例から判断すると、次のような 3 桁区切りのカンマを追加するという、比較的地味な使い方の方が一般的なようです。
3 桁区切りのカンマを始め、四則演算には "メモリー・ゾーン" を活用します。例えば、次の MapDraw のプレビューの画面でお分かりのように、スプール・ファイル内に 3 桁区切りになっていない数値データがあったとします。
3 桁区切りのカンマが無いスプール・データの例
MapDraw 上の四則演算の設計の基本は、次のとおりです。
1. メモリー・ゾーン(整数メモリー、または浮動小数点メモリー)を使って、演算する値を Mapping に記憶させます。
2. 数値計算ゾーンで定義した計算式を使って、記憶したメモリー・ゾーンの数値を計算します。
3. メモリー置換ゾーンを使って、演算結果を表示させます。

では、この "金額" 欄の数値を、3 桁区切りのカンマ付きの表示になるように設計してみましょう。
1. この例では、数値は繰り返し行の 111 桁から始まって、15 桁 ありますので、次の画面のようにグループ内のゾーンを定義するのですが、その際に、ゾーンのプロパティにおいて、タイプに "メモリー"、"整数メモリー"を指定します。
整数メモリーを指定したメモリー・ゾーンの定義
 2. 画面を閉じると、次のように、メモリー・ゾーンはピンク色になっていることが分かります。ちなみに、プレビューしても何も表示されません。なお、このゾーンには "a" と名付けた条件を定義しています。"条件" については、別の機会に詳しくお話します。
メモリー・ゾーンの表示
3. このメモリー・ゾーンをコピーして、数値計算ゾーンを定義します。数値計算ゾーンの定義に当たっては、次の点にご注意ください。
- "タイプ" は、"メモリー"、"数値計算" を指定する。
- "データの長さ" は、必ず "0" とする。
- "ゾーンの後に追加する文字"欄に、計算式を記入する。
- 計算式には、メモリー・ゾーンの名前を 2 つの大カッコで挟む。
ここでは、3 桁区切りのカンマを追加するために、メモリー・ゾーンの値を単に 1 で割るという計算式を使用します。
3 桁区切りのカンマを追加するための数値計算ゾーンの定義
 4. この数値計算ゾーンも、メモリー・ゾーンと同様に、画面にはピンク色で表示されますし、プレビューしても何も表示されません。
数値計算ゾーンの表示
 5. では、計算した結果を表示させるために、メモリー置換ゾーンを定義しましょう。数値計算ゾーンをコピーして、次のように編集します。
- "タイプ" は、"メモリー"、"メモリー置換" を指定する。
- "ゾーンの後に追加する文字"欄に、数値計算ゾーン名を、2 つの大カッコで囲んで記入する。
メモリー置換ゾーンの定義
6. このゾーンは通常のゾーンと同じ扱いができますので、表示するフォントの種類や大きさ、色、あるいは、配置の左寄せや右寄せを指定することができます。実際に、上の画面を閉じると、通常のゾーンと同様に背景は透明です。
メモリー置換ゾーンの表示
7. 実際にプレビューしてみると、次のように 3 桁区切りのカンマが追加されていることを確認できます。後は、このゾーンの値は数値なので、メモリー置換ゾーンのデータの配置を右寄せに変更します。
プレビュー画面
ところで、何故、1 で割っただけで 3 桁区切りのカンマが追加されたかという疑問を持つ方もいらっしゃると思います。これには、MapDraw プリファレンス画面にある "四則演算" 欄の "桁区切り" の定義が効いていることをご記憶ください。
MapDraw プリファレンスの桁区切りの定義




0 件のコメント:

コメントを投稿