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 bare brukes på følgende egenskapstyper:

  • Color
  • Tekst
  • Icon
  • Nettadresse

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 vil du lære hvordan du legger til en betinget fargeformateringsoppføring, til et datapunkt i formatruten.

  1. Du bruker matrisen propertyInstanceKind i VisualObjectInstance, som vises av powerbi-visuals-api. Det første trinnet er å bekrefte 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 formateringsgrensesnittoppføringen sammen med det konstante formateringsgrensesnittelementet.

Screenshot of the conditional formatting button, as it appears in Power BI, next to the regular color button.

Definer hvordan betinget formatering fungerer

Definer hvordan formatering skal brukes på datapunktene.

Hvis du bruker createDataViewWildcardSelector deklarert under powerbi-visuals-utils-dataviewutils, angir du om betinget formatering skal brukes 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