この特集のトップページへ
>
Chapter 7:プレゼンテーション層の構築
7.4.7 顧客情報の印刷処理
●プレビュー処理
プログラムも説明も長くなってしまったため,わかりにくいことも否定できないが,要はデータグリッドが保持している各行の値を取得し,Printメソッドでその文字列を描画し,Lineメソッドで縦横の罫線を引くというだけの話である。
ここで,ポイントとなる点をまとめておこう。
- 単位系
-
Visual Basicにおいては,さまざまな単位系を利用できる。通常使われるのはTwip単位だが,印刷などではミリメートルで単位を指定したいこともあり,その場合には適宜単位を変換する必要がある。
- フォントの扱い
-
フォントはプリンタとディスプレイの機種によって異なる。よって,Setキーワードを使ってプリント用のフォントをディスプレイ(ピクチャボックスやフォームなど)用のフォントとして指定したり,その逆をしたりしてはいけない。
- データグリッドに表示されている文字列の取得にはCellTextメソッドを使う
-
データグリッドに表示されている文字列を取得するためには,CellTextメソッドを使えばよい。そうすれば,データグリッドのセルに表示されているのとまったく同じ文字列を取得することができる。
- プリンタへの出力
- プリンタに出力する場合は,改ページのたびにNewPageメソッドを呼び出し,出力が終わったらEndDocメソッドを呼び出す。また,強制的に印刷を中止したいときには,KillDocメソッドを呼び出す。
なお,今回はピクチャボックスとプリンタの両方に描画できるように作ってきたわけだが,両者に対応するように描画するのはなかなか大変なことも事実である。それは,ピクチャボックスとプリンタ(Printerオブジェクト)とでは,サポートしているプロパティやメソッドが一部異なるからである。たとえば,ピクチャボックスには,描画色を指定するForeColorプロパティがあるのに対し,プリンタにはない。よって,両方に描画できるように作るためには,両者が備えているプロパティやメソッドを必ず使うようにするか,“Is Printer”などIsキーワードを使って,それがプリンタであるかどうかを判断し,それによって処理を変更するといった場合分けが必要になってくる。つまり,両方に対応するためには,汎用的な設計が求められてくるのである。
52/134 |