前一篇介绍了如何定义Infragistics报表, 在实际开发过程中还遇到一个问题
在调整了纸张的大小, 改为自定义纸张之后, 生成报表之后 , 点击打印按钮, 打出来的都是空的纸. 但是明明报表中是有内容的. 但是直接使用代码打印就没有问题. 因此, 为了解决这个问题, 我取消掉了报表预览, 直接使用了代码打印.
在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); }