作成日: 2017/02/22 最終更新日: 2017/02/22
文書種別
制限事項
詳細
印刷時に表示される印刷設定ダイアログには、ActiveReports独自の詳細設定機能が用意されています。
ActiveReportsユーザーガイド
- 基本操作
- 印刷の詳細設定
この機能は、印刷先の用紙サイズ設定にあわせて集約印刷や拡大・縮小印刷などを行う機能ですが、設定ダイアログ上で簡易プレビューなども行っております。こうした動作を実現するため、プリンタドライバから用紙サイズ等の情報取得処理が内部で行われています。この時、プリンタドライバから取得する情報には、プリンタドライバ固有の情報が含まれているため、環境によって取得に要する時間に差異が生じる場合があります。
これは、ActiveReportsの仕様・制限となります。
ActiveReportsユーザーガイド
- 基本操作
- 印刷の詳細設定
この機能は、印刷先の用紙サイズ設定にあわせて集約印刷や拡大・縮小印刷などを行う機能ですが、設定ダイアログ上で簡易プレビューなども行っております。こうした動作を実現するため、プリンタドライバから用紙サイズ等の情報取得処理が内部で行われています。この時、プリンタドライバから取得する情報には、プリンタドライバ固有の情報が含まれているため、環境によって取得に要する時間に差異が生じる場合があります。
これは、ActiveReportsの仕様・制限となります。
回避方法
以下のいずれかの方法が考えられます。
- ActiveReports独自の詳細設定機能を無効にする
以下の手順で、Viewerコントロールの[印刷]ボタンをクリックした時に表示される印刷設定ダイアログについて、ActiveReports独自の詳細設定機能を無効にすることが可能です。
- フォームデザイナを開き、Viewerコントロールを選択する
- プロパティウィンドウ上のPrintingSettingsプロパティについて、ドロップダウンリストを表示させる
- UseStandardDialogオプションを「オン」にする
(PrintingSettingsプロパティの詳細については、こちらのナレッジ文書の「1.」をご覧ください。)
なお、上記のプロパティ設定で制御できるのは、Viewerコントロールの[印刷]ボタンをクリックした時の動作のみです。コード上でPrintメソッドを実行する場合は、引数によって詳細設定機能の有無を指定する必要があります。たとえば、以下のようなコードになります。
◆サンプルコード(VB.NET)
' PrintingSettings 列挙体
Dim settings As GrapeCity.Viewer.Common.PrintingSettings
' 印刷ダイアログを表示 :ON
' 進行状況ダイアログを表示 :ON
' 印刷を個別のスレッドで実行 :OFF
' 標準の印刷設定ダイアログを使用:ON
settings = GrapeCity.Viewer.Common.PrintingSettings.ShowPrintDialog _
Or GrapeCity.Viewer.Common.PrintingSettings.ShowPrintProgressDialog _
Or GrapeCity.Viewer.Common.PrintingSettings.UseStandardDialog
' 印刷実行
Viewer1.Print(settings)
◆サンプルコード(C#)
// PrintingSettings 列挙体
GrapeCity.Viewer.Common.PrintingSettings settings;
// 印刷ダイアログを表示 :ON
// 進行状況ダイアログを表示 :ON
// 印刷を個別のスレッドで実行 :OFF
// 標準の印刷設定ダイアログを使用:ON
settings = GrapeCity.Viewer.Common.PrintingSettings.ShowPrintDialog
| GrapeCity.Viewer.Common.PrintingSettings.ShowPrintProgressDialog
| GrapeCity.Viewer.Common.PrintingSettings.UseStandardDialog;
// 印刷実行
viewer1.Print(settings);
- .NET標準のPrintDialogクラスを使用する
.NET標準のPrintDialogクラスを使用することでActiveReports独自の内部処理が行われず、表示に要する時間が短縮されます。具体的な実装方法については、以下のナレッジ文書の「2.」をご参照ください。
[文書番号:39710]
Windowsフォームアプリでレポートを印刷する際、印刷ダイアログ上で押されたボタンを判断する方法は?
旧文書番号
40050