将参数传递给rdlc中的子报告

时间:2013-10-08 12:51:02

标签: asp.net sql-server rdlc

我正在尝试在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();

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

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

提前致谢

1 个答案:

答案 0 :(得分:0)

使用子报告可能会出现很多问题。

正如link所述,此错误有三个常见原因:

  1. ReportViewer找不到与子报告
  2. 对应的.rdlc
  3. 主报告未传递子报表预期的一个或多个参数
  4. 未提供子报表的数据
  5. 可能的解决方案:

    1. 将子报告.rdlc文件放在与主.rdlc文件相同的文件夹中
    2. 您发布的代码似乎正确但您必须先在“设计视图”>中设置子报表参数。右键单击子报表对象>子报告属性>参数;使用表达式或使用以下语法设置参数值:ie [@Month1]
    3. 使用SubreportProcessing活动