Verwenden der phasenweisen Einbettung
Die eingebetteten Power BI-Analysen powerbi.load
und report.render
-APIs können die Endbenutzererfahrung verbessern, indem Entwickler mehr Flexibilität beim Einbetten von Phasenberichten bieten.
Normalerweise laden Sie einen eingebetteten Bericht mithilfe von powerbi.embed
:
let report = powerbi.embed(embedContainer, embedConfig);
Der eingebettete Bericht wird in der Benutzeroberfläche geladen und gerendert. Der Endbenutzer sieht dann alle Interaktionen mit dem gerenderten Bericht. Wenn Sie z. B. einen Datenschnittstatus anwenden, sieht der Endbenutzer, dass der Datenschnitt nach dem Rendern des Berichts wirksam wird.
Um diese Interaktionen von Endbenutzern auszublenden, unterteilen die powerbi.load
- und report.render
-APIs den Einbettungsprozess in Phasen. 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.
Last
Die powerbi.load
-Funktion lädt den Bericht, rendert ihn jedoch nicht, sodass Interaktionen auftreten können, bevor der Endbenutzer die Ergebnisse sieht. Sie können z. B. powerbi.load
mit report.getPages
verwenden und dann angeben, auf welcher Seite der Endbenutzer angezeigt werden soll. Oder Sie können page.getVisuals
verwenden und dann entscheiden, welche Visuellen ein- oder ausgeblendet werden sollen.
Wie powerbi.embed
erfordert die powerbi.load
-Funktion ein HTML-Element und ein IEmbedConfiguration-Objekt.
Nach Abschluss des Ladevorgangs 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() {
...
});
Erbringen
Wenn Sie powerbi.load
verwenden, müssen Sie die report.render
-Funktion für die loaded
Ereignishandlerfunktion aufrufen, nachdem Sie den 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();
});
Überlegungen und Einschränkungen
Die phasenweise Einbettung kann das Rendern von Berichten verlangsamen. Achten Sie daher darauf, es korrekt und nur dann zu verwenden, wenn Sie es benötigen.
Sie können die folgenden APIs aufrufen, nachdem Sie den Bericht geladen haben, und bevor Sie report.render
aufrufen:
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 visueller Seiten. |
Visual.getFilters, Visual.setFilters, Visual.removeFilters | Abrufen, Festlegen und Entfernen visueller Filter. |
Visual.getSlicerState, Visual.setSlicerState | Abrufen und Festlegen des visuellen Datenschnittzustands. |