Korzystanie z osadzania fazowego
Osadzona analiza usługi Power BI powerbi.load
i interfejsy API report.render
mogą poprawić środowisko użytkownika końcowego, zapewniając deweloperom większą elastyczność osadzania raportów fazowych.
Zwykle raport osadzony jest ładowany przy użyciu powerbi.embed
:
let report = powerbi.embed(embedContainer, embedConfig);
Osadzony raport ładuje i renderuje w interfejsie użytkownika. Następnie użytkownik końcowy widzi wszelkie interakcje z renderowanym raportem. Jeśli na przykład zastosujesz stan fragmentatora, użytkownik końcowy zobaczy, że fragmentator zostanie zastosowany po renderowaniu raportu.
Aby ukryć te interakcje przed użytkownikami końcowymi, interfejsy API powerbi.load
i report.render
dzielą proces osadzania na fazy. Funkcja powerbi.load
ładuje raport, aby umożliwić interakcję z elementami, zanim użytkownicy końcowi zobaczą wyniki. Następnie funkcja report.render
wyświetla raport.
Ładunek
Funkcja powerbi.load
ładuje raport, ale go nie renderuje, więc interakcje mogą wystąpić przed wyświetleniem wyników przez użytkownika końcowego. Na przykład możesz użyć powerbi.load
z report.getPages
, a następnie określić, która strona ma być wyświetlana użytkownikowi końcowemu. Możesz też użyć page.getVisuals
, a następnie zdecydować, które wizualizacje mają być wyświetlane lub ukrywane.
Podobnie jak powerbi.embed
, funkcja powerbi.load
wymaga elementu HTML i obiektu IEmbedConfiguration.
Po zakończeniu ładowania zostanie wyzwolony loaded
zdarzenie.
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() {
...
});
Renderować
Jeśli używasz powerbi.load
, należy wywołać funkcję report.render
w funkcji obsługi zdarzeń loaded
po uruchomieniu kodu. Użyj report.render
, aby kontynuować renderowanie raportu i wyświetlić osadzony raport.
Zdarzenie rendered
jest uruchamiane po zakończeniu renderowania raportu.
report.on('loaded', function() {
report.render();
});
report.on('rendered', () => {
...
});
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Jak obsługiwać zdarzenia.
Przykład
Poniższy przykład kodu ładuje raport, ustawia filtry, a następnie renderuje filtrowany raport.
// 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();
});
Zagadnienia i ograniczenia
Osadzanie etapowe może spowalniać renderowanie raportów, dlatego należy używać go poprawnie i tylko wtedy, gdy jest to potrzebne.
Następujące interfejsy API można wywołać po załadowaniu raportu i przed wywołaniem report.render
:
Metoda | Akcja |
---|---|
BookmarksManager.getBookmarks, BookmarksManager.apply | Pobieranie i stosowanie zakładek. Przechwytywanie zakładek nie jest obsługiwane. |
Report.updateSettings | Aktualizowanie ustawień raportu. |
Report.applyTheme | Zastosuj motyw raportu. |
Report.getFilters, Report.setFilters, Report.removeFilters | Pobieranie, ustawianie i usuwanie filtrów raportów. |
Report.getPages | Pobierz strony raportu. |
Page.setActive | Ustaw aktywną stronę raportu. |
Page.getFilters, Page.setFilters, Page.removeFilters | Pobieranie, ustawianie i usuwanie filtrów stron. |
Page.getVisuals | Pobieranie wizualizacji strony. |
Visual.getFilters, Visual.setFilters, Visual.removeFilters | Pobieranie, ustawianie i usuwanie filtrów wizualizacji. |
Visual.getSlicerState, Visual.setSlicerState | Pobieranie i ustawianie stanu fragmentatora wizualizacji. |
Powiązana zawartość
- ulepszanie środowiska użytkowników za pomocą zakładek
- stosowanie motywów raportów w usłudze Power BI
- filtry raportów kontroli
- fragmentatory raportów kontroli
- Pobieranie stron i wizualizacji