始めの言葉

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

2018年11月17日土曜日

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

Mappingでは帳票設計する際に、文字や罫線など様々な要素に条件付けをすることで、それまでの固定的な表現の帳票設計から容易に脱却することができます。横罫線だけでなく、縦罫線に関しても、データの存在する行に応じて表現することで、帳票の見易さが大きく向上していると思います。
前回は、データの存在する行と、その 1 つ上の行に縦罫線の要素を引くことを、条件付けを使ってどのように設計するかをご紹介してきました。
前回の設計では、その結果、データのある行の中の最上段の行では、データのある行にのみ縦罫線が引かれ、その上の空白行には引かれませんでした。
条件だけを見ればおかしな現象ですが、設計全体を見直すと、元々グループの開始行はデータのある行の中の最上段の行でした。それは、縦罫線の要素に使用している条件付けも、その行から始まることを意味していますので、この結果は正しいわけです。
グループの開始行は 10 行目
他のデータの存在する行と同様に、この最上段の行でも縦罫線の要素をもう 1 つ上に追加するには、2 つの方法が考えられます。
1つは、必ず引かなければならない罫線なら、始めから DrawF 画面上で固定罫線を引いてしまうという方法です。
DrawF 画面で最低限必要な罫線を引く
もう 1 つの方法は、グループの開始行を 9 行目とするというものです。その場合、最も上に位置する横罫線のみを DrawF 画面で引きます。
DrawF 画面で横罫線のみを引く
そして、MapF 画面では、グループ "g1" の開始行を "10" から "9" に変更します。それによって、次のプレビュー画面のように希望通りの縦罫線が引けたことを確認できます。
グループ "g1" の開始行を "9" に変更する
必要な長さの縦罫線が引けた

2018年11月10日土曜日

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

前回は、データの存在する行にのみ、横罫線を引く設計を行いました。今回は、同じ考え方を使って縦罫線にも条件を付けてみましょう。
先ず、縦罫線を横罫線と同じようにデータの存在する行にのみ引いてみましょう。
横罫線の時と同様に、MapF 画面で、横罫線の左端に近い場所に、大体 1 行分の長さを持つ縦線をマウスで引きます。マウスのボタンを離すと、次のような線のプロパティを設定する画面が、自動的に表示されます。
MapF 画面で引いた縦罫線
この画面で、次の設定を行います。
- 名前 : これは任意の名前です。
- ゾーン条件 : 横罫線を引く時に作った条件が使えますので、"a" を指定します。
- ペンの太さ、色 : 好みで指定します。
一旦、プレビュー画面で、縦罫線の位置や長さを確認します。
縦罫線のプレビュー画面
条件付けによって、データの存在する行に表示されるはずなので、位置を少し上に上げる必要があります。上下の位置の調整は、線のプロパティ画面の "Y シフト" の値を使って行います。座標の原点は用紙の左上角で、上下方向、つまり Y 座標の値は下に向かうほど大きくなりますので、線の位置を上に移動するには、値をマイナス方向に大きくします。プレビューを確認しながら試行錯誤を繰り返し、ここでは "-35(1/10mm)" に設定すると良さそうです。
Y シフトの値を使って、線を上に移動する。
プレビュー画面
次に、今、引いた縦罫線の間を埋める縦罫線を引きます。MapF 画面上で、先ほど引いた縦線をコピー・ペーストし、真下に移動します。(左右に動かないようにするには、キーボードの、下向きのカーソル・キーを使用して移動するのが便利です。)
キーボードの F5 キーを押して、その線のプロパティを表示させ、次のように変更します。
- 名前 : 別の名前に変更します。
- ゾーン条件 : データの無い行に適用するために "b" を指定したら、どうでしょうか。
データの無い行に引く縦罫線の指定
プレビュー画面を見ると、データの無い行にも縦罫線を引くように指定したことになり、ページの下の方にまで、余分に縦罫線が引かれています。
プレビュー画面
条件が正しくないのが原因ですから、新しい条件を設定します。
次の画面のように、条件設定の中の "行" の指定方法には、"現在行" の他に、1 行下の行を指定するための "+1" や、1 行上の行を指定するための "-1" があります。この数字は、最高 200 まであります。ここでは、次の行がデータの存在する行であることを条件とするために、この画面のような条件を定義して "c" としています。
新しい条件 "c"
縦線 "L2" の条件を "c" に変更したところ、プレビュー画面は次のようになりました。
プレビュー画面
実は自分でも多少疑問な点があるのですが、ここまでできれば、後は 1 行目の上の横罫線を DrawF 画面で引いておけば、きれいな罫線付きの表になります。疑問な点は、次回にお話しします。



2018年11月3日土曜日

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

前回は、グループで指定した開始行から終了行までの間で、データの存在する行だけに、下部に罫線を引くという設計を始めたところです。
各行の "6" 桁目に、ブランクが無ければ、つまり、何かのデータが存在すれば実行するという条件を、罫線のプロパティ画面の中で設定しました。しかし、その結果、プレビューすると罫線しか表示されませんでした。
それは、グループの中で条件を設定した場合には、その条件の結果が "真" になった場合だけ実行されるからです。
この場合に当てはめると、"6" 桁目にデータがある行において、罫線を引くことだけが "真" だったので実行されましたが、文字を表示するゾーンに対しては条件を設定していないので、"真" になることがなく実行されなかった、つまり、文字は表示されなかったということになります。
別の言い方では、グループの中で条件を設定する場合には、グループの中の全ての要素に対して条件を設定しないとならないと言えます。

では、前回、設定した "z11" というゾーンに対して条件を設定します。条件は新たに定義する必要はなく、罫線に適用した "a" を使用すればデータのある行の文字を表示できるはずです。
ゾーンに条件 "a" を適用する
では、プレビューしてみましょう。
プレビュー画面
文字も表示されるようになりましたが、元のスプールでは 1 行間隔であるはずの空白行が無くなっているため、行間が詰まっているように見えます。
それは、条件 "a" で指定した "6" 桁目にデータのある行に対して、罫線や文字のゾーンを設定しているからです。つまり、"6" 桁目にデータの存在しない空白行に対する手当てを行う必要があるということです。
そのためには、6 桁目を 1 桁だけ(桁数はもっと多くても構いません。)指定したゾーン "z12" を設定します。
ゾーン "z12" の設定
このゾーンに対して、"a" とは逆の条件 "b" を設定します。"a" とは逆に、"There is"と設定しても結構ですし、"There isn't"のままで、論理ルール欄に "not 1" と指定しても結構です。
条件 "b" の設定
では、改めてプレビューしてみましょう。
プレビュー画面
これで、1 行間隔で空白行が入る、元のスプールと同様になりました。
もちろん、ゾーン "z11" のプロパティで、間隔を調整するという方法もあり得ます。その場合は、間隔の量を調整できることがメリットかと思います。

ただ、良く見ると、文字と罫線の間隔が狭く、下部が重なって見えます。
プレビューを倍率100%で表示した画面
調整するには、文字のゾーンの位置を少し上に上げる、あるいは、罫線を少し下げるという 2 つの方法が考えられます。ここでは、罫線の位置を少し下げます。罫線のプロパティ画面で、"Y シフト" の値を 10(1/10mm 単位)に設定します。Y 軸は下方向に伸びていますので、下に移動するためには、値を大きくします。
罫線の Y シフトの値を 10 に設定する
プレビューしてみると、適当な間隔になったことを確認できます。
プレビュー画面