• ベストアンサー

【クリレポ】プレビュー画面からの印刷について

いつも参考にさせてもらっています。 【質問内容】 フォームに貼りつけた印刷ボタン押下時は、設定したプリンタから印刷されます。 しかし、プレビュー画面を表示後、その画面にある印刷ボタンを押下した時には印刷ダイアログが開いて、通常使うプリンタがデフォルトで設定されてしまいます。 この「通常使うプリンタ」になってしまう部分を他のプリンタに設定したいのです。 何か良い方法はないものでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

#1の者です。 私の環境にはVS2003はなく、VS97+CR8ですので、若干違うかもしれないことを前提とさせて下さい。 プレビュー画面(CrystalReportViewer)での「印刷ボタン」押下は拾えないと思います。 プレビュー画面の印刷ボタン押下時ではなく、私の場合、プレビュー出力前に制御してます(#1参照)。 CRの仕様としてプレビュー出力前の段階で出力プリンタが確定してないと、プリンタによって出力情報(マージンなど)が異なるため、プレビュー後の動的な変更を認めてないのではないかと思います。 従って、基本的な考え方として、プレビューの前にデフォルトプリンタを変更し、用が済んだら元に戻す、という形で回避してます。

b-u-z-z
質問者

お礼

mfuku様 ありがとうございます。 私は、VBと言いますかGUI系勉強中のCOBOLプログラマなんですが、windowsAPI部分(プリンタ情報の取得および変更)の実装イメージがなかなか掴めず苦慮しております。 重ね重ね恐縮ですが、サンプルになるようなコードもしくはサイト情報などございましたら、ご教授ください。 よろしくお願いします。

その他の回答 (2)

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.3
b-u-z-z
質問者

お礼

mfuku様 何度もありがとうございました。

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.1

CrystalReportsは非常に優秀な帳票ツールなのですが、出力プリンタを変更できない点は非常に大きな問題点です。 私は、以下のようにして回避してます。 1.コモンダイアログなどで出力プリンタをユーザーが選択 2.現在の「通常使うプリンタ」名を待避 3.APIで「通常使うプリンタ」を変更 4.モーダルウィンドウでプレビュー出力 5.プレビューを閉じたら待避した「通常使うプリンタ」を元に戻す

b-u-z-z
質問者

補足

mfuku様 アドバイスありがとうございます。 私の環境をお知らせしておりませんでした。 VS2003を使用しております。 更に質問で恐縮ですが、プレビュー画面(CrystalReportViewer)での 「印刷ボタン」押下のイベントってどうすれば拾えるのでしょうか?