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 for øyeblikket bare brukes på farge.
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 lærer du hvordan du legger til en betinget fargeformateringsoppføring, til et datapunkt i formatruten.
Bruk matrisen
propertyInstanceKind
iVisualObjectInstance
, som vises avpowerbi-visuals-api
. Kontroller at filen inneholder denne importen:import powerbiVisualsApi from "powerbi-visuals-api";
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;
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 formateringsoppføringen sammen med det konstante formateringsgrensesnittelementet.
Definer hvordan betinget formatering fungerer
Definer hvordan formatering brukes på datapunktene.
Hvis du bruker createDataViewWildcardSelector
deklarert under powerbi-visuals-utils-dataviewutils
, angir du om du vil bruke betinget formatering 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 meddataViewWildcard.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 forselector
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.