Power BI 视觉对象的排序选项

本文介绍了可用于指定 Power BI 中视觉对象排序方式的不同选项。

默认情况下,除非 capabilities.json 文件中另有说明,否则视觉对象不支持修改其排序顺序

排序功能至少需要以下参数之一。

默认排序

default 选项是最简单的形式。 它允许用户根据任意一个字段和方向(升序或降序)进行排序。 用户从“更多选项”菜单中选择方向和字段。

Screenshot of table of US states with default sorting options the context menu.

若要启用默认排序,请将以下代码添加到 capabilities.json 文件:

    "sorting": {
        "default": {   }
    }

隐式排序

隐式排序允许你使用参数 clauses 预先定义排序数组,该参数描述对每个数据角色的排序。 用户无法更改排序顺序,因此 Power BI 不会在视觉对象的菜单中显示排序选项。 但是,Power BI 会根据指定的设置对数据进行排序。

若要启用隐式排序,将隐式 clauses 添加到 capabilities.json 文件 clauses 参数可以包含多个对象,每个对象都有两个参数:

  • role:确定用于排序的 DataMapping
  • direction:确定排序方向(1 为升序,2 为降序)
    "sorting": {
        "implicit": {
            "clauses": [
                {
                    "role": "category",
                    "direction": 1
                },
                {
                    "role": "measure",
                    "direction": 2
                }
            ]
        }
    }

自定义排序

自定义排序使开发人员在排序时更具灵活性。 开发人员可以:

  • 允许用户一次按多个字段排序。
  • 设置数据的默认排序顺序
  • 允许在运行时执行自定义排序操作

启用自定义排序

若要启用自定义排序,请将以下代码添加到 capabilities.json 文件:

    "sorting": {
        "custom": {} 
    }

示例:自定义排序 API

let queryName1 = this.dataView.matrix.columns.levels[0].sources[0].queryName;
let queryName2 = this.dataView.matrix.columns.levels[1].sources[0].queryName;
let args: CustomVisualApplyCustomSortArgs = {
    sortDescriptors: [
        {
            queryName: queryName1,
            sortDirection: powerbi.SortDirection.Ascending
        },
        {
            queryName: queryName2,
            sortDirection: powerbi.SortDirection.Descending
        },
    ]
};
this.host.applyCustomSort(args);