Adicionar um ícone de aviso de exibição ao visual
Em um visual do Power BI, um ícone de aviso de exibição pode notificar o usuário sobre um possível problema ou um erro. Exibir ícones de aviso pode ser útil em muitos casos, como:
Um visual de mapa pode exibir um ícone de aviso quando os valores estiverem fora do intervalo válido de latitude ou longitude.
Um visual de gráfico de pizza pode exibir um ícone de aviso ao exibir valores negativos que estão misturados com positivos.
Um gráfico cartesiano pode exibir um ícone de aviso quando valores infinitos são calculados. Por exemplo, se Y for zero, ao dividir X por Y, o resultado é infinito.
Quando o ícone é exibido, o usuário pode passar o mouse sobre ele para ver o título da mensagem de aviso.
Quando o usuário seleciona o ícone de aviso, uma mensagem que descreve o problema aparece em uma janela pop-up.
Criar um ícone de aviso
Você pode criar um ícone de aviso com uma mensagem personalizada para um visual personalizado. A decisão de gerar ou não o ícone de aviso cabe a você. Como esses exemplos demonstram, o visual continua a funcionar quando o ícone de aviso é exibido.
Adicionar uma chamada ao método update
Para adicionar um ícone de aviso de exibição ao seu visual, invoque o método displayWarningIcon
. Ele faz parte de IVisualHost
e é exposto usando powerbi-visuals-api
.
Adicione a seguinte importação ao seu arquivo:
import powerbiVisualsApi from "powerbi-visuals-api";
Depois de adicionar a importação, adicione uma condição que determine quando exibir o ícone de aviso. Use os exemplos deste artigo para exibir duas condições opcionais.
Exemplo 1: verificar a compatibilidade de idiomas
A localização é usada para exibir visuais no idioma nativo do cliente, o que é determinado de acordo com as configurações do sistema operacional.
Neste exemplo, o visual compara o idioma do visual, definido como inglês dos EUA, com o idioma do sistema operacional. Se os idiomas não corresponderem, o ícone de aviso será exibido.
if (this.locale != 'en-US') {
this.host.displayWarningIcon('Language inconsistency', 'This visual supports only US English. For the visual to work as expected, set your browser's language to US English.');
}
Exemplo 2: comparar as cores nas colunas adjacentes
Neste exemplo, o ícone de aviso de exibição aparece quando duas colunas próximas uma da outra têm a mesma cor.
O método getColumnColorByIndex
itera em todas as colunas. Se duas colunas adjacentes tiverem a mesma cor, um ícone de aviso será exibido.
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 < len-1; i++) {
const color1: string = getColumnColorByIndex(category, i, colorPalette);
const color2: string = getColumnColorByIndex(category, i+1, colorPalette);
if (color1 == color2) {
this.host.displayWarningIcon('Adjacent columns have the same color.', 'Columns that are next to each other have the same color. To change a column's color, use the data colors option in the Format tab.');
}
}
Considerações e limitações
Alguns erros e avisos não são causados pelo visual. Por exemplo, o erro Muitos valores. Não mostrando todos os dados é derivado do serviço do Power BI. Esses erros e avisos são propagados antes das chamadas do seu visual. Eles têm precedência sobre os erros que se originam do código do seu visual. Se ocorrer um erro ao carregar os dados, antes que o código do visual seja executado e a condição do ícone de aviso de exibição seja atendida, o visual exibirá esse erro em vez do erro do ícone de aviso de exibição.
O aviso de exibição é removido durante cada renderização do visual. Por exemplo, quando novos dados são arrastados para o visual. Após a renderização, o método
update()
do visual é invocado. Se o aviso visual for gerado com base em uma condição verificada no método de atualização, sempre que o visual for renderizado, se a condição for atendida, o visual exibirá o aviso novamente.O redimensionamento de um visual não afeta o ícone de aviso.
As seguintes limitações se referem ao texto do ícone de exibição:
O nome pode ter, no máximo, 70 caracteres.
O texto pode ter, no máximo, 2.000 caracteres.
O texto só é exibido como texto sem formatação.