标识筛选器 API

通过“标识筛选器 API”,可以创建一个视觉对象,该视觉对象可以使用语义查询筛选分类数据。
它按数据点而非数学表达式筛选数据。

API 跟踪用户选择以及要显示的数据点。 数据点保存在数组中,并由其在数组中的位置引用。

此 API 在以下方案中非常有用:

  • 对于使用包含键组的语义模型的自定义视觉对象
  • 将使用较旧 API(早于 2.2)的视觉对象迁移到新 API
  • 允许使用标识索引数组进行选择

注意

“标识筛选器 API”从 API 版本 5.1 开始提供。若要了解正在使用的版本,请查看 pbiviz.json 文件中的 apiVersion

标识筛选器模型基于 IIdentityFilter 接口。

    private filter: IIdentityFilter = {
        $schema: “”,
        filterType: FilterType.Identity,
        operator: "In",
        target: []
    }

例如,如果视觉对象收到以下数据视图更新:

Screenshot of sample array.

数组的类型为 number[],它包含用户选择的项的标识字段。

identityIndex 对应于语义模型的值数组中的值的索引(请参见以下示例)。

Screenshot showing array values of names.

在上面的示例中:{identityIndex: 0} = "Aaliyah" {identityIndex: 1} = "Aaliyah" {identityIndex: 02 = "Aaliyah" 等

如何使用标识筛选器 API

若要使用标识筛选器 API,powerbi 模型版本需要为 1.9.1 或更高版本。

  • 将以下属性添加为 visual.ts 类的成员:

        private filter: IIdentityFilter = {
            $schema: “”,
            filterType: FilterType.Identity,
            operator: "In",
            target: []
        }
    
  • 若要处理 Power BI 更新,请从“VisualUpdateOptions”中的“jsonFilters”读取目标数组,并将其转换为相应的值。 这些值就是选定的值。 在前面的示例中,[0,10] 的目标数组对应于 AliyahAbigail 的值。

  • 要处理上一个示例中的用户选择,请单击第一个 Abigail 将值 8 添加到筛选器目标数组中,并使用以下命令发送:

this.visualHost.applyJsonFilter(this.filter, "general", "filter", powerbi.FilterAction.merge);

使用旧 API 迁移视觉对象

从 API 5.1.0 开始,若要支持使用低于 2.2 版本创建的视觉对象的标识筛选器,请将以下行添加到 capabilities.json 文件中:

    "migration": {
        "filter": {
            "shouldUseIdentityFilter": true
        }
    }

这些行将选择转换为标识筛选器。

注意

此步骤仅适用于使用较旧 API 创建的现有视觉对象。 较新的视觉对象不需要添加此内容。

后续步骤

使用 Power BI 视觉对象选择为视觉添加交互性

更多问题? 尝试参与 Power BI 社区。