Aprimorar a experiência dos usuários com indicadores
Os indicadores de relatório no Power BI permitem capturar o estado atual de uma página de relatório inserida, incluindo todos os filtros e o estado de seus visuais. Ao abrir o relatório posteriormente, você pode selecionar um indicador para restaurar o relatório para o estado salvo. Os desenvolvedores podem controlar a experiência do usuário usando as APIs de Cliente do Power BI para capturar e aplicar indicadores.
Um indicador salvo pode ser um indicador que foi salvo como parte de um relatório ou um indicador que foi capturado como um estado em tempo real de um relatório. Se você aplicar um indicador salvo ao carregar um relatório, poderá especificar o indicador a ser usado fornecendo o nome do indicador ou seu estado. Se você fornecer um indicador por nome, seu relatório precisará conter um indicador salvo com esse mesmo nome.
Este artigo explica as diferentes configurações de API necessárias para inserir relatórios que dão suporte a indicadores.
Observação
Nos relatórios inseridos para sua organização, os consumidores de relatório criam indicadores pessoais capturando o estado do relatório e retornando rapidamente a esse estado selecionando o indicador. Confira Indicadores pessoais para obter mais informações.
Para obter informações sobre como criar uma experiência semelhante em relatórios que você inseriu para seus clientes, consulte a demonstração de exibição de relatório de captura no playground de análise integrada do Power BI.
Para obter mais informações sobre como usar indicadores no Power BI, consulte Criar indicadores no Power BI Desktop.
Para obter informações sobre como usar indicadores pessoais ao inserir o Power BI, consulte Indicadores pessoais.
Como usar indicadores de relatório
As seções a seguir mostram como usar as APIs de Cliente do Power BI para trabalhar com indicadores de relatório.
Gerenciar indicadores de um relatório
Para gerenciar os indicadores de um relatório, use a bookmarksManager
propriedade de uma instância de relatório inserida.
A classe BookmarksManager tem os seguintes métodos:
getBookmarks
– Retorna uma lista de indicadores salvos associados ao relatório.apply
– Aplica-se pelo nome de um indicador salvo anteriormente ao relatório.capture
– Captura e retorna uma cadeia de caracteres de serialização base64, que representa o estado atual do relatório.applyState
Aplica um estado de serialização base64 capturado anteriormente de um indicador ao relatório.play
– Controla o modo de apresentação de apresentação de slides para os indicadores do relatório.
Acessar um indicador de relatório
Para acessar um indicador individual, use o getBookmarks
método para acessar uma lista de ReportBookmark
objetos.
A ReportBookmark
classe tem as seguintes propriedades:
name
- O identificador exclusivo do indicador de relatório.displayName
- O nome de exibição do indicador de relatório, que aparece no painel Indicadores .state
- Uma serialização base64 do estado do indicador de relatório. Você pode salvá-lo e aplicá-lo a um relatório com obookmarksManager.applyState
método .children
- Uma lista deReportBookmark
objetos que representam um grupo de indicadores de relatório, se existir.
Usar as APIs de indicadores de relatório
Em um relatório inserido, os desenvolvedores podem:
- Obtenha uma lista de indicadores de relatório salvos.
- Aplique um indicador salvo por nome na carga do relatório ou durante uma sessão.
- Capture e obtenha um modo de exibição atual como um objeto de indicador.
- Aplicar um estado de indicador capturado na carga do relatório ou durante uma sessão
- Execute lógica adicional quando um indicador de relatório for aplicado.
- Mostrar ou ocultar o painel Indicadores.
- Insira ou saia do modo de apresentação de slides dos indicadores.
Obter uma lista de indicadores de relatório salvos
Para obter a lista de indicadores salvos associados a um relatório, chame o getBookmarks
método do objeto BookmarksManager retornado pela propriedade do bookmarksManager
relatório.
O getBookmarks
método é definido da seguinte maneira:
getBookmarks(): Promise<models.IReportBookmark[]>
Por exemplo:
let bookmarks = await report.bookmarksManager.getBookmarks();
Aplicar um indicador salvo por nome no carregamento do relatório ou durante uma sessão
Para aplicar um indicador salvo anteriormente a um relatório usando seu nome de indicador, chame o apply
método do objeto BookmarksManager retornado pela propriedade de bookmarksManager
um relatório.
Para obter mais informações, consulte Definir configurações de relatório.
O apply
método é definido da seguinte maneira:
apply(bookmarkName: string): Promise<void>
Por exemplo:
await report.bookmarksManager.apply("Bookmark1234");
Capturar e obter uma exibição atual como um objeto de indicador
Para capturar o estado atual de um relatório como uma cadeia de caracteres base64, chame o capture
método de um objeto BookmarksManager . O capture
método retorna um IReportBookmark
objeto , que representa um indicador que não é salvo em um relatório específico. Use a IReportBookmark.state
propriedade para retornar a cadeia de caracteres base64 que identifica o estado do indicador, que você pode aplicar posteriormente a um relatório durante o tempo de carregamento ou o tempo de execução.
O capture
método é definido da seguinte maneira:
capture(options?:ICaptureBookmarkOptions): Promise<models.IReportBookmark>
Por exemplo:
let capturedBookmark = await report.bookmarksManager.capture();
Opções de captura de indicador
Você também pode passar um ICaptureBookmarkOptions
objeto para o capture
método .
interface ICaptureBookmarkOptions {
allPages?: boolean;
personalizeVisuals?: boolean;
}
allPages
- Por padrão, o estado do indicador capturado salvará apenas o estado da página atual. Para capturar o estado de todas as páginas, chamecapture
o método comallPages
atrue
opção definida como .personalizeVisuals
– Para capturar o estado atual com visuais personalizados, chame ocapture
método com a opçãopersonalizeVisuals
definidatrue
como .
Por exemplo, o código a seguir captura o estado de todas as páginas, incluindo os visuais personalizados:
let capturedBookmark = await report.bookmarksManager.capture({
allPages: true,
personalizeVisuals: true
});
Aplicar um estado de indicador capturado na carga do relatório ou durante uma sessão
Para aplicar um estado de indicador capturado anteriormente a um relatório, use o applyState
método de um objeto BookmarksManager .
Para obter mais informações, consulte Definir configurações de relatório.
O applyState
método é definido da seguinte maneira:
applyState(state: string): Promise<void>
Por exemplo:
await report.bookmarksManager.applyState(capturedBookmark.state);
Executar lógica adicional quando um indicador de relatório é aplicado
Para determinar quando um indicador de relatório foi aplicado, ouça o bookmarkApplied
evento chamando o on
método do objeto de relatório .
Por exemplo:
report.on("bookmarkApplied", (event) => {
console.log(event.detail.name);
});
Mostrar ou ocultar o painel Indicadores
Para mostrar ou ocultar o painel Indicadores do Power BI, atualize a panes
propriedade das configurações do relatório.
Mostrar o painel Indicadores
let embedConfig = {
...
panes: {
bookmarks: {
visible: true
}
}
};
Ocultar o painel Indicadores
let embedConfig = {
...
panes: {
bookmarks: {
visible: false
}
}
};
Para obter informações sobre como atualizar as configurações de relatório, consulte Definir configurações de relatório.
Entrar ou sair do modo de apresentação de slides de indicadores
Para controlar o modo de apresentação de apresentação de slides para os indicadores de um relatório, chame o play
método de um objeto BookmarksManager . Para obter mais informações, consulte Indicadores como uma apresentação de slides.
O play
método é definido da seguinte maneira:
play(playMode: models.BookmarksPlayMode): Promise<void>
Observação
Antes de entrar no modo de apresentação de slides de indicadores, verifique se há pelo menos um indicador no relatório com a API getBookmarks.
Insira o modo de apresentação de apresentação de slides
await report.bookmarksManager.play(models.BookmarksPlayMode.Presentation);
Sair do modo de apresentação de apresentação de apresentação de slides
await report.bookmarksManager.play(models.BookmarksPlayMode.Off);
Limitações
Quando você usa a API de indicadores, determinadas alterações no relatório podem causar um erro ou um resultado inesperado. Um exemplo disso é remover filtros de relatório do relatório. Para evitar erros, os cartões de filtro correspondentes devem estar presentes. Em vez de remover os filtros, defina seus valores como
All
. Se você não souber quais filtros foram excluídos ou alterados, recapture o indicador depois de aplicar as alterações ao relatório.Filtros como em filtros de carga criados pela sessão de inserção ou adicionados pela operação de adição de filtros de atualização são capturados no estado do indicador, mas serão aplicados somente na sessão atual. Para superar essa limitação, o filtro deve ser salvo no relatório com o
All
valor e modificado na sessão de inserção usando a operação de atualização de filtros de atualização.