Infragistics WPF Reportの使用に関するチュートリアル(二)
1294 ワード
前の記事では、Infragisticsレポートの定義方法について説明しましたが、実際の開発で問題が発生しました.
用紙のサイズを調整する、カスタム用紙に変更した後、レポートを生成した後、印刷ボタンをクリックすると、空の用紙が出てくる.しかし、レポートには内容があるのに.ただし、コード印刷をそのまま使用することは問題ない.そこで、この問題を解決するために、レポートのプレビューをキャンセルし、直接コード印刷を使用しました.
XamReportViewerのOnProcessingCompletedに次のような印刷コードを加えることで、ロード完了後の自動印刷を実現できる.
用紙のサイズを調整する、カスタム用紙に変更した後、レポートを生成した後、印刷ボタンをクリックすると、空の用紙が出てくる.しかし、レポートには内容があるのに.ただし、コード印刷をそのまま使用することは問題ない.そこで、この問題を解決するために、レポートのプレビューをキャンセルし、直接コード印刷を使用しました.
XamReportViewerのOnProcessingCompletedに次のような印刷コードを加えることで、ロード完了後の自動印刷を実現できる.
private void XamReportViewer_OnProcessingCompleted(object sender, ProcessingCompletedEventArgs e)
{
XamReportViewer repPrint = sender as XamReportViewer;
Dispatcher.BeginInvoke(new Action(() =>
{
if (repPrint != null)
{
LocalPrintServer localPrintServer = new LocalPrintServer();
PrintQueue defaultPrintQueue = localPrintServer.DefaultPrintQueue;
PageSettings currentPageSettings = repPrint.GetCurrentPageSettings();
PaperSettings paperSettings = new PaperSettings(currentPageSettings.PaperSize, currentPageSettings.PageOrientation);
repPrint.Print(paperSettings, defaultPrintQueue, Infragistics.Controls.Reports.PageRange.All);
this.Close();
}
}), System.Windows.Threading.DispatcherPriority.Background, null);
}