Condividi tramite


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.

  1. Usare la matrice propertyInstanceKind in VisualObjectInstance, esposta da powerbi-visuals-api. Verificare che il file includa questa importazione:

    import powerbiVisualsApi from "powerbi-visuals-api";
    
  2. 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;
    
  3. 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.

Screenshot del pulsante di formattazione condizionale, così come è visualizzato in Power BI, accanto al normale pulsante del colore.

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 chiamata dataViewWildcard.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.

DataViewUtils