设置动态添加的Crystal报表子报表的参数值

时间:2015-10-14 14:34:51

标签: c# crystal-reports crystal-reports-2010

我正在撰写报告,我动态地将子报告添加到主报告中:

   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"

0 个答案:

没有答案