繁体   English   中英

链接到SSRS报告并在URL中设置参数

[英]Linking to an SSRS report and setting parameters in the URL

我有以下代码块:

ErrorLogging.WriteLog(string.Format("Username = {0}, userkey = {1}, userID = {2}", CurrentUser.Username, CurrentUser.UserKey, CurrentUser.Username + CurrentUser.UserKey.ToString()));
ssrsRV.ProcessingMode = ProcessingMode.Remote;
ssrsRV.ServerReport.ReportServerUrl = new Uri(SystemConfig.SSRSServerURI);
ssrsRV.ServerReport.ReportPath = report.REPORT ?? string.Empty;
ssrsRV.ServerReport.SetParameters(new ReportParameter("UserID", CurrentUser.Username + CurrentUser.UserKey.ToString()));

第一行向我证明了我在那些变量中有有效的信息。 userID最终类似于“ jsmith162e4aa1-d8d3-427b-bd3d-71b7f0307856”

ssrsRV是Microsoft.Reporting.WebForms.ReportViewer对象。

当我尝试运行此代码时,出现以下错误消息:

项目“ /MyFolder/MyExampleReport.rdl~!@~!@”的路径无效。 完整路径的长度必须少于260个字符; 其他限制条件也适用。 如果报表服务器处于纯模式,则路径必须以斜杠开头。 (rsInvalidItemPath)

SetParameters方法引发了异常,所以我确定是问题所在,但是我没有测试过根本不传递参数。

任何线索我在做什么错? 接下来我应该尝试什么?

我很笨

代码是完美的,应用程序在数据库中的报表路径中添加了“〜!@〜!@”,而没有向用户显示。 如果我编写一条SQL语句以从数据库的报告路径中删除这些字符,则它可以正常工作。

谢谢,

您需要首先声明report参数:

ReportParameter[] RptParameters = new ReportParameter[1];

然后分配参数:

RptParameters[0] = new ReportParameter("UserID", CurrentUser.Username + CurrentUser.UserKey.ToString());

然后设置参数:

ssrsRV.ServerReport.SetParameters(RptParameters);

看看情况如何。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM