我有两个不同的 SAP Crystal Reports,一个有子报表,另一个没有。无论出于何种原因,简单的 CR 都可以很好地打印到打印机、PDF 和查看器。无论出于何种原因,带有子报表的 CR 都只能打印为 PDF。这让我相信报告本身没有任何内在错误,否则当我保存为 PDF 时它不会工作。
我的代码片段如下(在 VB 中):
Select Case PrintMedia
Case PrintType.Printer
crOrderPrintout.PrintToPrinter(1, False, 0, 0)
Case PrintType.Viewer
Dim frmReportViewer As New frmReportViewer
frmReportViewer.CrystalReportViewer1.ReportSource = crOrderPrintout
frmReportViewer.ShowDialog()
Case PrintType.File
crOrderPrintout.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, String.Format("C:\Documents and Settings\{0}\Desktop\{1}.pdf", mdlSharedVars.StripDomainFromFullUsername(WindowsIdentity.GetCurrent.Name), ReceiptID))
Case Else
crOrderPrintout.PrintToPrinter(1, False, 0, 0)
End Select
为了澄清,PrintMedia 是一个变量,其类型是我的自定义枚举 PrintType。
当我尝试在查看器中显示带有子报表的报表或打印到打印机时,我得到一个“索引超出范围。必须是非负数并且小于集合的大小。参数:索引。” 错误。然而,无论 PrintMedia 是什么,简单的非子报表 CR 都可以正常工作。
不要以为有人有任何想法吗?