Del via


Legg til betinget formatering

Med betinget formatering kan en rapportoppretter angi hvordan farger skal vises i en rapport, i henhold til en numerisk verdi.

Denne artikkelen beskriver hvordan du legger til funksjonaliteten for betinget formatering i Power BI-visualobjektet.

Betinget formatering kan for øyeblikket bare brukes på farge.

Legge til betinget formatering i prosjektet

Denne delen viser hvordan du legger til betinget formatering i et eksisterende Power BI-visualobjekt. Eksempelkoden i denne artikkelen er basert på SampleBarChart-visualobjektet. Du kan undersøke kildekoden i barChart.ts.

Legge til en oppføring for betinget fargeformatering i formatruten

I denne delen lærer du hvordan du legger til en betinget fargeformateringsoppføring, til et datapunkt i formatruten.

  1. Bruk matrisen propertyInstanceKind i VisualObjectInstance, som vises av powerbi-visuals-api. Kontroller at filen inneholder denne importen:

    import powerbiVisualsApi from "powerbi-visuals-api";
    
  2. Hvis du vil angi riktig type formatering (Konstant, ConstantOrRule eller Regel), bruker du opplistingen VisualEnumerationInstanceKinds . Legg til følgende import i filen:

    import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
    
  3. Angi forekomsttype for formateringsegenskap

Hvis du vil formatere egenskaper som støtter betinget formatering, angir du den nødvendige forekomsttype i sine 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 oppretter den betingede formateringsoppføringen sammen med det konstante formateringsgrensesnittelementet.

Skjermbilde av knappen for betinget formatering, slik den vises i Power BI, ved siden av den vanlige fargeknappen.

Definer hvordan betinget formatering fungerer

Definer hvordan formatering brukes på datapunktene.

Hvis du bruker createDataViewWildcardSelector deklarert under powerbi-visuals-utils-dataviewutils, angir du om du vil bruke betinget formatering på forekomster, totaler eller begge deler. Hvis du vil ha mer informasjon, kan du se DataViewWildcard.

Gjør følgende endringer i egenskapene du vil bruke betinget formatering på:

  • selector Erstatt verdien med dataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption) samtalen. DataViewWildcardMatchingOption definerer om betinget formatering brukes på forekomster, totaler eller begge deler.

  • altConstantValueSelector Legg til egenskapen med verdien som tidligere var definert for selector egenskapen.

Hvis du vil ha formateringsegenskaper som støtter betinget formatering, angir du den nødvendige forekomst-typen i .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 }
                }
            }
        }
    );

    // ...
 }
    

Hensyn og begrensninger

Betinget formatering støttes ikke for følgende visualobjekter:

  • Tabellbaserte visualobjekter

  • Matrisebaserte visualobjekter

Vi anbefaler at du ikke bruker betinget formatering med serier. I stedet bør du la kundene formatere hver serie individuelt, noe som gjør det enkelt å skille mellom serier visuelt. De fleste ut-av-boksen visualobjekter med serie, dele denne tilnærmingen.

DataViewUtils