Dela via


Lägga till villkorsstyrd formatering

Med villkorsstyrd formatering kan en rapportskapare ange hur färger ska visas i en rapport, enligt ett numeriskt värde.

Den här artikeln beskriver hur du lägger till funktionen för villkorsstyrd formatering i ditt visuella Power BI-objekt.

För närvarande kan villkorsstyrd formatering endast tillämpas på färg.

Lägga till villkorsstyrd formatering i projektet

Det här avsnittet visar hur du lägger till villkorsstyrd formatering i ett befintligt visuellt Power BI-objekt. Exempelkoden i den här artikeln baseras på det visuella SampleBarChart-objektet . Du kan undersöka källkoden i barChart.ts.

Lägg till en post för villkorsstyrd färgformatering i formatfönstret

I det här avsnittet får du lära dig hur du lägger till en post för villkorsstyrd färgformatering i en datapunkt i formatfönstret.

  1. Använd matrisen propertyInstanceKind i VisualObjectInstance, som exponeras av powerbi-visuals-api. Kontrollera att filen innehåller den här importen:

    import powerbiVisualsApi from "powerbi-visuals-api";
    
  2. Om du vill ange lämplig typ av formatering (Konstant, ConstantOrRule eller Regel) använder du VisualEnumerationInstanceKinds uppräkningen. Lägg till följande import i filen:

    import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
    
  3. Ange typ av formateringsegenskapsinstans

Om du vill formatera egenskaper som stöder villkorsstyrd formatering anger du den typ av instans som krävs i deras 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 skapar posten för användargränssnittet för villkorsstyrd formatering tillsammans med det konstanta formateringsgränssnittselementet.

Skärmbild av knappen villkorsstyrd formatering, som visas i Power BI, bredvid den vanliga färgknappen.

Definiera hur villkorsstyrd formatering fungerar

Definiera hur formatering tillämpas på dina datapunkter.

Använd createDataViewWildcardSelector deklarerad under powerbi-visuals-utils-dataviewutilsanger du om villkorsstyrd formatering ska tillämpas på instanser, summor eller båda. Mer information finns i DataViewWildcard.

Gör följande ändringar i de egenskaper som du vill tillämpa villkorsstyrd formatering på:

  • Ersätt värdet selector med anropet dataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption) . DataViewWildcardMatchingOption definierar om villkorsstyrd formatering tillämpas på instanser, summor eller båda.

  • Lägg till egenskapen altConstantValueSelector med det värde som tidigare definierats för selector egenskapen.

För formateringsegenskaper som stöder villkorsstyrd formatering anger du den typ av instans som krävs i deras 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 }
                }
            }
        }
    );

    // ...
 }
    

Beaktanden och begränsningar

Villkorsstyrd formatering stöds inte för följande visuella objekt:

  • Tabellbaserade visuella objekt

  • Matrisbaserade visuella objekt

Vi rekommenderar att du inte använder villkorsstyrd formatering med serier. I stället bör du tillåta kunder att formatera varje serie individuellt, vilket gör det enkelt att visuellt skilja mellan serier. De flesta färdiga visuella objekt med serier delar den här metoden.

DataViewUtils