Adición de formato condicional
El formato condicional permite que un creador de informes especifique cómo se muestran los colores en un informe, de acuerdo con un valor numérico.
En este artículo se describe cómo agregar la funcionalidad de formato condicional al objeto visual de Power BI.
Actualmente, el formato condicional solo se puede aplicar al color.
Incorporación de formato condicional al proyecto
En esta sección se muestra cómo agregar formato condicional a un objeto visual existente de Power BI. El código de ejemplo de este artículo se basa en el objeto visual SampleBarChart. Puede examinar el código fuente en barChart.ts.
Incorporación de una entrada de formato de color condicional en el panel de formato
En esta sección obtendrá información sobre cómo agregar una entrada de formato de color condicional a un punto de datos en el panel formato.
Utilice la matriz
propertyInstanceKind
deVisualObjectInstance
, que se expone mediantepowerbi-visuals-api
. Compruebe que el archivo incluye esta importación:import powerbiVisualsApi from "powerbi-visuals-api";
Para especificar el tipo adecuado de formato (Constant, ConstantOrRule o Rule), utilice la enumeración
VisualEnumerationInstanceKinds
. Agregue la siguiente importación al archivo:import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
Establezca el tipo de instancia de la propiedad de formato.
Para dar formato a las propiedades que admiten el formato condicional, establezca el tipo de instancia necesario en su 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
creará la entrada de la interfaz de usuario de formato condicional junto con el elemento de la interfaz de usuario de formato constante.
Definición del comportamiento del formato condicional
Defina cómo se va a aplicar el formato a los puntos de datos.
Mediante el objeto createDataViewWildcardSelector
declarado en powerbi-visuals-utils-dataviewutils
, especifique si el formato condicional se va a aplicar a las instancias, los totales o ambos. Para más información, consulte DataViewWildcard.
Realice los cambios siguientes en las propiedades a las que desee aplicar el formato condicional:
Reemplace el valor
selector
por la llamadadataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption)
.DataViewWildcardMatchingOption
define si el formato condicional se aplica a las instancias, los totales o ambos.Agregue la propiedad
altConstantValueSelector
con el valor previamente definido para la propiedadselector
.
Para dar formato a las propiedades que admiten el formato condicional, establezca el tipo de instancia necesario en su 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 }
}
}
}
);
// ...
}
Consideraciones y limitaciones
El formato condicional no se admite para los siguientes objetos visuales:
Objetos visuales basados en tablas
Objetos visuales basados en la matriz
Se recomienda no usar el formato condicional con series. Alternativamente, debe permitir que los clientes apliquen formato a cada serie de forma individual para facilitar la distinción visual de las series. La mayoría de los objetos visuales listos para su uso con series comparten este enfoque.