通过asp.net自动将参数添加到SSRS

时间:2013-10-22 21:33:00

标签: asp.net reporting-services rdl

我正在使用ASP.Net WebForms ReportViewer控件扩展现有应用程序来托管SSRS报告。现有大量报告。除了我们还需要将另一个参数传递给每个报告之外,这不是问题。

我们团队中的某个人建议我们可以添加另一个参数,SSRS会将其传递给与每个报告关联的存储过程。我对调查服务一无所知。

我尝试了以下内容:

private void AddNewParameter(Report report)
{
    var reportParameters = new List<ReportParameter> { new ReportParameter(paramName, "foo", false) };
    report.SetParameters(reportParameters);
}

调用Report.SetParameters()会抱怨报表中不存在的新参数。 SetParameters()的MSDN页面底部附近有一条注释:

“必须在原始报告定义中定义为SetParameters方法指定的参数。”

任何人都可以确认我的所有报告必须更改以获取新参数吗?

1 个答案:

答案 0 :(得分:0)

你正在尝试的方法将是一个死胡同。抱歉。下沉的感觉得到了证实。然而...

如果有大量报告,那么 可能会通过修改基础Report Definition Language来自动更新所有报告。我刚刚发布的链接将带您进入TechNet文章,该文章还提供了每个版本的实际模式定义等链接。

RDL实际上只是XML,直接引用TechNet文章:

  

RDL由匹配的XML元素组成   为Reporting Services创建的XML语法。你可以添加自己的   用于控制报表项值,样式和的自定义函数   通过访问报表定义中的代码程序集进   文件。

只有你可以权衡开发此类解决方案与手动方法的工作。

了解所需的更改:

  1. 保存一份报告的副本。
  2. 使用更改修改报告
  3. 将修改后的rdl与原始版本(BeyondCompare,notepad ++,无论如何)进行比较
  4. 如果您愿意解析XML,那么在剩余报告中重现更改将是完全可行的。