标识筛选器 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: []
}
例如,如果视觉对象收到以下数据视图更新:
数组的类型为 number[],它包含用户选择的项的标识字段。
identityIndex 对应于语义模型的值数组中的值的索引(请参见以下示例)。
在上面的示例中:{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] 的目标数组对应于 Aliyah 和 Abigail 的值。
要处理上一个示例中的用户选择,请单击第一个 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 社区。