我正在撰写报告,我动态地将子报告添加到主报告中:
ReportDocument myReport = (...);
for(int i = 0; i < N; i++)
{
String subreportname = (...);
DataTable dt = (...);
CrystalDecisions.ReportAppServer.ReportDefModel.Section sec = new CrystalDecisions.ReportAppServer.ReportDefModel.Section();
sec.Kind = CrAreaSectionKindEnum.crAreaSectionKindDetail;
sec.Name = String.Format("DynamicSection{0}", i);
sec.Width = crFinalGroup.ReportClientDocument.ReportDefController.ReportDefinition.PageHeaderArea.Sections[0].Width;
myReport.ReportClientDocument.ReportDefController.ReportSectionController.Add(sec, myReport.ReportClientDocument.ReportDefController.ReportDefinition.DetailArea, i);
myReport.ReportClientDocument.SubreportController.ImportSubreport(subreportname, "Some\Path\SubReport.rpt"), sec);
myReport.Subreports[subreportname].SetDataSource(dt);
}
// set export options such as format and destination
// ...
myReport.Export();
myReport.Close();
myReport.Dispose();
哪种方法正常。
现在我需要在子报告"Some\Path\SubReport.rpt"
中添加参数值。所以我打开报告,像往常一样创建和配置参数值。但是,当我尝试为新creater参数设置一个值时,我收到一个错误:
(假设参数名称为"pvalue"
)
myReport.SubReports[subreportname].SetParameterValue("pvalue", 0);
引发"Not supported within subreports"
错误
myReport.SetParameterValue("pvalue", 0, subreportname);
可以使用,但在导出myReport
报告时会抛出"Missing parameter values"
我还尝试在主报告(myReport
)中创建参数,并为主报告和子报告设置参数:
myReport.SetParameterValue("pvalue", 0);
myReport.SetParameterValue("pvalue", 0, subreportname);
但是在导出主报告
时我仍然得到"Missing parameter values"