この特集のトップページへ
Chapter 7:プレゼンテーション層の構築

head2.gif7.8.4 印刷処理
 あとは印刷処理を実装すれば,請求書管理処理の実装は完了する。

●明細を1枚印刷する
 まずは,FormBillDetailフォーム(Fig.7-109)の[印刷]ボタン(BTN_PRINTボタン)を押したときの処理を実装する。この場合,FormBillDetailフォームに表示されている請求書の明細を,印刷またはプレビューするように実装する。そのためには,すでに実装したFormPrintPreviewフォーム(Fig.7-45)のSetTitle2プロシージャ(List 7-172)の引数として,請求書情報を表示しているフレームであるFRAME_BILLフレームと請求書の明細を表示しているFLXGrid_SlipDetail階層フレキシブルグリッドを与え,FormPrintPreviewフォームをモーダル表示すればよい。その実装は,List 7-207のようになる。

●請求書のいっせい印刷
 次にFormBillフォーム(Fig.7-105)の[印刷]ボタン(BTN_PRINTボタン)を押したときの処理を実装する。この場合,「○全伝票の明細を印刷できるようにする」で実装したのと同じように,FormPrintSelectフォーム(Fig.7-102)を表示し,次のいずれかの処理をユーザーに選ばせるようにする。これらの処理を実装したものが,List 7-208である。

[表示されている表を印刷ならびにプレビュー]
 FormBillフォームのDGrid_Billデータグリッドに表示されている内容を,印刷ならびにプレビューする。そのためには,すでに実装しているFormPrintPreviewフォームのSetTitleプロシージャ(List 6-36)を用いる。List 7-208の24〜26行目が,その処理に相当する。
 
[表内のすべての項目の明細を一括印刷]
 FormBillフォームのDGrid_Billデータグリッドに表示されているすべての請求書をループ処理し,各々の請求書に対して明細を印刷する。List 7-208の28〜54行目が,その処理に相当する。
 
[表内の選択されている項目の明細を一括印刷]
 上記の処理とほぼ同じだが,全請求書ではなく,DGrid_Billデータグリッドでユーザーが選択した請求書([SHIFT]キーを押しながらクリックして選択した請求書)のみをループ処理する。List 7-208の56〜86行目が,その処理に相当する。

 ところで,請求書の明細を印刷するときには,印刷した請求書の状態を「送付ずみ」に設定できると便利である。そこで,List 7-208には,そのような処理を実現できるよう,ユーザーがFormPrintSelectフォーム(Fig.7-102)で[表内のすべての項目の明細を一括印刷]または[表内の選択されている項目の明細を一括印刷]を選択したときには,Fig.7-111に示すメッセージを表示するようにしてある(16〜20行目の処理)。

Fig.7-111 送付ずみにするかどうかの確認
fig7_111

 ユーザーがFig.7-111で[はい]ボタンを押したときには,List 7-208の44行目と85行目にあるように,Business.BillコンポーネントのSendBillメソッド(List 6-188)を呼び出し,印刷した請求書の状態を「送付ずみ」とする。この処理によって,ユーザーが印刷後にわざわざ[送付]ボタン(BTN_SENDボタン)を押し,請求書の状態を「送付ずみ」に変更する手間がなくなり,印刷と同時に請求書の状態を変更できるようになる。

Prev 130/134 Next