使用目标选择要对其执行操作的数据字段

在 Power BI 编辑模式下,“字段”窗格 显示模型上所有表及其所有数据字段。 可以对数据字段中的数据进行排序、筛选或切片,以影响数据在报表、页面或视觉对象中的显示方式。

Power BI 嵌入式分析筛选器、切片器或排序需要一个目标对象,该对象指定要对其执行操作的数据字段。 使用 ITarget 在以下情况下提供目标数据字段:

目标类型

数据字段可以是列、层次结构级别、聚合 列或层次结构级别,也可以是计算 度量值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"
};