Использование селекторов для управления эффектами визуальных элементов
Некоторые функции позволяют использовать селекторы для управления эффектами визуальных элементов. Селектор необязателен, и если он не отображается, параметры применимы ко всем визуальным элементам в отчете.
Поддерживаемые функции
Селекторы можно использовать в следующих функциях:
- Изменить команды меню
- Скрытие или отображение заголовков визуальных элементов
- Срезы при загрузке отчета
Типы селекторов
Визуальное имя
Примените параметры только для указанного визуального элемента.
selector: {
$schema: "http://powerbi.com/product/schema#visualSelector",
visualName: <a visual name> // You can retrieve the name using `getVisuals`
}
Чтобы найти визуальное имя, можно использовать API getVisuals()
на странице и получить свойство name
визуального элемента. Визуальное имя — уникальный идентификатор.
Тип визуального элемента
Примените параметры ко всем визуальным элементам указанного типа.
selector: {
$schema: "http://powerbi.com/product/schema#visualTypeSelector",
visualType: <a visual type> // You can retrieve the type using `getVisuals`
}
Чтобы найти визуальный тип, можно использовать API getVisuals()
на странице и получить свойство type
визуального элемента.
Целевой объект среза
Примените состояние среза только для срезов с указанным целевым объектом.
selector: {
$schema: "http://powerbi.com/product/schema#slicerTargetSelector",
target: <target data field>
}
Примеры
Параметры визуального заголовка
Скрыть все заголовки визуальных элементов в отчете.
let config = { … settings: { … visualSettings: { visualHeaders: [ { settings: { visible: false } /* No selector - Hide visual header for all the visuals in the report */ } ] } } };
Скрытие заголовка визуального элемента для определенного визуального элемента с помощью селектора визуального элемента.
let config = { … settings: { … visualSettings: { visualHeaders: [ { settings: { visible: false } selector: { $schema: "http://powerbi.com/product/schema#visualSelector", visualName: "VisualContainer1", } } ] } } };
Параметры команд меню
Оба расширения команд меню и встроенные команды отображают селекторы поддержки.
Добавление команды расширения в определенное меню параметров визуального элемента.
let config = { ... settings: { ... // Adding the extension command to the options menu extensions: [ { command: { name: "campaign", title: "Start campaign", icon: base64Icon, selector: { $schema: "http://powerbi.com/product/schema#visualSelector", visualName: tableVisualName }, extend: { visualOptionsMenu: { title: "Start campaign", menuLocation: models.MenuLocation.Top, } } } }, ], } }
Скрытие нескольких встроенных команд для всех визуальных элементов с типом
table
.let tableSelector = { $schema: "http://powerbi.com/product/schema#visualTypeSelector", visualType: 'table' }; let config = { ... settings: { ... // Hiding built-in commands on the options menu commands: [ { spotlight: { selector: tableSelector, displayOption: models.CommandDisplayOption.Hidden, }, exportData: { selector: tableSelector, displayOption: models.CommandDisplayOption.Hidden, }, seeData: { selector: tableSelector, displayOption: models.CommandDisplayOption.Hidden, }, } ] }, };
Срезы при загрузке
Заметка
Срезы при загрузке не поддерживают селектор визуального типа
Задание определенного среза по имени
let slicers = [ { selector: { $schema: "http://powerbi.com/product/schema#visualSelector", visualName: "d1feb8891635af3b335a" }, state: { filters: [ { $schema:"http://powerbi.com/product/schema#advanced", target: { table: "Store", column: "StoreNumber" }, filterType: models.FilterType.AdvancedFilter, logicalOperator: "And", conditions: [ { operator: "GreaterThanOrEqual", value: 37 }, { operator: "LessThanOrEqual", value: 576 }] }] } } ]; embedConfig = { slicers: slicers, ... };
Установка срезов по целевому объекту
// We want to slice all slicers with "StoreNumber" column target let target = { table: "Store", column: "StoreNumber" }; let slicers = [ { selector: { $schema: "http://powerbi.com/product/schema#slicerTargetSelector", target: target }, state: { filters: [ { $schema:"http://powerbi.com/product/schema#advanced", target: target, filterType: models.FilterType.AdvancedFilter, logicalOperator: "And", conditions: [ {operator: "GreaterThanOrEqual", value: 37 }, {operator: "LessThanOrEqual", value: 576 }] }] } } ]; embedConfig = { slicers: slicers, ... };