Usare l'incorporamento a fasi
Le API e report.render
l'analisi powerbi.load
incorporata di Power BI possono migliorare l'esperienza utente finale offrendo agli sviluppatori maggiore flessibilità per l'incorporamento dei report in fase.
In genere, si carica un report incorporato usando powerbi.embed
:
let report = powerbi.embed(embedContainer, embedConfig);
Il report incorporato carica e esegue il rendering nell'interfaccia utente. L'utente finale visualizza quindi eventuali interazioni con il report sottoposto a rendering. Ad esempio, se si applica uno stato del filtro dei dati, l'utente finale visualizza l'effetto del filtro dei dati dopo il rendering del report.
Per nascondere queste interazioni dagli utenti finali, le powerbi.load
API e report.render
suddivideno il processo di incorporamento in fasi. La powerbi.load
funzione carica il report in modo da poter interagire con gli elementi prima che gli utenti finali visualizzino i risultati. La report.render
funzione visualizza quindi il report.
Caricamento
La powerbi.load
funzione carica il report ma non la esegue il rendering, quindi le interazioni possono verificarsi prima che l'utente finale visualizzi i risultati. Ad esempio, è possibile usare powerbi.load
con report.getPages
e quindi specificare quale pagina visualizzare l'utente finale. In alternativa, è possibile usare page.getVisuals
e quindi decidere quali oggetti visivi visualizzare o nascondere.
Come powerbi.embed
, la powerbi.load
funzione richiede un elemento HTML e un oggetto IEmbedConfiguration .
Al termine del carico, viene generato un loaded
evento.
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() {
...
});
Rendering
Se si usa powerbi.load
, è necessario chiamare la report.render
funzione nella funzione del loaded
gestore eventi, dopo aver eseguito il codice. Usare report.render
per continuare il rendering del report e visualizzare il report incorporato.
Un rendered
evento viene generato al termine del rendering del report.
report.on('loaded', function() {
report.render();
});
report.on('rendered', () => {
...
});
Per altre informazioni sulla gestione degli eventi, vedere Come gestire gli eventi.
Esempio
L'esempio di codice seguente carica un report, imposta filtri e quindi esegue il rendering del report filtrato.
// 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();
});
Limitazioni
L'incorporamento in più fasi può rallentare il rendering del report, quindi assicurarsi di usarlo correttamente e solo quando necessario.
È possibile chiamare le API seguenti dopo aver caricato il report e prima di chiamare report.render
:
Metodo | Azione |
---|---|
BookmarksManager.getBookmarks, BookmarksManager.apply | Ottenere e applicare segnalibri. L'acquisizione dei segnalibri non è supportata. |
Report.updateSettings | Aggiornare le impostazioni del report. |
Report.applyTheme | Applicare il tema del report. |
Report.getFilters, Report.setFilters, Report.removeFilters | Ottenere, impostare e rimuovere i filtri del report. |
Report.getPages | Ottenere le pagine del report. |
Page.setActive | Impostare la pagina del report attivo. |
Page.getFilters, Page.setFilters, Page.removeFilters | Ottenere, impostare e rimuovere i filtri di pagina. |
Page.getVisuals | Ottenere gli oggetti visivi della pagina. |
Visual.getFilters, Visual.setFilters, Visual.removeFilters | Ottenere, impostare e rimuovere filtri visivi. |
Visual.getSlicerState, Visual.setSlicerState | Ottenere e impostare lo stato del filtro dei dati visivo. |