是否可以使用Report Viewer控件设置内部参数值?
rv.ServerReport.SetParameters(new ReportParameter[] { new ReportParameter("Username", User.Identity.Name) });
{"报告参数'用户名'是只读的,无法修改。 (rsReadOnlyReportParameter)"}
我听说你只能set an internal parameter using the Report Viewer ......但似乎内部参数就是......内部。需要明确的是,服务器端的内部参数是未在参数定义中检查Hide
和Prompt
的参数。如果选中Hide
(隐藏参数),则仍可以通过查询字符串或订阅传递参数。
答案 0 :(得分:1)
MSDN - Creating Report Parameters and Setting Report Parameter Properties:
隐藏和内部参数
您可以设置控制已发布内容的参数可见性的选项 报告。设置隐藏和内部选项提供了不同的选项 能见度。您可以在参数上隐藏参数 已发布报告的输入区域,但在报告上为其设置值 URL或订阅定义。 如果您将参数设置为 内部,除报告外,不以任何方式暴露 定义即可。内部参数必须具有默认值,即可 如果已选择“允许空值”选项,则为null。
这实际上是一个令人困惑的定义。该参数在报表查看器中公开,可以在报表属性和链接报表的属性中轻松覆盖该值。
您仍然无法从网址或其他报表的深入操作设置内部参数的值。它在您创建操作时可见,但是当您尝试向下钻取时,您会收到错误:The report parameter 'name' is read-only and cannot be modified.
我无法想象您也可以修改代码中的值,但我没有&#39 ; t测试了那个。
答案 1 :(得分:0)
我有同样的问题。我通过URL向SSRS发送了一些参数。如果包含某些字符,我需要验证/编辑参数。类似的东西:
=IIF(Parameters!Par1.Value Like "*]","[Table1].[Field1].&[" + Parameters!Par1.Value + "]]","[Table1].[Field1].&[" + Parameters!Par1.Value + "]")
在参数定义中。在"选择参数可见性"我标记了选项:"内部"。我改为" Hidden"它允许我编辑参数。为什么?没有线索。但现在正在运作