在分页报表的表或矩阵中添加交互式排序(报表生成器)

适用范围: Microsoft 报表生成器 (SSRS) Power BI Report Builder SQL Server Data Tools 中的报表设计器

添加交互式排序按钮可让用户更改分页报表中表和矩阵的行和列的排序顺序。 只有支持用户交互的呈现格式(例如 HTML)才支持此功能。

创建交互式排序按钮时,必须指定要排序的对象、排序依据以及要应用排序的作用域。 例如,可以按客户系列名称对详细信息行进行排序,按销售额对类别组内的子类别组值进行排序,或者按总计对组合的类别和子类别组值进行排序。

查看报表时,支持交互式排序的列带有箭头图标,图标可以更改来指示排序顺序。 首次选择交互式排序按钮时,项目按升序排序。 再次选择该标题可在升序和降序之间切换排序顺序。

注意

在 SQL Server Data Tools 中,你可以在 Microsoft 报表生成器、Power BI 报表生成器和报表设计器中创建和修改分页报表定义 (.rdl) 文件。

本文内容

对不具有组的表的详细信息行进行排序

对表或矩阵的顶级父行组进行排序

对组的子组或详细信息行进行排序

基于复杂组表达式对行进行排序

同步多个数据区域的排序顺序

对没有组的表的详细信息行进行排序

向列标题添加交互式排序按钮,以便用户能够选择列标题并按此列中显示的值对表中的详细信息行进行排序。

向列标题添加交互式排序按钮,并按值对表进行排序

  1. 在报表设计视图中,在不具有组的表中,右键单击要向其添加交互式排序按钮的列标题中的文本框,然后选择“文本框属性”

  2. 选择“交互式排序”

  3. 选择 “对此文本框启用交互式排序”

  4. 在“选择排序对象”中,选择“详细信息行”

  5. “排序依据” 中,指定排序表达式。 从列表中,选择与要为其定义排序操作的列相对应的字段。 例如,对于名为 Title 的列标题 选择 [Title]。 需要指定排序表达式。

  6. 选择“确定”。

  7. 对要向其添加交互式排序按钮的每一列重复步骤 1-6。

要验证排序操作,请选择“运行”以预览报表,然后选择交互式排序按钮

返回页首

对表或矩阵的顶级父行组进行排序

向列标题添加交互式排序按钮,以便用户能够选择列标题。 然后,按该列中显示的值对表或矩阵中的父组行进行排序。 子组的顺序保持不变。

向列标题添加交互式排序按钮,并对组进行排序

  1. 在报表设计视图中的表或矩阵中,右键单击要向其添加交互式排序按钮的组的列标题中的文本框,然后选择“文本框属性”

  2. 选择“交互式排序”

  3. 选择 “对此文本框启用交互式排序”

  4. 在“选择排序对象”中,选择“组”

  5. 从列表中,选择要排序的组的名称。 对于基于简单组表达式的组,将用组表达式填充 “排序依据” 值。

    注意

    对于复杂组表达式,请将“排序依据”表达式手动设置为与组表达式相同的值。

  6. 选择“确定”

要验证排序操作,请选择“运行”以预览报表,然后选择交互式排序按钮

返回页首

对组的子组或详细信息行进行排序

将交互式排序按钮添加到组头行,可使用户能够对父组中的子组的值进行排序,或者对最内部的子组的详细信息行进行排序。

向组行标题中的文本框添加交互式排序按钮,并对子组或详细信息行进行排序

  1. 在报表设计视图中,右键单击要向其添加交互式排序按钮的组标头行中的文本框,然后选择“文本框属性”

  2. 选择“交互式排序”

  3. 选择 “对此文本框启用交互式排序”

  4. 在“选择排序对象”中,选择下列某个选项:

    • 详细信息:选择“详细信息”以对详细信息行进行排序。 从列表中,选择要按其排序的字段。 对于此选项,必须指定要按其排序的值。

    • 组:选择“组”以对子组值进行排序。 对于此选项,将从组表达式自动填充 “排序依据” 表达式。

  5. 选择“确定”

要验证排序操作,请选择“运行”以预览报表,然后选择交互式排序按钮

返回页首

基于复杂组表达式对行进行排序

向列标题添加交互式排序按钮,以便用户能够选择列标题并对组合的父组和子组进行排序。 要实现此结果,必须将组表达式更改为这两个组的复合。 例如,假定用一个矩阵显示某个商店中按颜色和大小分组的商品的库存总计。 要基于颜色和大小的组合对行进行排序,则可以基于颜色和大小的组合来定义组。 可通过这种方式进行排序,而不是让颜色和大小各有单独的组。 有关定义组表达式的详细信息,请参阅“组表达式示例(报表生成器)”。

在下面的过程中,术语指定 Tablix 数据区域。 有关详细信息,请参阅“Tablix 数据区域(报表生成器)”。

通常,基于多个组对行进行排序时,希望看到排序行的总计,而不考虑列组。 在此过程中,不使用任何列组。 开始将添加矩阵并删除默认列组。 另外,开始也可以添加表并删除详细信息组。

向列标题添加交互式排序按钮,并对多个组进行排序

  1. 在报表设计视图中,添加一个矩阵。

  2. 将数值字段拖到数据单元,并将数据集链接到该矩阵。

    接下来,使用组表达式和组标头创建一个组,其中,表达式指定多个字段,组标头用于显示组值。

  3. 确认在设计图面上已选择该矩阵。 “分组”窗格将显示默认的行和列组。

  4. 在“行组”窗格中,右键单击默认行组,然后选择“编辑组”。 此时将打开“组属性”对话框。

  5. “名称” 中,用一个名称替换默认名称,该名称应指定要按其分组的多个组。

  6. 在“组表达式”的“分组方式”中,选择“表达式”(fx) 按钮,以打开“表达式”对话框。

  7. 输入用于指定要按其分组的所有字段的表达式。 例如,以下组表达式将名为 ColorSize 的字段组合在一起:=Fields!Color.Value & Fields!Size.Value

  8. 选择“确定”

    此时已定义组。 接下来,将要显示的字段拖到矩阵的 Tablix 正文区。 将第 7 步中选择的按其分组的字段添加到 Tablix 正文区,每个字段位于其各自的列中。

    此情况下,不需要 Tablix 行组区域中的第一个列。 若要删除此列,请右键单击列标题,然后选择“删除列”。 所显示的对话框将询问是否删除关联的组。 请选择“否”。 将删除行组区域,而只保留 Tablix 正文区。

    接下来,删除默认列组。

  9. 在“列组”窗格中,右键单击默认列组,然后选择“删除组”。 将出现一个对话框,询问是要删除组以及相关的行和列,还是仅删除组。 选择“仅删除组”。 将删除列组,并删除列组区域。 只保留 Tablix 正文区。

    接下来,向跨越矩阵的文本框添加交互式排序按钮。

  10. 选择第一行中的文本框,然后选择“文本框属性”。

  11. 选择“交互式排序”

  12. 选择 “对此文本框启用交互式排序”

  13. 在“选择排序对象”中,选择“组”

  14. 从列表中,选择在步骤 5 中创建的组的名称。 组表达式将自动复制到 “排序依据” 文本框。

  15. 选择“确定”

    已将排序按钮添加到文本框。

  16. (可选)还可以在显示组值的列中取消重复值。 在报表设计图面上,选择显示要隐藏重复值的值的文本框。 在“属性”窗格中,滚动到 HideDuplicates,并从列表中,选择链接到此矩阵的数据集的名称。

要验证排序操作,请选择“运行”以预览报表,然后选择交互式排序按钮。 矩阵将按组表达式的组合值进行排序,但每个值分别显示在其各自的列中。

返回页首

同步多个数据区域的排序顺序

添加交互式排序按钮,以便用户能够选择一个排序按钮并对多个数据区域进行排序。 创建交互式排序按钮时,可以指定是否基于相同报表数据集同步多个数据区域的排序。 例如,报表可能包括以图形方式显示数据的矩阵和图表。 用户更改矩阵中行的排序顺序时,图表将自动显示相同的排序顺序。

若要同步排序顺序,必须为要排序的数据区域或组使用相同的排序表达式,并将排序的作用预定义为两个数据区域的共同祖先。 共同祖先可以是两个数据区域都链接到的数据集,也可以是两个数据区域都显示在其中的包含数据区域。 例如,假定一个报表同时具有显示相同数据集的数据和包含在列表中的矩阵和图表。 若要同步排序操作,必须对该矩阵的列指定交互式排序,并将作用域设置为该列表。 用户对矩阵进行排序时,也将对图表进行排序。

将排序顺序与矩阵数据区域上交互式排序按钮的图表同步

  1. 在报表设计视图中,向报表中添加一个矩阵。

  2. 将数值数据集字段添加到矩阵数据单元,例如,表示数量或销售额的字段。

  3. 定义行组。 默认情况下,组的排序顺序设置为与组表达式相同的表达式。

  4. 将图表(例如饼图)添加到报表。

  5. 将步骤 2 中选择的字段拖到 “图表数据” 窗格的 “值” 区域中。

  6. 将选择的要按其分组的字段拖到 “类别组” 区域中。

    矩阵行组和图表类别组的组表达式必须相同。

  7. 右键单击类别组,然后选择“类别组属性”

  8. 选择“排序”。

  9. 选择添加。 将向排序选项网格添加一个新的排序行。

  10. 在“排序依据”中,从列表选择在步骤 6 中选择的要按其分组的相同字段。

  11. 选择“确定”

  12. 在矩阵中,右键单击要向其添加交互式排序按钮的列标题中的文本框,然后选择“文本框属性”

  13. 选择“交互式排序”

  14. 选择 “对此文本框启用交互式排序”

  15. 在“选择排序对象”中,选择“组”

  16. 从“组”下的列表中,选择要排序的组的名称。 将会自动为 “排序依据” 值设置此组的组表达式。

  17. 选择 “同样将此排序应用于以下位置中的其他组和数据区域” 。 在“名称”文本框中,输入数据集的名称。 例如,输入 SalesData

  18. 选择“确定”

要验证排序操作,请选择“运行”以预览报表,然后选择交互式排序按钮。 矩阵将按组表达式的组合值进行排序,但每个值分别显示在其各自的列中。

返回页首

对数据进行筛选、分组和排序 (Report Builder)
交互式排序(报表生成器)
对数据区域中的数据排序(报表生成器)
了解 Tablix 数据区域的灵活性(报表生成器)