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.
Använd matrisen
propertyInstanceKind
iVisualObjectInstance
, som exponeras avpowerbi-visuals-api
. Kontrollera att filen innehåller den här importen:import powerbiVisualsApi from "powerbi-visuals-api";
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;
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.
Definiera hur villkorsstyrd formatering fungerar
Definiera hur formatering tillämpas på dina datapunkter.
Använd createDataViewWildcardSelector
deklarerad under powerbi-visuals-utils-dataviewutils
anger 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 anropetdataViewWildcard.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örselector
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.