Использование целевых объектов для выбора поля данных для действия
В режиме редактирования 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
для указания поля данных, с которым должен работать фильтр.
Пример целевого объекта столбца
В следующем примере кода применяется базовый фильтр с целевым объектом столбца к отчету. Код действует в столбце региона
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"]
};
Пример целевого объекта уровня иерархии
В следующем примере кода к отчету применяется базовый фильтр с целевым объектом уровня иерархии. Код действует на уровне месяца
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"]
};
Пример целевого объекта измерения
В следующем примере кода применяется расширенный фильтр с целевым объектом мер к визуальному элементу. Код действует на меру тома
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"
};