Power BI 视觉对象的排序选项

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

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

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

默认排序

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

列有美国各州的表的屏幕截图,上下文菜单提供了默认排序选项。

若要启用默认排序,请将以下代码添加到 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);