Aggiungere la formattazione condizionale
La formattazione condizionale consente all'autore del report di specificare la modalità di visualizzazione colori in un report, in base a un valore numerico.
Questo articolo descrive come aggiungere la funzionalità di formattazione condizionale all'oggetto visivo di Power BI.
Attualmente, la formattazione condizionale può essere applicata solo al colore.
Aggiungere la formattazione condizionale a un progetto
Questa sezione illustra come aggiungere la formattazione condizionale a un oggetto visivo di Power BI già esistente. Il codice di esempio in questo articolo è basato sull'oggetto visivo SampleBarChart. È possibile esaminare il codice sorgente in barChart.ts.
Aggiungere una voce di formattazione condizionale dei colori nel riquadro del formato
In questa sezione verrà illustrato come aggiungere una voce di formattazione condizionale dei colori a un punto dati nel riquadro del formato.
Usare la matrice
propertyInstanceKind
inVisualObjectInstance
, esposta dapowerbi-visuals-api
. Verificare che il file includa questa importazione:import powerbiVisualsApi from "powerbi-visuals-api";
Per specificare il tipo di formattazione appropriato (Constant, ConstantOrRule o Rule ), usare l'enumerazione
VisualEnumerationInstanceKinds
. Aggiungere l'importazione seguente al file:import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
Impostare il tipo di istanza della proprietà di formattazione
Per formattare le proprietà che supportano la formattazione condizionale, impostare il tipo di istanza richiesto nel relativo 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
crea la voce dell'interfaccia utente di formattazione condizionale assieme all'elemento dell'interfaccia utente di formattazione costante.
Definire il comportamento della formattazione condizionale
Definire la modalità di applicazione della formattazione ai punti dati.
Usando createDataViewWildcardSelector
dichiarato in powerbi-visuals-utils-dataviewutils
, specificare se applicare la formattazione condizionale a istanze, totali o entrambi. Per altre informazioni, vedere DataViewWildcard.
Apportare le modifiche seguenti alle proprietà a cui applicare la formattazione condizionale:
Sostituire il valore
selector
con la chiamatadataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption)
.DataViewWildcardMatchingOption
definisce se la formattazione condizionale viene applicata a istanze, a totali o a entrambi.Aggiungere la proprietà
altConstantValueSelector
con il valore definito in precedenza per la proprietàselector
.
Per le proprietà di formattazione che supportano la formattazione condizionale, impostare il tipo di istanza richiesto nel relativo 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 }
}
}
}
);
// ...
}
Considerazioni e limitazioni
La formattazione condizionale non è supportata per gli oggetti visivi seguenti:
Oggetti visivi basati su tabelle
Oggetti visivi basati su matrice
È consigliabile non usare la formattazione condizionale con serie. È invece consigliabile consentire ai clienti di formattare singolarmente ogni serie, semplificando la distinzione visiva tra le serie. La maggior parte degli oggetti visivi predefiniti con serie condivide questo approccio.