Hopefully this is the right place to post this question, since my team is working with report definitions created using the Crystal Report designer inside VS.NET and the reports are rendered at runtime within a .NET desktop application using the Crystal Reports .NET runtime libraries. We are using VS.NET 2015 for development, and deploying under .NET 4.5.1 within a WPF application.
We are using Crystal Reports Support Pack 15 (downloaded from SAP Crystal Reports, developer version for Microsoft Visual Studio: Updates & Runtime Downloads), since a brief attempt to use Support Pack 16 resulted in instability, such as VS.NET crashing upon Saving a Report Designer or upon compile/F5 after editing a report. After rolling back to SP 15, the editing environment appeared stable again. So I can't state whether the bug I'll describe below is present in SP16, since we can't seem to run with that (on at least the 2 development machines it was tried on).
The issue we are encountering is that a report crashes during rendering at runtime when a particular data set is fed into it.
The interesting thing... is that simply setting a section to have a "New Page After" stabilizes the rendering of the report. Alternatively, providing a slightly different data set, with more or fewer records stabilizes the report as well, and I'm assuming because that also affects where pagination falls.
Because this runtime crash seems intimately tied to our particular report layout and a particular data set, I find it hard to imagine what else to provide, other than our complete report definition and the XML representation of the ADO.NET DataSet that feeds it. It is a complex report with multiple subreports, many levels of hierarchical grouping, lots of conditional suppression logic, and a mix of cross-tabs, and typical record based rendering. Something is jogging my memory from several years ago that this might be related to the cross-tab, but that is just a complete hunch. But if someone on the SAP side is willing to accept those development artifacts and attempt to debug this, it would be much appreciated!!!
For now, I'll just start with providing the stack trace that we capture during the failure. I've verified this fails with slightly different stack traces across two runtime versions that we have tested under. But the exception message is the same...
Runtime assembly version 13.0.2000.0 results in the following:
[06/10/2016 11:21:22.829 AM] [ERROR] Error occured in Crystal Reports --> CrystalDecisions.CrystalReports.Engine.InternalException: The Report Application Server failed ---> System.Runtime.InteropServices.COMException: The Report Application Server failed
at CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.GetPage(PageRequestContext pPageRequestContext)
at CrystalDecisions.ReportSource.EromReportSourceBase.GetPage(PageRequestContext pageReqContext)
--- End of inner exception stack trace ---
at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
at CrystalDecisions.ReportSource.EromReportSourceBase.GetPage(PageRequestContext pageReqContext)
at CrystalDecisions.CrystalReports.Engine.FormatEngine.GetPage(PageRequestContext reqContext)
at CrystalDecisions.ReportSource.LocalReportSourceBase.GetPage(PageRequestContext pageReqContext)
at CrystalDecisions.Windows.Forms.MainReportDocument.GetPage(PageRequestContext context)
And runtime assembly version 10.5.3700.0 (which we are currently running in production) results in the following:
[05/28/2016 01:26:27.340 AM] [ERROR] Error occured in Crystal Reports --> CrystalDecisions.CrystalReports.Engine.InternalException: The Report Application Server failed ---> System.Runtime.InteropServices.COMException: The Report Application Server failed
at CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.GetPage(PageRequestContext pPageRequestContext)
at CrystalDecisions.ReportSource.EromReportSourceBase.GetPage(PageRequestContext pageReqContext)
--- End of inner exception stack trace ---
at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
at CrystalDecisions.ReportSource.EromReportSourceBase.GetPage(PageRequestContext pageReqContext)
at CrystalDecisions.CrystalReports.Engine.FormatEngine.GetPage(PageRequestContext reqContext)
at CrystalDecisions.ReportSource.LocalReportSourceBase.GetPage(PageRequestContext pageReqContext)
at CrystalDecisions.Windows.Forms.MainReportDocument.GetPage(PageRequestContext context)
Please let me know if anyone has any ideas of what we could do as a workaround, or to get SAP to attempt to fix it. Introducing additional pagination settings to stabilize our currently identified failure has two disadvantages:
- We are trying to keep the report as compact as possible, and adding page breaks is contrary to that.
- Even if I were to accept adding the page break as a way of stabilizing our particular failing situation, it doesn't give me confidence that I am not playing whack-a-mole, and that the failure will then just manifest under some yet-to-be-determined different data condition.
Thanks for anyone's time who reviews this and provides any insights.
Regards,
Pete