Руководство: Добавление параметров форматирования в визуальный элемент "Круговая карточка"
При создании визуального элемента можно добавить параметры настройки его свойств. Некоторые элементы, которые можно настроить в плане форматирования, включают:
- Титул
- Фон
- Граница
- Тень
- Цвета
В этом руководстве описано, как:
- Добавьте свойства форматирования в визуальный элемент.
- Упаковка визуального элемента
- Импортируйте пользовательский визуальный элемент в отчет Power BI Desktop или Сервис.
Предпосылка
В этом руководстве объясняется, как добавить в визуальный элемент общие свойства форматирования. Мы будем использовать визуал карточки Circle в качестве примера. Мы добавим возможность изменить цвет и толщину круга. Если у вас нет карточки Circle и папки проекта, которые вы создали в этом уроке, повторите руководство, прежде чем продолжить.
Добавление параметров форматирования
В PowerShellперейдите в папку проекта с карточкой, которая представляет круг, и запустите её визуализацию. Теперь ваш визуальный элемент работает, будучи размещённым на вашем компьютере.
pbiviz start
В
Power BI выберите панельформата. Вы должны увидеть общие параметры форматирования, но не параметры визуального форматирования.
В Visual Studio Codeоткройте файл
capabilities.json
.Перед массивом dataViewMappings добавьте объекты .
"objects": {},
Сохраните файл
capabilities.json
.В Power BIснова просмотрите параметры форматирования.
Заметка
Если параметры форматирования не меняются, выберите Перезагрузить настраиваемый визуальный элемент.
Установите для параметра Заголовок значение Off. Обратите внимание, что визуальный элемент больше не отображает имя меры в левом верхнем углу.
Добавление настраиваемых параметров форматирования
Теперь добавим новую группу с именем цвета для настройки цвета круга и толщины контура круга.
В PowerShellвведите CTRL+C, чтобы остановить настраиваемый визуальный элемент.
В Visual Studio Codeв файле
capabilities.json
вставьте следующий фрагмент JSON в объект, помеченный объектами ."circle": { "properties": { "circleColor": { "type": { "fill": { "solid": { "color": true } } } }, "circleThickness": { "type": { "numeric": true } } } }
Этот фрагмент JSON описывает группу, называемую кругом, которая состоит из двух переменных — circleColor и circleThickness.
Сохраните файл
capabilities.json
.В областиобозревателя
перейдите в папку src , а затем выберитеsettings.ts . Этот файл представляет параметры начального визуального.В файле
settings.ts
замените строки импорта и два класса следующим кодом.import { formattingSettings } from "powerbi-visuals-utils-formattingmodel"; import FormattingSettingsCard = formattingSettings.SimpleCard; import FormattingSettingsSlice = formattingSettings.Slice; import FormattingSettingsModel = formattingSettings.Model; export class CircleSettings extends FormattingSettingsCard{ public circleColor = new formattingSettings.ColorPicker({ name: "circleColor", displayName: "Color", value: { value: "#ffffff" }, visible: true }); public circleThickness = new formattingSettings.NumUpDown({ name: "circleThickness", displayName: "Thickness", value: 2, visible: true }); public name: string = "circle"; public displayName: string = "Circle"; public visible: boolean = true; public slices: FormattingSettingsSlice[] = [this.circleColor, this.circleThickness] } export class VisualSettings extends FormattingSettingsModel { public circle: CircleSettings = new CircleSettings(); public cards: FormattingSettingsCard[] = [this.circle]; }
Этот модуль определяет два класса. Класс CircleSettings определяет два свойства с именами, которые соответствуют объектам, определенным в файле capabilities.json (circleColor и circleThickness) и задает значения по умолчанию. Класс VisualSettings определяет объект круга в соответствии со свойствами, описанными в файле
capabilities.json
.Сохраните файл
settings.ts
.Откройте файл
visual.ts
.В файле
visual.ts
импортируйте :import { VisualSettings } from "./settings"; import { FormattingSettingsService } from "powerbi-visuals-utils-formattingmodel";
и в классе Visual добавьте следующие свойства:
private visualSettings: VisualSettings; private formattingSettingsService: FormattingSettingsService;
Это свойство сохраняет ссылку на объект VisualSettings, описывающий визуальные параметры.
В классе Visual вставьте следующее в качестве первой строки конструктора :
this.formattingSettingsService = new FormattingSettingsService();
В классе
Visual добавьте следующий метод после метода обновления. public getFormattingModel(): powerbi.visuals.FormattingModel { return this.formattingSettingsService.buildFormattingModel(this.visualSettings); }
Эта функция вызывается каждый раз при отрисовке области форматирования. Он позволяет выбрать объекты и свойства, которые вы хотите предоставить пользователям в области свойств.
В методе обновления
после объявления переменной радиуса добавьте следующий код. this.visualSettings = this.formattingSettingsService.populateFormattingSettingsModel(VisualSettings, options.dataViews[0]); this.visualSettings.circle.circleThickness.value = Math.max(0, this.visualSettings.circle.circleThickness.value); this.visualSettings.circle.circleThickness.value = Math.min(10, this.visualSettings.circle.circleThickness.value);
Этот код извлекает параметры формата. Он настраивает любое значение, переданное в свойство circleThickness, и преобразует его в число от нуля до 10.
В элементе круга измените значения, передаваемые в стиль заливки , и стиль ширины штриха следующим образом:
.style("fill", this.visualSettings.circle.circleColor.value.value)
.style("stroke-width", this.visualSettings.circle.circleThickness.value)
Сохраните файл
visual.ts
.В PowerShellзапустите визуальный компонент.
pbiviz start
В Power BIв панели инструментов над визуальным элементом выберите Переключатель автоматической перезагрузки.
В параметрах визуального формата, разверните опцию Circle.
Измените параметр цвета
и толщины и.
Измените параметр толщины на значение меньше нуля и больше 10 в пункте. Обратите внимание, что визуальный элемент обновляет значение до допустимого минимума или максимума.
Отладка
Советы по отладке пользовательского визуального элемента см. в руководстве по отладке .
Упаковка пользовательского визуального элемента
Теперь, когда визуальный элемент завершен и готов к использованию, пришло время упаковать его. Упакованный визуальный элемент можно импортировать в отчеты или службы Power BI, которые будут использоваться другими пользователями.
Когда ваш визуальный элемент готов, следуйте указаниям в упакуйте визуальный элемент Power BI, а затем, если хотите, поделитесь им с другими, чтобы они могли импортировать его и наслаждаться им.