对报表中的数据进行排序

若要控制报表中数据的排序顺序,您可以在数据集查询中对数据进行排序,或者为数据区域或组定义排序表达式。您也可以向表和矩阵添加交互式排序按钮,以便用户能够更改报表数据的排序顺序。

所有三种排序类型均可在同一报表中组合使用。用户启动的交互式排序在排序表达式之后应用,而排序表达式则在查询排序之后应用。

报表项的大多数聚合计算均与数据的排序顺序无关,但下列计算除外:FirstLastPrevious。有关详细信息,请参阅在表达式中使用内置报表函数和聚合函数 (Reporting Services)

在数据集查询中对数据进行排序

在数据集查询中包括排序顺序可在为报表检索数据之前对数据进行预排序。通过在查询中对数据进行排序,排序工作将由数据源而非报表处理器完成。

对于 MicrosoftSQL Server 数据源类型,您可以向数据集查询添加 ORDER BY 子句。例如,以下 Transact-SQL 查询对表 SalesOrders 中的 Sales 和 Region 列按 Sales 进行降序排序:SELECT Sales, Region FROM SalesOrders ORDER BY Sales DESC。有关详细信息,请参阅用 ORDER BY 对行进行排序

注意注意

并非所有数据源都支持在查询中指定排序顺序的功能。

使用排序表达式对数据进行排序

若要在从数据源中检索报表数据之后对其进行排序,您可以对 Tablix 数据区域或组(包括详细信息组)设置排序表达式。以下列表说明了对不同项设置排序表达式的效果:

  • Tablix 数据区域。 对表、矩阵或列表数据区域设置排序表达式,可在运行时应用数据集筛选器和数据区域筛选器之后控制数据区域中数据的排序顺序。

  • Tablix 数据区域组。 为包括详细信息组在内的每个组设置排序表达式,可控制组实例的排序顺序。例如,对于详细信息组,可控制详细信息行的顺序。对于子组,可控制父组内子组的组实例的顺序。默认情况下,创建组时,排序表达式将设置为组表达式和升序。

    如果您只拥有一个详细信息组,则可以在查询中对数据区域或详细信息组定义排序表达式以获得相同效果。

  • 图表数据区域。 为类别和序列组设置排序表达式,可控制数据点的排序顺序。默认情况下,数据点的顺序也是图表图例中颜色的顺序。有关详细信息,请参阅设置图表上序列颜色的格式

  • 仪表数据区域。 您通常不需要对仪表数据区域的数据进行排序,因为仪表显示相对于某一范围的单一值。如果不需要在仪表中对数据进行排序,您首先必须定义一个组,然后为该组设置一个排序表达式。

交互式排序

若要使用户能够更改报表数据的排序顺序,请将交互式排序按钮添加到列。用户可以切换表以基于列值在升序和降序之间排序。允许用户交互的呈现格式(如 HTML)支持交互式排序。

可以将交互式排序按钮添加到文本框。默认情况下,每个 Tablix 数据区域单元均包含一个文本框。在文本框属性中,可以指定要进行排序的表格或矩阵数据区域的部分(父组值、子组值或详细信息行)、排序依据以及是否对具有对等关系的其他报表项应用排序表达式。例如,如果提供同一数据集的视图的表和图表均包含在矩形内,则它们为对等数据区域。用户在表中切换排序顺序时,也将切换图表的排序顺序。有关详细信息,请参阅向数据区域添加交互式排序

有关逐步说明,请参阅如何向表或矩阵添加交互式排序 (Reporting Services)