Del via


Tilføj betinget formatering

Betinget formatering gør det muligt for en rapportopretter at angive, hvordan farver vises i en rapport i henhold til en numerisk værdi.

I denne artikel beskrives det, hvordan du føjer funktionaliteten til betinget formatering til din Power BI-visualisering.

Betinget formatering kan i øjeblikket kun anvendes på farve.

Føj betinget formatering til projektet

I dette afsnit kan du se, hvordan du føjer betinget formatering til en eksisterende Power BI-visualisering. Eksempelkoden i denne artikel er baseret på visualiseringen SampleBarChart . Du kan undersøge kildekoden i barChart.ts.

Tilføj et element til betinget farveformatering i formatruden

I dette afsnit får du mere at vide om, hvordan du føjer en betinget farveformateringspost til et datapunkt i formatruden.

  1. Brug matrixen propertyInstanceKind i VisualObjectInstance, som vises af powerbi-visuals-api. Kontrollér, at filen indeholder denne import:

    import powerbiVisualsApi from "powerbi-visuals-api";
    
  2. Hvis du vil angive den relevante type formatering (Constant, ConstantOrRule eller Rule), skal du bruge optællingen VisualEnumerationInstanceKinds . Føj følgende import til filen:

    import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
    
  3. Angiv typen af formateringsegenskabsforekomst

Hvis du vil formatere egenskaber, der understøtter betinget formatering, skal du angive den påkrævede forekomsttype i deres 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 opretter den betingede formateringspost i brugergrænsefladen sammen med elementet til konstant formatering af brugergrænsefladen.

Skærmbillede af knappen betinget formatering, som den vises i Power BI, ud for den almindelige farveknap.

Definer, hvordan betinget formatering skal fungere

Definer, hvordan formatering anvendes på dine datapunkter.

Ved hjælp af createDataViewWildcardSelector deklareret under powerbi-visuals-utils-dataviewutilsskal du angive, om betinget formatering skal anvendes på forekomster, totaler eller begge dele. Du kan få flere oplysninger under DataViewWildcard.

Foretag følgende ændringer af de egenskaber, du vil anvende betinget formatering på:

  • Erstat værdien selector med opkaldet dataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption) . DataViewWildcardMatchingOption definerer, om betinget formatering anvendes på forekomster, totaler eller begge dele.

  • Tilføj egenskaben altConstantValueSelector med den værdi, der tidligere er defineret for egenskaben selector .

For formateringsegenskaber, der understøtter betinget formatering, skal du angive den påkrævede forekomst af typen i deres 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 }
                }
            }
        }
    );

    // ...
 }
    

Overvejelser og begrænsninger

Betinget formatering understøttes ikke for følgende visualiseringer:

  • Tabelbaserede visualiseringer

  • Matrixbaserede visualiseringer

Vi anbefaler, at du ikke bruger betinget formatering sammen med serier. Du bør i stedet give kunderne mulighed for at formatere hver serie individuelt, hvilket gør det nemt visuelt at skelne mellem serier. De fleste indbyggede visualiseringer med serier kan deles med denne fremgangsmåde.

DataViewUtils