您可以使用Report Viewer控件设置Internal参数吗?

时间:2015-08-31 12:52:11

标签: asp.net reporting-services webforms ssrs-2008-r2

是否可以使用Report Viewer控件设置内部参数值?

rv.ServerReport.SetParameters(new ReportParameter[] { new ReportParameter("Username", User.Identity.Name) });
  

{"报告参数'用户名'是只读的,无法修改。   (rsReadOnlyReportParameter)"}

我听说你只能set an internal parameter using the Report Viewer ......但似乎内部参数就是......内部。需要明确的是,服务器端的内部参数是未在参数定义中检查HidePrompt的参数。如果选中Hide(隐藏参数),则仍可以通过查询字符串或订阅传递参数。

2 个答案:

答案 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"它允许我编辑参数。为什么?没有线索。但现在正在运作