我有两个不同的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。
当我尝试在查看器中显示包含子报表的报表或打印到打印机时,我得到“索引超出范围。必须是非负数且小于集合的大小。 参数:index。“错误。然而,无论PrintMedia如何,简单的非子报告CR都能正常工作。
不要以为任何人都有任何想法?
答案 0 :(得分:1)
在与此争斗的时间超过我想象的时间之后,事实证明水晶报告显示字符串中的一个字段存在问题。基本上我从头开始编写报告,逐个添加,试图找出错误。
答案 1 :(得分:0)
您可以在现成的Crystal查看器或Crystal Reports本身中试用报告吗?它有效吗?
也许尝试将页面设置中的打印机选项设置为“无打印机(优化屏幕显示)”