1

我正在尝试在 rdlc 报告的子报告中传递参数。我有用户 ReportParameter 但是当我执行它时,该函数没有被调用并且它显示“无法显示报告”

        ReportParameter[] paramReport = new ReportParameter[6];
        paramReport[0] = new ReportParameter("Month1", (DateTime.ParseExact(fromd1.ToString("dd/MMM/yyyy"), "dd/MMM/yyyy", CultureInfo.InvariantCulture)).ToString("MMMM"), false);
        paramReport[1] = new ReportParameter("Month2", (DateTime.ParseExact(fromdate2.ToString("dd/MMM/yyyy"), "dd/MMM/yyyy", CultureInfo.InvariantCulture)).ToString("MMMM"), false);
        paramReport[2] = new ReportParameter("Month3", (DateTime.ParseExact(dt_todate3.ToString("dd/MMM/yyyy"), "dd/MMM/yyyy", CultureInfo.InvariantCulture)).ToString("MMMM"), false);
        paramReport[3] = new ReportParameter("Month4", (DateTime.ParseExact(dt_todate4.ToString("dd/MMM/yyyy"), "dd/MMM/yyyy", CultureInfo.InvariantCulture)).ToString("MMMM"), false);
        paramReport[4] = new ReportParameter("Month5", (DateTime.ParseExact(dt_todate5.ToString("dd/MMM/yyyy"), "dd/MMM/yyyy", CultureInfo.InvariantCulture)).ToString("MMMM"), false);
        paramReport[5] = new ReportParameter("Month6", (DateTime.ParseExact(dt_todate6.ToString("dd/MMM/yyyy"), "dd/MMM/yyyy", CultureInfo.InvariantCulture)).ToString("MMMM"), false);
        this.ReportViewer1.LocalReport.SetParameters(paramReport);
        this.ReportViewer1.LocalReport.Refresh();

以上是我将参数传递给子报告的代码。但是这段代码不起作用。

如果有人知道如何做到这一点,请帮助我..

提前致谢

4

1 回答 1

0

使用子报表有很多事情可能会出错。

正如这个链接所说,这个错误有三个常见的原因:

  1. ReportViewer 找不到与子报表对应的 .rdlc
  2. 子报表预期的一个或多个参数没有被主报表传递
  3. 未提供子报告的数据

可能的解决方案:

  1. 将子报表 .rdlc 文件放在与主 .rdlc 文件相同的文件夹中
  2. 您发布的代码似乎是正确的,但您必须事先在设计视图中设置子报表参数 > 右键单击​​子报表对象 > 子报表属性 > 参数;使用表达式或使用此语法设置参数值:即[@Month1]
  3. 使用SubreportProcessing事件
于 2013-10-08T15:30:46.703 回答