使用目标选择要对其执行操作的数据字段
在 Power BI 编辑模式下,“字段”窗格 显示模型上所有表及其所有数据字段。 可以对数据字段中的数据进行排序、筛选或切片,以影响数据在报表、页面或视觉对象中的显示方式。
Power BI 嵌入式分析筛选器、切片器或排序需要一个目标对象,该对象指定要对其执行操作的数据字段。 使用 ITarget 在以下情况下提供目标数据字段:
- 使用 IFilter 接口构造筛选器
- 在加载 设置切片器
- 对视觉对象进行排序
- 向可视化效果添加数据字段
目标类型
数据字段可以是列、层次结构级别、聚合 列或层次结构级别,也可以是计算 度量值。
ITarget
接口的目标类型包括:
IColumnTarget
IHierarchyLevelTarget
IMeasureTarget
IColumnAggrTarget
IHierarchyLevelAggrTarget
列
使用 IColumnTarget 以表中的指定列为目标:
target: {
$schema: "http://powerbi.com/product/schema#column",
table: "<table name>",
column: "<column name>"
}
层次结构级别
使用 IHierarchyLevelTarget 以表中层次结构中的指定层次结构级别为目标:
target: {
$schema: "http://powerbi.com/product/schema#hierarchyLevel",
table: "<table name>",
hierarchy: "<hierarchy name>",
hierarchyLevel: "<hierarchy level name>"
}
量
使用 IMeasureTarget 以表中的指定度量值为目标。 如果目标绑定到视觉对象并且其值显示为总计的百分比,则 percentOfGrandTotal
的值设置为 true。
target: {
$schema: "http://powerbi.com/product/schema#measure",
table: "<table name>",
measure: "<measure name>",
percentOfGrandTotal?: boolean
}
聚合函数
可以为列和层次结构级别目标指定聚合函数。
aggregationFunction
变量是可选的,如果未提供变量,数据字段将使用默认 Sum
聚合函数。
aggregationFunction
支持的其他值包括:
Avg
DoNotSummarize
Count
CountNonNull
Max
Median
Min
StandardDeviation
Variance
聚合列
使用 IColumnAggrTarget 指定表中指定指定列的聚合函数。 如果目标绑定到视觉对象并且其值显示为总计的百分比,则“percentOfGrandTotal”的值设置为 true。
target: {
$schema: "http://powerbi.com/product/schema#columnAggr",
table: "<table name>",
column: "<column name>",
aggregationFunction: "<aggregation function>", // Optional, default is Sum.
percentOfGrandTotal?: boolean
}
聚合层次结构级别
使用 IHierarchyLevelAggrTarget 在表中层次结构中的指定层次结构级别上指定聚合函数。 如果目标绑定到视觉对象并且其值显示为总计的百分比,则“percentOfGrandTotal”的值设置为 true。
target: {
$schema: "http://powerbi.com/product/schema#hierarchyLevelAggr",
table: "<table name>",
hierarchy: "<hierarchy name>",
hierarchyLevel: "<hierarchy level name>",
aggregationFunction: "<aggregation function>", // Optional, default is Sum.
percentOfGrandTotal?: boolean
}
例子
以下代码示例使用 target
对象来指定筛选器应处理的数据字段。
列目标示例
下面的代码示例将具有列目标的 基本筛选器 应用于报表。 该代码对 Geo 表的 Region 列执行操作,以便只有报表中显示的 西部 区域中的数据。
let filter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
$schema: "http://powerbi.com/product/schema#column",
table: "Geo",
column: "Region"
},
operator: "In",
values: ["West"]
};
层次结构级别目标示例
下面的代码示例将具有层次结构级别目标的基本筛选器应用于报表。 该代码作用于 Sales 表的 OrderDate 层次结构的 Month 级别,以便只有报表中该层次结构级别下显示 West 区域中的数据。
let filter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
$schema: "http://powerbi.com/product/schema#hierarchyLevel",
table: "Sales",
hierarchy: "OrderDate",
hierarchyLevel: "Month"
},
operator: "In",
values: ["West"]
};
度量目标示例
下面的代码示例将具有度量值目标的 高级筛选器 应用于视觉对象。 该代码作用于 SalesFact 表中的 Total Category Volume 度量值,因此仅在值不为空时显示。
let filter = {
$schema: "http://powerbi.com/product/schema#advanced",
target: {
$schema: "http://powerbi.com/product/schema#measure",
table: "SalesFact",
measure: "Total Category Volume"
},
filterType: models.FilterType.AdvancedFilter,
logicalOperator: "And",
conditions: [{
operator: "IsNotBlank"
}]
}
聚合列目标示例
以下代码定义列聚合目标,该目标是 Sales 表中 Store 列中的值的总和:
let columnAggregation = {
$schema: "http://powerbi.com/product/schema#columnAggr",
table: "Store",
column: "Sales",
aggregationFunction: "Sum"
};