参考这篇文章: http://msdn.microsoft.com/en-us/library/ms252072(VS.80).aspx
我可以从我的网络应用程序访问我的SSRS报告,但问题是它不接受URL中的参数。
这是它接受的格式
报告服务器网址: http://ABCD.com/reportserver 报告路径: /公司工作/销售报告/ ABC
任何人都可以帮助我吗? 我想通过报表查看器传递SSRS URL中的参数。
答案 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来传递参数的情况。