Условное форматирование
Условное форматирование позволяет создателю отчета указать способ отображения цветов в отчете в соответствии с числовым значением.
В этой статье описывается, как добавить функции условного форматирования в визуальный элемент Power BI.
В настоящее время условное форматирование может применяться только к цвету.
Добавление условного форматирования в проект
В этом разделе показано, как добавить условное форматирование в существующий визуальный элемент Power BI. Пример кода в этой статье основан на визуальном элементе SampleBarChart . Исходный код можно проверить в barChart.ts.
Добавление записи условного форматирования цветов в области форматирования
В этом разделе вы узнаете, как добавить запись условного форматирования цвета в точку данных в области форматирования.
propertyInstanceKind
Используйте массив вVisualObjectInstance
, который предоставляетсяpowerbi-visuals-api
. Убедитесь, что файл включает этот импорт:import powerbiVisualsApi from "powerbi-visuals-api";
Чтобы указать соответствующий тип форматирования (Constant, ConstantOrRule или Rule), используйте перечисление
VisualEnumerationInstanceKinds
. Добавьте следующий импорт в файл:import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
Задание типа экземпляра свойства форматирования
Чтобы отформатировать свойства, поддерживающие условное форматирование, задайте требуемый тип экземпляра в их descriptor
.
public getFormattingModel(): powerbi.visuals.FormattingModel {
// ...
formattingGroup.slices.push(
{
uid: `colorSelector${barDataPoint_indx}_uid`,
displayName: barDataPoint.category,
control: {
type: powerbi.visuals.FormattingComponent.ColorPicker,
properties: {
descriptor: {
objectName: "colorSelector",
propertyName: "fill",
selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals),
altConstantValueSelector: barDataPoint.selectionId.getSelector(),
instanceKind: powerbi.VisualEnumerationInstanceKinds.ConstantOrRule // <=== Support conditional formatting
},
value: { value: barDataPoint.color }
}
}
}
);
// ...
}
VisualEnumerationInstanceKinds.ConstantOrRule
создает запись пользовательского интерфейса условного форматирования вместе с элементом пользовательского интерфейса постоянного форматирования.
Определение поведения условного форматирования
Определите, как форматирование применяется к точкам данных.
Использование createDataViewWildcardSelector
объявленного в разделе powerbi-visuals-utils-dataviewutils
укажите, следует ли применять условное форматирование к экземплярам, итогам или обоим. Дополнительные сведения см. в разделе DataViewWildcard.
Внесите следующие изменения в свойства, к которым необходимо применить условное форматирование:
Замените
selector
значение вызовомdataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption)
.DataViewWildcardMatchingOption
определяет, применяется ли условное форматирование к экземплярам, итогам или обоим.altConstantValueSelector
Добавьте свойство со значением, ранее определенным дляselector
свойства.
Для свойств форматирования, поддерживающих условное форматирование, задайте требуемый тип экземпляра в их descriptor
типе.
public getFormattingModel(): powerbi.visuals.FormattingModel {
// ...
formattingGroup.slices.push(
{
uid: `colorSelector${barDataPoint_indx}_uid`,
displayName: barDataPoint.category,
control: {
type: powerbi.visuals.FormattingComponent.ColorPicker,
properties: {
descriptor: {
objectName: "colorSelector",
propertyName: "fill",
// Define whether the conditional formatting will apply to instances, totals, or both
selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals),
// Add this property with the value previously defined for the selector property
altConstantValueSelector: barDataPoint.selectionId.getSelector(),
instanceKind: powerbi.VisualEnumerationInstanceKinds.ConstantOrRule
},
value: { value: barDataPoint.color }
}
}
}
);
// ...
}
Рекомендации и ограничения
Условное форматирование не поддерживается для следующих визуальных элементов:
Визуальные элементы на основе таблиц
Визуальные элементы на основе матрицы
Рекомендуется не использовать условное форматирование с серией. Вместо этого следует разрешить клиентам форматировать каждую серию по отдельности, что упрощает визуальное различие между сериями. Большинство внешних визуальных элементов с серией используют этот подход.