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.
Use a matriz
propertyInstanceKind
emVisualObjectInstance
, que é exposta porpowerbi-visuals-api
. Verifique se o arquivo inclui esta importação:import powerbiVisualsApi from "powerbi-visuals-api";
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;
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.
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 chamadadataViewWildcard.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 paraselector
.
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.