创建报表参数和设置报表参数属性
新建日期: 2006 年 7 月 17 日
报表参数是为报表全局定义的。如果报表查询包括参数,则将自动创建报表参数(也可以手动创建)。创建报表参数之后,必须设置标识该参数的属性,以及控制该参数在报表中的使用方式的属性。
若要在报表发布之前使用参数,请使用报表设计器中的“报表参数”对话框。有关详细信息,请参阅如何添加、编辑或删除报表参数(报表设计器)。
报表发布之后,可以在报表管理器或 SQL Server Management Studio 中修改许多报表参数属性。有关修改参数属性和安全注意事项的详细信息,请参阅设置已发布报表的参数属性。
报表参数
虽然可为查询参数自动创建报表参数,但在删除查询参数时从不自动删除报表参数。
若要打开“报表属性”对话框,请切换到报表设计器中的“数据”或“布局”视图,然后在**“报表”菜单中选择“报表属性”**。您将在左窗格中看到报表参数列表。选择要修改的参数。
名称和数据类型
在报表中必须使用参数名称,而且参数名称必须是唯一的。默认情况下,参数数据类型设置为 String。您可以从下拉列表中选择其他数据类型。如果报表参数基于查询参数,则请确保报表参数的数据类型与查询参数的数据类型是匹配的。Reporting Services 不检测查询参数的数据类型,因此您必须自己调整数据类型。
名称必须符合公共语言规范的字符和大小写标准。有关详细信息,请在以下网站上搜索“公共语言规范”:https://msdn.microsoft.com。
提示
在已发布的报表中,参数通常显示为文本框,位于报表顶部的参数输入区域中。提示字符串定义的标签用于标识输入区域中的参数。该提示可以是参数的名称或是为用户提供的指导信息,例如“年份”或“选择年份”。如果将提示保留为空白并指定了默认参数值,将会使用这个默认值,并且当用户运行报表时不显示参数的输入框。如果将提示保留为空白但没有指定默认参数值,报表将无法运行。如果不想提示用户指定参数值,请将参数标记为“隐藏”或“内部”。
隐藏参数和内部参数
您可以设置选项,用于控制已发布报表中参数的可见性。设置**“隐藏”和“内部”**选项可以提供不同级别的可见性。您可以隐藏已发布报表的参数输入区域中的参数,但仍可以在报表 URL 上或订阅定义中设置该参数的值。如果将参数设置为仅内部使用,则除了在报表定义中之外,将不会以任何方式公开该参数。
单值参数和多值参数
您可以定义多值参数,方法是选择**“报表参数”对话框中的“多值”选项。如果未选中此复选框,则参数为单值参数。指定“多值”**选项后,将为已发布报表的参数下拉列表中的可用值添加复选框。用户可以选中所需的值,例如,在 Sales Reason Comparisons 示例报表中,用户可以选择多个产品以查看这些产品的组合销售数据。
在指定可用值时,您可以提供静态字符串列表或使用查询从数据源检索可用值。多值参数必须至少包括一个值。不允许空值。只有当存在多个值时,才会自动创建并显示“全选”选项。
注意: |
---|
在 SQL Server 2005 中如果您使用的是 Analysis Services 数据源,则不要选择“全选”选项。“全选”选项会导致在处理 MDX 查询时性能下降。如果要选择所有值,请选择“全部”成员列表。 |
允许空白
创建可用值列表时,如果想要将 <空白> 作为有效值,必须将其包含在有效值列表中。
允许空值
“允许空值”是单值参数的一个选项。不能为多值参数选择该值。如果选中**“允许空值”**,则允许参数有空值。默认情况下,许多查询语言不在结果集中返回 Null 值。
可用值
在定义报表参数时,必须定义报表可使用的值。这些值被称为可用值或有效值。可用值列表中包含一组值/标签对。在运行报表时,用户会看到标签。当用户选中某个标签后,其对应值便用作参数值。可将可用值预定义为静态列表或表达式,也可以从数据集检索它们:
- 无查询列表是一组值/标签对的静态列表。整个列表均包含在报表参数定义中。每个值和标签既可以是静态值,也可以通过表达式来生成。
- 在报表运行时,查询列表将使报表服务器从数据集中检索一组值和标签。指定了查询可用值列表后,可以选择数据集、值所用的字段以及标签所用的字段。
在指定查询可用值列表时,建议您为参数创建一个专用的简单数据集,而不要使用报表中各数据区域也在使用的、较为复杂的数据集。如果报表中的有效值列表和数据区域使用相同的数据集,则可能使有效值列表出现意外结果。
默认值
您可以定义参数的默认值。如果报表中的所有参数都有默认值,则在用户打开报表或在报表设计器中预览报表时,报表将立即进行处理。如果报表中至少有一个参数没有默认值,就只能在用户输入所有参数值并运行该报表后才显示数据。
您可以将无查询值或查询值用作默认值。无查询默认值既可以是静态值,也可以是表达式。查询默认值是指向数据集中的字段的表达式。如果查询返回多个行,则将使用返回数据集的第一行的值。
您也可以不指定默认值。如果不指定默认值,则必须指定提示。
注意: |
---|
如果使用多值参数并且查询返回多行,则所有行都用于默认值。 |
请参阅
其他资源
教程:将参数添加至基本表格报表
教程:使用参数的高级功能
在 Reporting Services 中使用参数
报表参数(报表设计器)