如何从主报告中检索子报告的记录数?
答案 0 :(得分:8)
我认为这是一个骗局,但无论如何我都会回答。 :)
您可以在子报表上创建包含共享变量的公式字段。在公式中,您将共享变量设置为子报表中rowcount字段的值。
然后在主报表中,您需要创建一个公式,其中包含与子报表同名的共享变量,然后返回共享变量的值。
以下是一些可能有用的链接。 http://www.datamanagementgroup.com/Resources/TrainersTalk/trainerstalk_howto_share_subreport_data_with_main_report.asp http://www.ozgrid.com/forum/showthread.php?t=19034
答案 1 :(得分:0)
将此公式放在子报表中。如果您愿意,可以将其禁止显示。
whileprintingrecords;
共享numbervar SubRecordCount:=(但是您想要计算报告中的记录);
将其放入主报告中。同样,这也可以被抑制。
whileprintingrecords;
shared numbervar SubRecordCount;
SubRecordCount
对于您需要的任何计算,请使用#2的公式名称
重要提示:由于Crystal的基本逻辑,如果它位于子报告的下方,则只能使用此字段。
另外,对于计算子报表中的记录,我建议在底部运行总计。
答案 2 :(得分:-1)
在这里,您可以从代码侧检索子报告计数
===========================
CrystalDecisions.CrystalReports.Engine.ReportDocument RepDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
RepDoc.Load(ReportName);
int IntRepCount = RepDoc.Subreports.Count;
===========================
将此计数传递给您的报告