Verwenden von gestaffelter Einbettung
Die eingebetteten Power BI-Analysen powerbi.load
und report.render
-APIs können die Endbenutzererfahrung verbessern, indem Sie Entwicklern mehr Flexibilität beim Einbetten von Phasenberichten bieten.
Normalerweise laden Sie einen eingebetteten Bericht mit powerbi.embed
:
let report = powerbi.embed(embedContainer, embedConfig);
Der eingebettete Bericht lädt und rendert auf der Benutzeroberfläche. Der Endbenutzer sieht dann alle Interaktionen mit dem gerenderten Bericht. Wenn Sie beispielsweise einen Datenschnittstatus anwenden, sieht der Endbenutzer, dass der Datenschnitt wirksam wird, nachdem der Bericht gerendert wurde.
Um diese Interaktionen vor Endbenutzern auszublenden, teilen die powerbi.load
APIs und report.render
den Einbettungsprozess in Phasen auf. Die powerbi.load
Funktion lädt den Bericht, damit Sie mit Elementen interagieren können, bevor Endbenutzer die Ergebnisse sehen. Die report.render
Funktion zeigt dann den Bericht an.
Laden
Die powerbi.load
Funktion lädt den Bericht, rendert ihn jedoch nicht, sodass Interaktionen erfolgen können, bevor der Endbenutzer die Ergebnisse sieht. Sie können z. B. mit report.getPages
verwenden powerbi.load
und dann angeben, welche Seite dem Endbenutzer angezeigt werden soll. Alternativ können Sie verwenden page.getVisuals
und dann entscheiden, welche Visuals ein- oder ausgeblendet werden sollen.
Wie powerbi.embed
erfordert die powerbi.load
Funktion ein HTML-Element und ein IEmbedConfiguration-Objekt .
Wenn der Ladevorgang abgeschlossen ist, wird ein loaded
-Ereignis ausgelöst.
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() {
...
});
Rendern
Wenn Sie verwenden powerbi.load
, müssen Sie die Funktion für die report.render
loaded
Ereignishandlerfunktion aufrufen, nachdem Sie Ihren Code ausgeführt haben. Verwenden Sie report.render
, um das Rendern des Berichts fortzusetzen und den eingebetteten Bericht anzuzeigen.
Ein rendered
Ereignis wird ausgelöst, wenn das Rendern des Berichts abgeschlossen ist.
report.on('loaded', function() {
report.render();
});
report.on('rendered', () => {
...
});
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Beispiel
Im folgenden Codebeispiel wird ein Bericht geladen, Filter festgelegt und anschließend der gefilterte Bericht gerendert.
// 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();
});
Einschränkungen
Die phasenweise Einbettung kann das Rendern von Berichten verlangsamen. Achten Sie also darauf, dass Sie es ordnungsgemäß und nur dann verwenden, wenn Sie sie benötigen.
Sie können die folgenden APIs aufrufen, nachdem Sie den Bericht geladen haben und bevor Sie aufrufen report.render
:
Methode | Aktion |
---|---|
BookmarksManager.getBookmarks, BookmarksManager.apply | Abrufen und Anwenden von Lesezeichen. Das Erfassen von Lesezeichen wird nicht unterstützt. |
Report.updateSettings | Aktualisieren der Berichtseinstellungen. |
Report.applyTheme | Wenden Sie das Berichtsdesign an. |
Report.getFilters, Report.setFilters, Report.removeFilters | Abrufen, Festlegen und Entfernen von Berichtsfiltern. |
Report.getPages | Rufen Sie die Berichtsseiten ab. |
Page.setActive | Legen Sie die aktive Berichtsseite fest. |
Page.getFilters, Page.setFilters, Page.removeFilters | Abrufen, Festlegen und Entfernen von Seitenfiltern. |
Page.getVisuals | Abrufen von Seitenvisuals. |
Visual.getFilters, Visual.setFilters, Visual.removeFilters | Abrufen, Festlegen und Entfernen von visuellen Filtern. |
Visual.getSlicerState, Visual.setSlicerState | Abrufen und Festlegen des visuellen Slicerzustands. |