Usar a inserção em fases
As APIs de powerbi.load
de análise integrada do Power BI e report.render
podem melhorar a experiência do usuário final, proporcionando aos desenvolvedores mais flexibilidade para a inserção de relatórios de fase.
Normalmente, você carrega um relatório inserido usando powerbi.embed
:
let report = powerbi.embed(embedContainer, embedConfig);
O relatório inserido carrega e renderiza na interface do usuário. Em seguida, o usuário final vê todas as interações com o relatório renderizado. Por exemplo, se você aplicar um estado de segmentação de dados, o usuário final verá a segmentação entrar em vigor após a renderização do relatório.
Para ocultar essas interações de usuários finais, as APIs powerbi.load
e report.render
dividem o processo de inserção em fases. A função powerbi.load
carrega o relatório para que você possa interagir com itens antes que os usuários finais vejam os resultados. A função report.render
exibe o relatório.
Carga
A função powerbi.load
carrega o relatório, mas não o renderiza, portanto, as interações podem acontecer antes que o usuário final veja os resultados. Por exemplo, você pode usar powerbi.load
com report.getPages
e, em seguida, especificar qual página mostrar ao usuário final. Ou você pode usar page.getVisuals
e decidir quais visuais mostrar ou ocultar.
Como
Quando a carga é concluída, um evento loaded
é acionado.
let config = {
...
};
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];
// Load the report in the container.
let report = powerbi.load(embedContainer, config);
report.on('loaded', function() {
...
});
Prestar
Se você usar powerbi.load
, deverá chamar a função report.render
na função de manipulador de eventos loaded
depois de executar seu código. Use report.render
para continuar a renderização do relatório e exibir o relatório inserido.
Um evento rendered
é acionado quando o relatório conclui a renderização.
report.on('loaded', function() {
report.render();
});
report.on('rendered', () => {
...
});
Para obter mais informações sobre como lidar com eventos, consulte Como lidar com eventos.
Exemplo
O exemplo de código a seguir carrega um relatório, define filtros e renderiza o relatório filtrado.
// Build the config object.
let config = {
type: 'report',
tokenType: TokenType.Embed,
accessToken: ...,
embedUrl: ...,
id: ...,
...
};
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];
// Load the report in the container.
let report = powerbi.load(embedContainer, config);
...
report.on('loaded', async () => {
await report.setFilters(filters);
report.render();
});
Considerações e limitações
A inserção em fases pode reduzir a velocidade da renderização do relatório, portanto, use-a corretamente e somente quando precisar.
Você pode chamar as seguintes APIs depois de carregar o relatório e antes de chamar report.render
:
Método | Ação |
---|---|
BookmarksManager.getBookmarks, BookmarksManager.apply | Obter e aplicar indicadores. Não há suporte para capturar indicadores. |
Report.updateSettings | Atualizar as configurações do relatório. |
Report.applyTheme | Aplique o tema do relatório. |
Report.getFilters, Report.setFilters, Report.removeFilters | Obter, definir e remover filtros de relatório. |
Report.getPages | Obtenha as páginas do relatório. |
page.setActive |
Defina a página de relatório ativo. |
Page.getFilters, Page.setFilters, Page.removeFilters | Obter, definir e remover filtros de página. |
Page.getVisuals | Obter visuais de página. |
Visual.getFilters, Visual.setFilters, Visual.removeFilters | Obter, definir e remover filtros visuais. |
Visual.getSlicerState, Visual.setSlicerState | Obter e definir o estado da segmentação visual. |
Conteúdo relacionado
- aprimorar a experiência dos usuários com indicadores
- Aplicar temas de relatório no Power BI
- filtros de relatório de controle de
- segmentações de relatório de controle de
- Obter páginas e visuais