向视觉对象添加显示警告图标

  • 版本 :2023.1(当前版本)

向视觉对象添加显示警告图标

在 Power BI 视觉对象中,显示警告图标可以通知用户可能的问题或错误。 在许多情况下,显示警告图标可能很有用,下面是一些示例:

  • 当值超出纬度或经度有效范围时,地图视觉对象可以显示警告图标。

  • 饼图视觉对象在显示与正值混合的负值时可以显示警告图标。

  • 计算无穷大值时,笛卡尔图可以显示警告图标。 例如,如果 Y 为零,当 X 除以 Y 时,结果为无穷大 。

当图标出现时,用户可以将鼠标悬停在该图标上,以查看警告消息的标题。

A screenshot showing a warning icon in a Power B I visual.

当用户选择警告图标时,弹出窗口中会显示一条描述问题的消息。

A screenshot showing a warning message triggered by selecting a warning icon in a Power B I visual.

创建警告图标

可以创建一个警告图标,使其包含针对正在设计的视觉对象的自定义消息。 是否引发警告图标由你决定。 如以下示例所示,当显示警告图标时,视觉对象将继续运行。

添加对更新方法的调用

要将显示警告图标添加到视觉对象上,首先需要调用 displayWarningIcon 方法。 该方法是 IVisualHost 的一部分,使用 powerbi-visuals-api 公开。

将以下导入添加到文件:

Javascript复制

import powerbiVisualsApi from "powerbi-visuals-api"; 

添加导入后,需要添加一个条件,用于确定何时显示警告图标。 使用以下示例查看两个可选条件。 这些示例的完整代码可在 barChart.ts 中找到,该文件是 PowerBI-visuals-sampleBarChart 存储库的一部分。

示例 1 - 检查语言兼容性

本地化用于显示客户母语的视觉对象,该语言取决于操作系统的设置。

在此示例中,视觉对象将视觉对象的语言(设置为美式英语)与操作系统的语言进行比较。 如果语言不匹配,将显示警告图标。

Javascript复制

if (this.locale != 'en-US') { 

this.host.displayWarningIcon('Language mismatch', 'This visual does not support languages other than english. Please use US english as your browser language.');

}

A screenshot showing the language mismatch warning message.

示例 2 - 比较相邻列中的颜色

在此示例中,当相邻的两列具有相同的颜色时,将出现显示警告图标。

getColumnColorByIndex 方法循环访问所有列。 如果两个相邻列具有相同的颜色,则会显示警告图标。

Javascript复制

let category = options.dataViews[0].categorical.categories[0]; 

let dataValue = options.dataViews[0].categorical.values[0];

let colorPalette = this.host.colorPalette;

for (let i = 0, len = Math.max(category.values.length, dataValue.values.length); i -1; i++) {

const color1: string = getColumnColorByIndex(category, i, colorPalette);

const color2: string = getColumnColorByIndex(category, i+1, colorPalette);

if (color1 == color2) {

this.host.displayWarningIcon('same colors', 'there are two neighbor columns with the same color. please use the data color property to change it.');

}

}

注意事项

  • 不是由视觉对象导致的错误或警告(例如派生自 Power BI 服务的“值太多,未显示所有数据”错误)在视觉对象调用之前传播,并优先于源自于你的视觉对象代码中的错误。 如果在加载数据时出现错误,则在运行该视觉对象的代码并满足显示警告图标条件之前,将显示该错误,而不显示显示警告图标错误。

  • 在每次视觉对象呈现时(例如,将新数据拖动到视觉对象中时),都会清除显示警告。 呈现视觉对象后,将调用视觉对象的 update() 方法。 因此,如果基于在更新方法中检查的条件引发视觉对象的警告,则每次呈现该视觉对象时,如果满足条件,将再次显示该警告。

  • 调整视觉对象的大小不会影响警告图标。

注意事项和限制

以下限制是指显示图标文本:

  • 标题的最大长度为 70 个字符

  • 文本的最大长度为 2000 个字符

  • 文本仅显示为纯文本