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.
Brug matrixen
propertyInstanceKind
iVisualObjectInstance
, som vises afpowerbi-visuals-api
. Kontrollér, at filen indeholder denne import:import powerbiVisualsApi from "powerbi-visuals-api";
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;
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.
Definer, hvordan betinget formatering skal fungere
Definer, hvordan formatering anvendes på dine datapunkter.
Ved hjælp af createDataViewWildcardSelector
deklareret under powerbi-visuals-utils-dataviewutils
skal 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 opkaldetdataViewWildcard.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 egenskabenselector
.
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.