Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Условное форматирование позволяет создателю отчета указать способ отображения цветов в отчете в соответствии с числовым значением.
В этой статье описывается, как добавить функции условного форматирования в визуальный элемент 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 }
}
}
}
);
// ...
}
Рекомендации и ограничения
Условное форматирование не поддерживается для следующих визуальных элементов:
Визуальные элементы на основе таблиц
Визуальные элементы на основе матрицы
Рекомендуется не использовать условное форматирование с серией. Вместо этого клиенты могут отформатировать каждую серию по отдельности, что упрощает визуальное различие между сериями. Большинство штатных визуальных элементов, связанных с сериями, используют этот подход.