Compartilhar via


Adicionar formatação condicional

A formatação condicional permite que um criador de relatório especifique como as cores serão exibidas de acordo com um valor numérico.

Este artigo descreve como adicionar a funcionalidade de formatação condicional ao visual do Power BI.

Atualmente, a formatação condicional só pode ser aplicada a cores.

Adicionar formatação condicional ao seu projeto

Esta seção mostra como adicionar formatação condicional a um visual existente do Power BI. O código de exemplo neste artigo é baseado no visual SampleBarChart. Você pode examinar o código-fonte em barChart.ts.

Adicionar uma entrada de formatação de cor condicional ao painel de formatação

Nesta seção, você aprenderá a adicionar uma entrada de formatação de cor condicional a um ponto de dados no painel de formato.

  1. Use a matriz propertyInstanceKind em VisualObjectInstance, que é exposta por powerbi-visuals-api. Verifique se o arquivo inclui esta importação:

    import powerbiVisualsApi from "powerbi-visuals-api";
    
  2. Para especificar o tipo apropriado de formatação (Constante, ConstantOrRule ou Regra), use a enumeração VisualEnumerationInstanceKinds. Adicione a seguinte importação ao seu arquivo:

    import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
    
  3. Definir o tipo de instância de propriedade de formatação

Para formatar propriedades que dão suporte à formatação condicional, defina o tipo de instância necessário no descriptor dessas propriedades.

 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 criará a entrada de interface do usuário de formatação condicional juntamente com o elemento de interface do usuário de formatação constante.

Captura de tela do botão de formatação condicional no Power BI, ao lado do botão de cor normal.

Definir o comportamento da formatação condicional

Defina como a formatação será aplicada aos seus pontos de dados.

Usando createDataViewWildcardSelector declarado em powerbi-visuals-utils-dataviewutils, especifique se a formatação condicional será aplicada a instâncias, totais ou ambos. Para saber mais, confira DataViewWildcard.

Faça as seguintes alterações nos objetos aos quais você deseja aplicar a formatação condicional:

  • Substitua o valor selector pela chamada dataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption). DataViewWildcardMatchingOption define se a formatação condicional é aplicada a instâncias, totais ou ambos.

  • Adicione a propriedade altConstantValueSelector com o valor definido anteriormente para selector.

Para formatar propriedades que dão suporte à formatação condicional, defina o tipo de instância necessário no descriptor dessas propriedades.

 
 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 }
                }
            }
        }
    );

    // ...
 }
    

Considerações e limitações

não há suporte para a formatação condicional nos seguintes visuais:

  • Visuais baseados em tabela

  • Visuais baseados em matriz

Recomendamos que você não use a formatação condicional com séries. Em vez disso, permita que os clientes formatem cada série individualmente, facilitando a distinção visual entre as séries. A maioria dos visuais prontos para uso com as séries compartilha essa abordagem.

DataViewUtils