在报表是对数据进行排序

更新日期: 2006 年 4 月 14 日

可以按字段和表达式对各个数据区域(表、矩阵和列表)中的数据进行排序。在发布报表之前,将在报表中添加排序功能。可以配置报表使其支持最终用户排序,从而允许用户在查看报表时交互式更改排序顺序。此外,也可以使用参数对数据进行排序,或者通过在查询中指定 ORDER BY 子句在数据处理期间对数据进行排序。

交互式排序

可以设置列标题的属性,以便在已发布的报表中提供交互排序功能。排序功能通过文本框属性进行指定。可以为同一个表、列表或矩阵中的多个列指定排序功能,也可以为嵌套或分组的数据指定排序功能。

指定交互式排序

  1. 右键单击列标题(例如表格表头中的列),再选择**“属性”以打开“文本框属性”**对话框。
  2. 单击**“交互式排序”**选项卡。
  3. 选择**“将交互式排序操作添加到此文本框”**。
  4. 若要指定排序表达式,请选择与为其定义排序操作的列对应的字段(例如,对于名为“Title”的列标题,请选择 =Fields!Title.Value)。必须指定排序表达式。
  5. 为排序选择数据区域和作用域。此步骤确定排序操作是应用于报表中的所有数据区域,还是仅限于包含文本框的数据区域,或者作用于所选择的某些其他数据区域集。
  6. 单击**“确定”**。

若要验证排序操作,可以预览报表。支持交互式排序的列带有箭头图标,以指示排序顺序。若要在升序和降序之间切换排序顺序,请单击列标题。

参数化排序

可以使用报表参数,根据用户输入依据参数对报表中的数据进行排序,以更改数据区域的排序属性。还可以使用其他方法为报表提供参数。

在数据区域、数据集和分组中进行排序

可以为数据区域、数据集或分组中的排序表达式提供参数值。例如,可以在报表中更改 Product 表的排序表达式,使其按产品名称或价格对数据进行排序。

此示例中的参数称为 SortOrder 且包含以下可用值的列表:Name 和 ListPrice。这些值与字段列表中的字段相对应。该参数还包括默认值 Name,以便在默认情况下报表在运行时按照名称对产品进行排序。有关报表参数的信息,请参阅在 Reporting Services 中使用参数

ms157313.note(zh-cn,SQL.90).gif注意:
可用值列表中的值必须是字段列表中的字段名称,而不是数据库中的列。在大多数情况下,这两类名称很相似,但是它们可能不同。若要对分组进行排序,可以对聚合值指定排序顺序。对于数据集或数据区域,不支持对聚合值进行排序。

报表中 Product 表的排序表达式包括 SortOrder 参数。在排序表达式中使用以下表达式可以按照 SortOrder 报表参数的值对表中的数据进行排序:

=Fields(Parameters!SortOrder.Value).Value

使用 URL 操作对报表列进行排序

如果创建一个参数,并按照与上述示例相似的方法使用该参数,则用户将会看到一个可以从中选择参数值的列表框。当用户运行报表时,将按所选值对数据进行排序。不过,您可能不想提供列表框,而是希望提供一个向上键或向下键,使用户通过单击该键便可对数据进行排序。为此,可向包含用户要单击的文本的文本框(例如,列标题中的文本框)添加一个 URL 操作。

在 URL 操作中使用以下表达式可以提供一个链接,对表中的数据按标价进行排序。根据报表运行时在报表服务器上的位置,使用全局属性来构造 URL。如果您不知道报表在报表服务器上的位置,使用全局属性非常有用。该表达式还包括一个用于关闭工具栏的参数。该参数可以隐藏参数列表,但也会隐藏页面控件。

= Globals!ReportServerUrl & "?" & Globals!ReportFolder & "/" & Globals!ReportName & "&SortOrder=ListPrice&rc:Toolbar=false"
ms157313.note(zh-cn,SQL.90).gif注意:
只有在将报表发布到报表服务器之后,此链接才会有效。如果在报表设计器预览中使用该链接,则可能会出现意外结果。

有关使用 URL 操作的信息,请参阅将链接添加到报表中。有关构造运行报表的 URL 的信息,请参阅 URL Access

请参阅

任务

如何对表中的数据进行排序(报表设计器)
如何在矩阵中排序数据(报表设计器)
如何对列表中的数据进行排序(报表设计器)

概念

使用数据区域

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 4 月 14 日

更改的内容:
  • 已将查询更新为使用 AdventureWorks 而不是使用 AdventureWorks2000。