1

我正在运行以下代码:

ReportDocument crystalReport = new ReportDocument();
crystalReport.Load(reportPath);
DataTable dtReportData;
DbUtils.GetSqlResult(dataQuery, out dtReportData);
crystalReport.SetDataSource(dtReportData);

var crDiskFileDestinationOptions = new DiskFileDestinationOptions();
var crFormatTypeOptions = new PdfRtfWordFormatOptions();
crDiskFileDestinationOptions.DiskFileName = pdfFilePath;
crystalReport.PrintOptions.PaperOrientation = PaperOrientation.Landscape;

var crExportOptions = crystalReport.ExportOptions;
{
    crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
    crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
    crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
    crExportOptions.FormatOptions = crFormatTypeOptions;
}

crystalReport.Export(); //PROGRAM FAILS HERE WHEN THE DATATABLE CONTAINS 900 OR MORE ROWS
crystalReport.Close();

当尝试将具有超过 900 行的表作为数据源的报告导出为 pdf 时,它会失败。例外是:

报表应用程序服务器失败

堆栈跟踪是:

在 CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e) 在 CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext) 在 CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext reqContext) 在 CrystalDecisions.CrystalReports.Engine.FormatEngine.Export(ExportRequestContext) reqContext) 在 CrystalDecisions.CrystalReports.Engine.FormatEngine.Export() 在 CrystalDecisions.CrystalReports.Engine.ReportDocument.Export()

知道如何解决这个问题吗?

更新

使用 Crystal Reports Viewer 时,我可以将报表导出为 PDF,而从 Crystal Reports 设计器执行相同操作会导致错误。导出水晶报表对象时,是否可以通过编程方式使用查看器的库?

4

0 回答 0