Crystal Report with two DataSets displays either only if both have data
Posted on 2010-01-12
We have a number of reports (~15) implemented in Crystal 2008, used in a website implemented in C# 3.5. The reports are designed with XML files as their datasource and deployed with XSD files as their datasource. Each report calls an Oracle 10g stored procedures that ultimately generates a DataSet object containing two tables, DATA_RECORD and REPORT_PARAM, where DATA_RECORD is an array of records used to populate the report body and REPORT_PARAM is a single record containing the parameter values, for display in a cover page.
Here's the snippet where we're generating the report and writing it to disk:
1] DataSet ds = handler.Execute(criteria, GetStoredProcedureName());
2] ReportDocument rd = new ReportDocument();
5] rd.ExportToDisk(ExportFormatType.PortableDocFormat, m_PdfPath + pdfFileName);
REPORT_PARAM always contains one row; DATA_RECORD may contain 0 rows if the user-specified parameters filter out everything. If we put a breakpoint on line 2 and examine the DataSet assigned in line 1, REPORT_PARAM is populated correctly regardless of the contents of DATA_RECORD.
Here's the problem: For some - repeat, some - of our reports, if DATA_RECORD contains no rows, the report does not display the REPORT_PARAM values either. We've compared RPT files, XSDs, etc. for those that work and those that don't, but haven't been able to identify the cause.
TIA for any help you can provide!