向报表中添加参数

在 Reporting Services 中,参数用于指定将在报表中使用的数据、将相关报表连接在一起以及更改报表显示。若要设计能够有效使用参数的报表,您必须了解参数和数据集查询如何配合工作、参数和表达式如何配合工作、如何在已发布报表的报表服务器上管理参数以及报表应该回答的问题。您选择要对其进行参数化的对象可能会影响报表设计和布局。

可以通过查询设计器或“数据集属性”对话框,将查询参数添加到数据集查询。在创建带参数的查询后,Reporting Services 自动采用相同名称将查询参数链接到报表参数。通过“报表数据”窗格添加和修改新的报表参数。

在 Reporting Services 中使用参数

参数的最常见用法是更改由数据集查询检索的报表数据。在这种情况下,用户运行该报表时系统提示输入一个或多个值,该数据集查询仅检索请求的数据。数据集查询包括查询参数,并且 Reporting Services 自动创建直接链接到该查询参数的相应报表参数。您可以使用报表设计工具更改报表参数属性,以包括一个有效的值列表和显示运行时的用户提示。

您还可以创建级联参数,这些参数从数据源中检索分层数据。例如,第一个参数可以按产品类别进行筛选,第二个参数可以按产品进行筛选。级联参数用于组织和限制用户可用的值的数目。

并非所有数据源都支持查询参数。不能在数据源中筛选数据时,可以使用报表参数供用户在检索报表的数据之后筛选数据。当所有的查询参数都有相应的报表参数时,您可以使用报表设计器工具单独定义报表参数。报表参数还可用于在检索数据后更改报表的外观或组织。

参数用于将报表连接到子报表和钻取报表。这些报表参数可能是隐藏的,可以使用主报表中的值为连接报表选择正确的数据,否则这些参数可能会在运行时被用户看到。

在创建报表参数后,可以修改默认值和其他参数属性,如可见性。例如,报表参数可以使用类似于 UserID 的内置变量,所以您可能希望创建一个带有隐藏参数的报表,该报表选择特定于运行该报表的用户的数据。参数可以包含单个值或多个值、使用静态的或基于查询的有效值列表,以及接受 Null 值或空白值。使用多值参数,用户可以在运行时选择多个值。

发布报表后,可从报表定义独立地管理参数。报表服务器管理员可以修改已发布报表中的许多参数属性,这取决于您在设计时配置报表中参数的方法。还可以创建链接到为多个用户定制报表的同一个报表定义的参数集。有关详细信息,请参阅设置已发布报表的参数属性

还可以使用 URL 访问运行报表并指定参数值。有关详细信息,请参阅使用 URL 访问参数

安全说明安全说明

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

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

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

本节内容