Поделиться через


Условное форматирование

Условное форматирование позволяет создателю отчета указать способ отображения цветов в отчете в соответствии с числовым значением.

В этой статье описывается, как добавить функции условного форматирования в визуальный элемент Power BI.

В настоящее время условное форматирование может применяться только к цвету.

Добавление условного форматирования в проект

В этом разделе показано, как добавить условное форматирование в существующий визуальный элемент Power BI. Пример кода в этой статье основан на визуальном элементе SampleBarChart . Исходный код можно проверить в barChart.ts.

Добавление записи условного форматирования цветов в области форматирования

В этом разделе вы узнаете, как добавить запись условного форматирования цвета в точку данных в области форматирования.

  1. propertyInstanceKind Используйте массив в VisualObjectInstance, который предоставляетсяpowerbi-visuals-api. Убедитесь, что файл включает этот импорт:

    import powerbiVisualsApi from "powerbi-visuals-api";
    
  2. Чтобы указать соответствующий тип форматирования (Constant, ConstantOrRule или Rule), используйте перечислениеVisualEnumerationInstanceKinds. Добавьте следующий импорт в файл:

    import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
    
  3. Задание типа экземпляра свойства форматирования

Чтобы отформатировать свойства, поддерживающие условное форматирование, задайте требуемый тип экземпляра в их 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 создает запись пользовательского интерфейса условного форматирования вместе с элементом пользовательского интерфейса постоянного форматирования.

Снимок экрана: кнопка условного форматирования, как она отображается в Power BI рядом с кнопкой обычного цвета.

Определение поведения условного форматирования

Определите, как форматирование применяется к точкам данных.

Использование 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 }
                }
            }
        }
    );

    // ...
 }
    

Рекомендации и ограничения

Условное форматирование не поддерживается для следующих визуальных элементов:

  • Визуальные элементы на основе таблиц

  • Визуальные элементы на основе матрицы

Рекомендуется не использовать условное форматирование с серией. Вместо этого следует разрешить клиентам форматировать каждую серию по отдельности, что упрощает визуальное различие между сериями. Большинство внешних визуальных элементов с серией используют этот подход.

DataViewUtils