- PR -

CrystalReportViewerでハガキサイズ帳票を印刷する時

1
投稿者投稿内容
nano
会議室デビュー日: 2004/05/24
投稿数: 3
投稿日時: 2004-05-24 16:49
いつもお世話になっております。

Windows2000/VB.Net2003/SQLServer2000/CrystalReports for VS.NETの環境で
ハガキサイズのクリスタルレポート帳票をCrystalReportViewerを利用して
印刷を行うWindowsFormアプリケーションを開発しています。

CrystalReportViewerでプレビューを行うと正常にハガキサイズで表示されます。
(デバックで確認したところも、
 PrintOptions.PaperOrientationにLandscape、
 PrintOptions.PaperSizeに43が入っていました。)

ところが、いざ印刷しようとすると
用紙サイズが、「ハガキ」→「LT 8.5x11in」に変更されてしまいます。
(印刷ダイアログ→プリンタのプロパティ→用紙サイズが
「ハガキ」ではなく、「LT 8.5x11in」になってしまう。)

これはなぜ起こる現象なのでしょうか?
また、回避するにはどのようにすれば良いのでしょうか?

ご教授よろしくお願い致します。
bubunya
大ベテラン
会議室デビュー日: 2003/01/16
投稿数: 124
投稿日時: 2004-05-24 22:05
この辺の情報が役に立つかもしれません。

http://japan.crystaldecisions.com/support/crystalreports9/faq_dotnet.asp#net_print
http://japan.crystaldecisions.com/support/crystalreports9/faq_dotnet.asp#net_paper

駄目ならサポートに問い合わせた方が良いかと思います。
nano
会議室デビュー日: 2004/05/24
投稿数: 3
投稿日時: 2004-05-25 10:14
bubunyaさんご返答ありがとうございます

さっそくHotfixをダウンロードし適用して試してみましたが、
結果は同じでした・・・残念です。

サポートの方へ問い合わせてみようかと思います。
ありがとうございました。
nano
会議室デビュー日: 2004/05/24
投稿数: 3
投稿日時: 2004-05-28 09:57
サポートより回答がありました。
結局は、Crystal Reportsの制限でダメなようです。

---

ハガキサイズでデザインしたレポートを CrystalReportViewer の印刷ボタン
から印刷すると、用紙サイズが反映されていない旨ご連絡いただきました。
また、Hot Fix を適用しても現象は改善されない旨ご報告いただきました。

Crystal Reports は、プリンタの設定情報を Windows API の DEVMODE
構造体のパブリック領域からのみ取得しております。そのため、プリンタ機種
によってプライベート領域を利用しているものでは正しく動作しないことが
ございます。これは、Crystal Reports の制限事項です。
大変申し訳ございませんが、その旨ご了承くださるようお願い致します。

回避策として CrystalReportViewer の印刷ボタンを非表示にし、コマンドボタン
を CrystalReportViewer 上に挿入し、このコマンドボタンのクリックイベントで
PrintToPrinter メソッドを利用して印刷していただくようお願い申し上げます。
この方法では印刷ダイアログは表示されませんがご了承いただきますよう
お願い致します。

手順は以下の通りです。
【CrystalReportViewer上の印刷ボタンを非表示にする】
1. 以下のコードを CrystalReportViewer1.ReportSource = crReportDocument
というコードの上に記入します。
CrystalReportViewer1.ShowPrintButton = False

【Viewer上にコマンドボタンを作成する】
2. [ツールボックス] の [Windowsフォーム] タブより Button を選択し、
CrystalReportViewer のツールバー上に配置し、適当なサイズにフォーマットします。
3. 挿入した Button をダブルクリックし、Button のクリックイベントに以下のコードを記入します。
crReportDocument.PrintToPrinter(1, True, 1, 1)
1

スキルアップ/キャリアアップ(JOB@IT)