标识筛选器 API

  • 版本 :2023.1(当前版本)

标识筛选器 API

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

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

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

  • 对于使用包含键组的数据集的自定义视觉对象

  • 将使用较旧 API(早于 2.2)的视觉对象迁移到新 API

  • 允许使用标识索引数组进行选择

备注

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

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

TypeScript复制

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

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

示例数组的屏幕截图。

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

identityIndex 对应于数据集的值数组中的值的索引(见下文)。

显示名称的数组值的屏幕截图。

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

如何使用标识筛选器 API

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

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

    TypeScript复制

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

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

TypeScript复制

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

示例 JSON 筛选器

一些示例 JSON 筛选器代码如下所示

示例:标识筛选器 API

以下示例显示视觉对象如何调用筛选器操作。

使用旧 API 迁移视觉对象

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

JSON复制

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

这会将所选内容转换为标识筛选器。

备注

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