添加条件格式
- 版本 :2023.1(当前版本)
添加条件格式
条件格式允许报表创建者根据数值指定在报表中显示颜色的方式。
本文介绍如何将条件格式功能添加到 Power BI 视觉对象。
条件格式只能应用于以下属性类型:
颜色
文本
图标
Web URL
向项目添加条件格式
本部分说明如何向现有 Power BI 视觉对象添加条件格式。 本文中的示例代码基于 SampleBarChart 视觉对象。 可以检查 barChart.ts 中的源代码。
在“格式”窗格中添加条件颜色格式条目
在本部分中,你将了解如何在“格式”窗格中向数据点添加条件颜色格式条目。
你将在
VisualObjectInstance
中使用propertyInstanceKind
数组,该数组由powerbi-visuals-api
公开。 第一步是验证文件是否包含此导入:TypeScript复制
import powerbiVisualsApi from "powerbi-visuals-api";
若要指定适当的格式类型(Constant、ConstantOrRule 或 Rule),请使用
VisualEnumerationInstanceKinds
枚举。 将以下导入添加到文件:TypeScript复制
import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
设置格式设置属性实例类型
getFormattingModel API 方法
enumerateObjectInstances API 方法 - 已弃用
若要对支持条件格式设置的属性进行格式设置,请在其 TypeScript复制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 //
},
value: { value: barDataPoint.color }
}
}
}
); // ...
}
VisualEnumerationInstanceKinds.ConstantOrRule
将创建条件格式 UI 条目和常量格式 UI 元素。
定义条件格式的行为方式
定义格式应用于数据点的方式。
使用 powerbi-visuals-utils-dataviewutils
下声明的 createDataViewWildcardSelector
来指定是否将条件格式应用于实例和/或总计。 有关详细信息,请参阅 DataViewWildcard。
对要应用条件格式设置的属性进行以下更改:
使用
dataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption)
调用替换值selector
。DataViewWildcardMatchingOption
定义是否将条件格式应用于实例和/或总计。添加具有之前为
selector
属性定义的值的altConstantValueSelector
属性。getFormattingModel API 方法
enumerateObjectInstances API 方法 - 已弃用
若要对支持条件格式设置的属性进行格式设置,请在其 TypeScript复制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 }
}
}
}
); // ...
}
注意事项和限制
以下视觉对象不支持条件格式:
基于表的视觉对象
基于矩阵的视觉对象
建议不要将条件格式用于系列。 相反,应允许客户单独设置每个系列的格式,从而使其易于直观区分系列。 大多数具有系列的现成视觉对象都采用这种方法。