0

我有两个不同的 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 都可以正常工作。

不要以为有人有任何想法吗?

4

2 回答 2

1

在与这个问题进行了比我想象的更长的斗争之后,事实证明水晶报告显示字符串中的一个字段存在问题。基本上,我从头开始编写报告,逐个添加以尝试隔离错误。

于 2013-01-14T22:51:20.707 回答
0

您可以在现成的 Crystal 查看器或 Crystal Reports 本身中试用该报表吗?它有效吗?

也许尝试将页面设置中的打印机选项设置为“无打印机(优化屏幕显示)”

于 2012-11-17T09:36:02.690 回答