Udostępnij za pośrednictwem


Dodawanie formatowania warunkowego

Formatowanie warunkowe umożliwia twórcy raportu określenie sposobu wyświetlania kolorów w raporcie zgodnie z wartością liczbową.

W tym artykule opisano sposób dodawania funkcji formatowania warunkowego do wizualizacji usługi Power BI.

Obecnie formatowanie warunkowe można stosować tylko do koloru.

Dodawanie formatowania warunkowego do projektu

W tej sekcji pokazano, jak dodać formatowanie warunkowe do istniejącej wizualizacji usługi Power BI. Przykładowy kod w tym artykule jest oparty na wizualizacji SampleBarChart . Kod źródłowy można sprawdzić w barChart.ts.

Dodawanie wpisu formatowania koloru warunkowego w okienku formatowania

W tej sekcji dowiesz się, jak dodać wpis formatowania koloru warunkowego do punktu danych w okienku formatowania.

  1. Użyj tablicy propertyInstanceKind w VisualObjectInstancepliku , która jest uwidaczniona przez powerbi-visuals-apielement . Sprawdź, czy plik zawiera ten import:

    import powerbiVisualsApi from "powerbi-visuals-api";
    
  2. Aby określić odpowiedni typ formatowania (Stała, ConstantOrRule lub Rule), użyj wyliczeniaVisualEnumerationInstanceKinds. Dodaj następujący import do pliku:

    import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
    
  3. Ustawianie rodzaju wystąpienia właściwości formatowania

Aby sformatować właściwości obsługujące formatowanie warunkowe, ustaw wymagany rodzaj wystąpienia w parametrze 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 Tworzy wpis interfejsu użytkownika formatowania warunkowego wraz z elementem interfejsu użytkownika formatowania stałego.

Zrzut ekranu przedstawiający przycisk formatowania warunkowego wyświetlany w usłudze Power BI obok przycisku zwykłego koloru.

Definiowanie zachowania formatowania warunkowego

Zdefiniuj sposób stosowania formatowania do punktów danych.

Za pomocą createDataViewWildcardSelector deklaracji w obszarze powerbi-visuals-utils-dataviewutilsokreśl, czy należy zastosować formatowanie warunkowe do wystąpień, sum lub obu tych opcji. Aby uzyskać więcej informacji, zobacz DataViewWildcard.

Wprowadź następujące zmiany we właściwościach, do których chcesz zastosować formatowanie warunkowe:

  • Zastąp selector wartość wywołaniem dataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption) . DataViewWildcardMatchingOption Określa, czy formatowanie warunkowe jest stosowane do wystąpień, sum lub obu tych elementów.

  • altConstantValueSelector Dodaj właściwość z wartością zdefiniowaną wcześniej dla selector właściwości .

W przypadku właściwości formatowania, które obsługują formatowanie warunkowe, ustaw wymagany rodzaj wystąpienia w parametrze 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 }
                }
            }
        }
    );

    // ...
 }
    

Rozważania i ograniczenia

Formatowanie warunkowe nie jest obsługiwane dla następujących wizualizacji:

  • Wizualizacje oparte na tabelach

  • Wizualizacje oparte na macierzy

Zalecamy, aby nie używać formatowania warunkowego z serii. Zamiast tego należy zezwolić klientom na formatowanie poszczególnych serii indywidualnie, co ułatwia wizualne rozróżnienie między seriami. Większość wbudowanych wizualizacji z seriami udostępnia to podejście.

DataViewUtils