Поделиться через


Использование целевых объектов для выбора поля данных для действия

В режиме редактирования 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, чтобы в отчете отображались только данные в регионе Западная.

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"]
};

Пример целевого объекта уровня иерархии

В следующем примере кода к отчету применяется базовый фильтр с целевым объектом уровня иерархии. Код действует на уровне месяца иерархии OrderDate таблицы Sales, чтобы в отчете отображались только данные в регионе Западная.

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, поэтому оно отображается только в том случае, если значение не является пустым.

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"
    }]
}

Пример целевого объекта агрегированного столбца

Следующий код определяет целевой объект агрегирования столбцов, который является суммой значений в столбце Store таблицы sales:

let columnAggregation = {
    $schema: "http://powerbi.com/product/schema#columnAggr",
    table: "Store",
    column: "Sales",
    aggregationFunction: "Sum"
};