【问题标题】:Can you set an Internal parameter using the Report Viewer control?您可以使用报表查看器控件设置内部参数吗?
【发布时间】:2015-08-31 12:52:11
【问题描述】:

是否可以使用报表查看器控件设置内部参数值?

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

{"报表参数'用户名'是只读的,不能修改。 (rsReadOnlyReportParameter)"}

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

【问题讨论】:

  • 在创建链接报告时,内部参数会暴露给用户。所以在这种情况下,内部参数的行为方式与隐藏参数相同。

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


【解决方案1】:

MSDN - Creating Report Parameters and Setting Report Parameter Properties:

隐藏参数和内部参数

您可以在已发布的文件中设置控制参数可见性的选项 报告。设置隐藏和内部选项提供了不同的 可见性水平。您可以在参数上隐藏参数 已发布报告的输入区域,但在报告中为其设置值 URL 或订阅定义中。 如果您将参数设置为 内部,除在报告中外,不以任何方式暴露 定义。内部参数必须有一个默认值,它可以 如果选择了允许空值选项,则为空。


更新,经过一些测试:

这实际上是一个令人困惑的定义。该参数在报表查看器中公开,并且可以在报表属性和链接报表的属性中轻松覆盖该值。

您仍然无法从 URL 或从另一个报告的向下钻取操作设置内部参数的值。创建操作时它是可见的,但是当您尝试向下钻取时会收到错误:The report parameter 'name' is read-only and cannot be modified. 我不认为您也可以从代码中修改值,但我还没有测试过。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我通过 URL 向 SSRS 发送了一些参数。如果包含某些字符,我需要验证/编辑参数。类似的东西:

    =IIF(Parameters!Par1.Value Like "*]","[Table1].[Field1].&[" + Parameters!Par1.Value + "]]","[Table1].[Field1].&[" + Parameters!Par1.Value + "]")
    

    在参数定义中。在“选择参数可见性”中,我标记了选项:“内部”。我更改为“隐藏”,它允许我编辑参数。为什么?没有线索。但现在正在工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 2013-02-13
      • 2011-09-09
      相关资源
      最近更新 更多