如何在报表查看器中向SSRS URL添加参数?

时间:2013-11-20 18:54:21

标签: asp.net c#-4.0 reporting-services iis-7

参考这篇文章: http://msdn.microsoft.com/en-us/library/ms252072(VS.80).aspx

我可以从我的网络应用程序访问我的SSRS报告,但问题是它不接受URL中的参数。

这是它接受的格式

报告服务器网址: http://ABCD.com/reportserver 报告路径: /公司工作/销售报告/ ABC

任何人都可以帮助我吗? 我想通过报表查看器传递SSRS URL中的参数。

2 个答案:

答案 0 :(得分:3)

您无法通过URL传递参数,因为控件期望在实际报表服务器的URL上而已。

实施例: serverReport.ReportServerUrl = new Uri(“http://ABCS.com/reportserver”); serverReport.ReportPath =“/ AdventureWorks示例报告/我的报告”;

您可以使用ReportViewer.ServerReport.SetParameters()函数在代码中传递这些参数。以下是我用于此目的的代码片段:

var parametersCollection = new List<ReportParameter>();
//add generic parameters that every report needs
parametersCollection.Add(new ReportParameter("RandomizerString", new Random().Next().ToString(), false));
parametersCollection.Add(new ReportParameter("MachineName", Request.UserHostAddress.ToString(), false));
ERDashboard.ServerReport.SetParameters(parametersCollection);

答案 1 :(得分:1)

似乎无法在Sam的回答中添加评论,所以我会发布另一个:

ReportViewerControl ReportServerURL属性与格式化常规URL以访问报表有很大不同。您可以使用sam提供的逻辑将Web浏览器控件导航到该URL,该URL也会在Web应用程序中呈现报表。如果你想要的话,这是另一个尝试。

作为注释,有多种原因可以选择web浏览器控件与报表查看器控件。报告查看器控件在代码隐藏中更容易管理,但在长时间刷新报表时存在内存问题(通过谷歌有关内存泄漏的大量信息)。这就是我使用webbrowser和手动格式化的URL来传递参数的情况。