设置已发布报表的参数属性

参数化报表是接受输入值用于报表处理的报表。参数是创建报表时在报表设计器中定义的。有关定义参数的详细信息,请参阅参数(Report Builder 3.0 和 SSRS)

在发布报表之后,可以使用报表管理器修改参数属性以执行以下操作:

  • 使用对用户不可见的预设参数值运行报表。

  • 使用默认参数值或用户选择的有效值运行报表。

  • 在未指定任何参数值的情况下运行报表。您可以指定一个 Null 值返回不加筛选的结果集。

  • 运行个性化报表,基于用户提供的值获取用户特定信息(如,使用个人标识号获取帐户余额或工资单)。

如果通过报表设计器重新发布报表定义,则在报表管理器中为已发布报表设置的参数属性通常会被保留。如果报表定义重新发布为同一报表,并且参数名和数据类型不变,则属性设置将保留不变。如果添加或删除了报表定义中的参数,或是更改了现有参数的数据类型或名称,则您最好更改已发布报表中的参数属性。

并非在所有情况下都可以修改所有参数。如果报表参数从查询中获取默认值,则无法在报表管理器中修改该值。指定为“基于查询”的默认参数值在报表定义中定义,且不能在报表管理器中修改。基于查询的参数值不是常量值。运行时使用的值将在运行查询时确定,如果是基于表达式的参数,则在对表达式求值时确定。

报表执行选项可以影响参数的处理方式。作为快照运行的报表不能使用来自查询的参数,除非该查询包含这些参数的默认值。有关查询参数的详细信息,请参阅如何使查询参数与报表参数关联(Report Builder 3.0 和 SSRS)

参数化报表的安全注意事项

在分发包含保密信息或敏感信息的参数化报表时要谨慎。用户可能会很容易地将报表参数替换为其他值,从而导致您不希望发生的信息泄露。

另一种将参数用于雇员或个人数据的安全方法是:基于包含 Users 集合中的 UserID 字段的表达式选择数据。Users 集合提供了获取报表运行用户的标识的方法,并使用该标识检索用户特定的数据。有关详细信息,请参阅使用内置的全局和用户引用(Report Builder 3.0 和 SSRS)

安全说明安全说明

在任何包括 String 类型参数的报表中,请务必使用可用值列表(也称为有效值列表),并确保任何运行该报表的用户仅具有查看该报表中数据所必需的权限。定义 String 类型的参数时,系统将向用户显示一个可以使用任何值的文本框。可用值列表限制可以输入的值。如果报表参数与查询参数关联,但您没有使用可用值列表,则报表用户可能会在文本框中键入 SQL 语法,从而导致报表和服务器容易受到 SQL 注入攻击。如果用户有足够的权限执行新的 SQL 语句,则可能在服务器上产生意外结果。

如果报表参数与查询参数无关联,并且参数值包含在报表中,则报表用户可能会在参数值中键入表达式语法或 URL,并将报表呈现为 Excel 或 HTML 格式。如果其他用户查看报表并单击呈现的参数内容,则用户可能会无意中执行恶意脚本或链接。

若要降低无意中运行恶意脚本的风险,请仅从可信来源打开呈现的报表。有关保护报表的详细信息,请参阅保护报表和资源

设置参数属性

在已发布报表上可以修改哪些参数属性是由在原始报表定义中指定的参数确定的。您始终可以更改显示文本以及用于确定参数对用户是否可见的 Hide 属性。不过,如果默认值来自查询,就不一定总能更改该值了。在这种情况下,参数旁会显示文本字符串“QueryBased”。

若要修改参数属性,请打开报表的“参数”属性页。可以修改以下属性:

  • Has Default 属性确定是否可在用户未输入的情况下处理报表。如果参数没有指定的默认值,则用户必须提供默认值才能处理报表。

  • Default Value 属性可以是常数或 Null(如果参数接受 Null 值),但不能设置为表达式。

  • Hide 属性确定显示和输入字段对用户是否可见。选中此复选框将隐藏参数。

  • Prompt User 属性确定用户是否可以键入或选择参数的其他有效值。当禁用 Hide 时,将启用此属性。

  • Display Text 属性指定显示在参数旁边的文本。此文本可以是标签,也可以是提供用法说明的较长文本字符串。选择 Prompt User 后,将启用此属性。

您不能对已发布报表中的参数执行删除、重命名、重新排序或更改数据类型等操作。此外,您不能更改参数名称。若要更改这些属性,必须修改报表定义。

隐藏参数

您可以隐藏报表中使用的参数字段和标签。隐藏所有参数后,按需运行报表的参数区域将隐藏。如果隐藏了某个参数,则必须在报表定义中或“参数属性”页上提供默认值。取决于报表,您可以指定 Null 值(如果允许 Null 值)。

隐藏参数并不会在所有情况下使该参数不可见。您仍然可以在订阅中和通过 URL 设置在报表工具栏上隐藏的参数。若要在除报表定义以外的所有地方隐藏一个参数,请在“报表参数”对话框中选择**“内部”**。

若要隐藏参数:

  1. 选择 Has Default

  2. 指定 Default Value

  3. 选择 Hide

验证参数值

若要验证指定的值是否有效,请运行报表。与参数处理相关的错误显示在报表管理器的“错误”页中。若要进一步调查问题,您可以查看日志文件。有关详细信息,请参阅Reporting Services 日志文件

在订阅中设置参数

除了使用“参数”属性页,您还可以在创建订阅时设置参数值。每个订阅报表的用户都可以指定存储在订阅中或用于订阅的参数值。有关详细信息,请参阅在订阅中设置参数