Konfigurieren von Berichteinstellungen
Mithilfe der Power BI-Client-APIs können Sie Power BI-Analysen in Ihre Anwendung einbetten. Wenn Sie diese clientseitige Bibliothek zum Einbetten eines Power BI-Berichts verwenden, stellen Sie der API Informationen zu diesem Bericht bereit.
Sie können ein Konfigurationsobjekt verwenden, um Informationen zu Ihrem Power BI-Bericht zu speichern. Wenn Sie den Bericht einbetten, übergeben Sie dieses Objekt dann an die API.
Sie können der API nicht nur Zugriff auf den Bericht gewähren, sie können auch das Konfigurationsobjekt verwenden, um die Darstellung und das Verhalten Des Berichts anzupassen. Für instance können Sie die Filtersichtbarkeit, den Navigationszugriff und die Positionseinstellungen im Konfigurationsobjekt anpassen.
In den folgenden Abschnitten wird erläutert, wie Sie Power BI-Inhalte einbetten und konfigurieren.
Bereitstellen von Konfigurationsinformationen
Die IReportLoadConfiguration-Schnittstelle zeigt Eigenschaften an, die ein Konfigurationsobjekt für die Power BI-Client-APIs zu einem Bericht bereitstellen kann:
interface IReportLoadConfiguration {
embedUrl: string;
accessToken: string;
id: string;
groupId?: string;
settings?: ISettings;
bookmark?: IApplyBookmarkRequest;
pageName?: string;
filters?: ReportLevelFilters[];
slicers?: ISlicer[];
theme?: IReportTheme;
contrastMode?: ContrastMode;
datasetBinding?: IDatasetBinding;
permissions?: Permissions;
viewMode?: ViewMode;
tokenType?: TokenType;
}
Eine Erläuterung der erforderlichen Parameter dieser Schnittstelle und Codebeispiele zum Einbetten eines Berichts finden Sie unter Einbetten eines Berichts .
Einstellungen anpassen
In den folgenden Abschnitten wird beschrieben, wie Sie die settings
-Eigenschaft verwenden können, um die Darstellung und das Verhalten Ihres eingebetteten Power BI-Berichts anzupassen.
Verwenden Sie report.updateSettings
die -Methode, um die Berichtseinstellungen zu aktualisieren, wenn der Bericht bereits geladen ist. Weitere Informationen finden Sie unter Aktualisieren von Berichtseinstellungen zur Laufzeit.
Bereiche
Steuern Sie die Darstellung aller Bereiche in Ihrem Power BI-Bericht mit einer einzelnen panes
Eigenschaft, wie im folgenden Code gezeigt:
let embedConfig = {
...
settings: {
panes: {
bookmarks: {
visible: true
},
fields: {
expanded: false
},
filters: {
expanded: false,
visible: true
},
pageNavigation: {
visible: false
},
selection: {
visible: true
},
syncSlicers: {
visible: true
},
visualizations: {
expanded: false
}
}
}
};
In der folgenden Tabelle können Sie sehen, welche Werte die einzelnen panes
Eigenschaften unterstützen:
Eigenschaft | Sichtbar | Expanded |
---|---|---|
bookmarks |
✔ | ❌ |
fields |
✔ | ✔ |
filters |
✔ | ✔ |
pageNavigation |
✔ | ❌ |
selection |
✔ | ❌ |
syncSlicers |
✔ | ❌ |
visualizations |
✔ | ✔ |
Filter (Bereich)
Standardmäßig ist der Filterbereich sichtbar. Wenn Sie diesen Bereich ausblenden möchten, verwenden Sie die filterPaneEnabled
-Eigenschaft, wie im folgenden Code gezeigt:
let embedConfig = {
...
settings: {
filterPaneEnabled: false
}
};
Hinweis
Die panes-Eigenschaft ersetzt die filterPaneEnabled
-Eigenschaft. Um die Abwärtskompatibilität zu gewährleisten, ist die filterPaneEnabled
-Eigenschaft weiterhin vorhanden. Sie sollten jedoch vermeiden, diese beiden Eigenschaften zusammen zu verwenden.
Seitennavigationsbereich
Standardmäßig sind die Seitennavigationspfeile in eingebetteten Berichten sichtbar. Um diese Pfeile auszublenden, verwenden Sie die navContentPaneEnabled
-Eigenschaft, wie im folgenden Code gezeigt:
let embedConfig = {
...
settings: {
navContentPaneEnabled: false
}
};
Hinweis
Die panes-Eigenschaft ersetzt die navContentPaneEnabled
-Eigenschaft. Um die Abwärtskompatibilität zu gewährleisten, ist die navContentPaneEnabled
-Eigenschaft weiterhin vorhanden. Sie sollten jedoch vermeiden, diese beiden Eigenschaften zusammen zu verwenden.
Der Seitennavigationsbereich wird am unteren Rand des Berichts angezeigt, um den neuen vertikalen Seitenbereich zu verwenden, können Sie die position
-Eigenschaft festlegen:
let embedConfig = {
...
settings: {
panes:{
pageNavigation: {
visible: true,
position: PagesPosition.Left
}
}
}
};
Hinweis
Sie können die Position des Seitennavigationsbereichs updateSettings
mit nicht ändern.
Bars
Legen Sie die Sichtbarkeit der Aktionsleiste und status Leiste mithilfe der bars
-Eigenschaft fest.
Aktionsleiste
Der folgende Code macht die Aktionsleiste sichtbar:
let embedConfig = {
...
settings: {
bars: {
actionBar: {
visible: true
}
}
}
};
Alternativ kann im Ansichtsmodus auch der URL-Parameter verwendet werden actionBarEnabled
:
let embedConfig = {
...
embedUrl: embedUrl + "&actionBarEnabled=true"
};
Hinweis
Im Ansichtsmodus wird die Aktionsleiste nur für die Einbettung für Ihr organization Szenario unterstützt.
Für die Aktionsleiste im Ansichtsmodus wird empfohlen, die Berechtigung für Ihre Azure AD-Anwendung zu aktivieren UserState.ReadWrite.All
.
Diese Berechtigung ist erforderlich, damit Endbenutzer den Bericht ihren Favoriten hinzufügen und persönliche Lesezeichen und persistente Filter aktivieren können.
Statusleiste
Die status Leiste enthält den Canvas-Zoomcontroller, der die Möglichkeit zum Zoomen der Canvas bietet.
Der folgende Code macht die status Leiste sichtbar:
let embedConfig = {
...
settings: {
bars: {
statusBar: {
visible: true
}
}
}
};
Gebietsschemaeinstellungen
Verwenden Sie die localeSettings
-Eigenschaft, um die Sprache und die Formatierung des eingebetteten Berichts anzugeben:
Die language
-Eigenschaft in localeSettings
besteht aus zwei Teilen von jeweils zwei Buchstaben, die durch einen Bindestrich getrennt sind:
- language definiert die Sprache, die Power BI für die Lokalisierung verwendet. Beispiele für Sprachen sind en (Englisch), es (Spanisch) und tr (Türkisch).
- Gebietsschema definiert die Textformatierung, die Power BI für Datumsangaben, Währungen und andere verwandte Inhalte verwendet. Beispiele für Gebietsschemas sind US (Englisch), ES (Spanien) und TR (Türkiye).
Eine Liste der verfügbaren Sprachen und Regionen finden Sie unter Unterstützte Sprachen .
Der folgende Code weist diesen localeSettings
einen bestimmten Wert zu:
let embedConfig = {
...
settings: {
localeSettings: {
language: "en-us"
}
}
};
Hinweis
Gebietsschemaeinstellungen können nach dem Laden des Berichts nicht mehr geändert werden. Um die Gebietsschemaeinstellungen des Berichts zu ändern, setzen Sie den iframe zurück, indem Sie aufrufen powerbi.reset(element)
, und betten Sie den Bericht dann erneut ein.
Transparenter Hintergrund
Standardmäßig ist der Hintergrund des eingebetteten Inhalts weiß mit grauen Rändern. Wenn Sie möchten, können Sie dem eingebetteten Inhalt einen transparenten Hintergrund verleihen. Anschließend können Sie den gewünschten Stil auf das HTML-Element div
anwenden, das den eingebetteten Inhalt enthält. Die div
Formatierung des Elements wird dann sichtbar.
Verwenden Sie diesen Code, um den Hintergrund des eingebetteten Inhalts transparent zu machen:
let embedConfig = {
...
settings: {
background: models.BackgroundType.Transparent
}
};
Linkklickverhalten
Sie können das Verhalten eines Links in einer Tabelle oder in vordefinierten Visuals der Matrix steuern. Standardmäßig öffnet der Link ein neues Fenster.
Die verfügbaren Verhaltensmodi sind unten aufgeführt:
enum HyperlinkClickBehavior {
Navigate,
NavigateAndRaiseEvent,
RaiseEvent
}
Navigate
– Die URL wird in einen neuen Browserkontext geladen.NavigateAndRaiseEvent
– Die URL wird in einen neuen Browserkontext geladen und löst ein Ereignis ausdataHyperlinkClicked
.RaiseEvent
– Verhindert das Standardverhalten von URL-Klick und AuslösendataHyperlinkClicked
eines Ereignisses.
Verwenden Sie diesen Code, um das Verhalten von Links zum Auslösen eines Ereignisses zu ändern:
let embedConfig = {
...
settings: {
hyperlinkClickBehavior: HyperlinkClickBehavior.RaiseEvent
}
};
Ein dataHyperlinkClicked
-Ereignis wird ausgelöst, wenn auf einen Link auf eine vordefinierte Tabelle oder Matrix-Visuals geklickt wird und das Verhalten entweder NavigateAndRaiseEvent
oder RaiseEvent
lautet.
report.on('dataHyperlinkClicked', () => {
...
});
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Visual gerenderte Ereignisse
Sie können ein Ereignis für jedes gerenderte Visual lauschen. Standardmäßig sind die visual gerenderten Ereignisse deaktiviert.
Verwenden Sie diesen Code, um die visualRendered
Ereignisse auszulösen:
let embedConfig = {
...
settings: {
visualRenderedEvents: true
}
};
Ein visualRendered
Ereignis wird ausgelöst, wenn ein Visual gerendert und in visualRenderedEvents
den Berichtseinstellungen aktiviert ist.
report.on('visualRendered', () => {
...
});
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Hinweis
Da Visuals aufgrund von Benutzerinteraktionen möglicherweise gerendert werden, wird empfohlen, dieses Ereignis nur bei Bedarf zu aktivieren.
Fehlermeldungen
Wenn Sie benutzerdefinierte Fehlermeldungen in eingebetteten Berichten anzeigen möchten, verwenden Sie die hideErrors
-Eigenschaft, um die in Power BI eingebetteten Standardfehlermeldungen auszublenden. Ihr Code kann dann Fehlerereignisse so behandeln, dass sie ihrem App-Design entspricht. Weitere Informationen zum Überschreiben von Standardfehlern finden Sie unter Überschreiben von Standardfehlern .
Verwenden Sie diesen Code, um Standardfehlermeldungen auszublenden:
let embedConfig = {
...
settings: {
hideErrors: true
}
};
Optionen anpassen
In den folgenden Abschnitten wird beschrieben, wie Sie zusätzliche Eigenschaften verwenden können, um die Darstellung und das Verhalten Ihres eingebetteten Power BI-Berichts weiter anzupassen.
Standardseite
Sie können steuern, welche Seite Ihres eingebetteten Berichts zunächst angezeigt wird. Standardmäßig ist die erste Seite die Seite, die Sie zuletzt geändert haben. Dies war die aktive Seite beim letzten Speichern des Berichts. Sie können dieses Verhalten überschreiben, indem Sie die pageName
-Eigenschaft verwenden und sie mit dem Namen der Seite angeben, die Sie anzeigen möchten. Wenn jedoch keine Seite mit diesem Namen in Power BI vorhanden ist, schlägt die Anforderung zum Öffnen fehl.
Der folgende Code zeigt, wie Sie Ihre App so konfigurieren, dass eine bestimmte Seite angezeigt wird:
let embedConfig = {
...
pageName: 'ReportSection3'
};
Bei Auslastungsfiltern
Sie können die Filter steuern, die Ihre App auf einen eingebetteten Bericht anwendet. Standardmäßig verwendet der Bericht zunächst die Filter, die Sie im Bericht gespeichert haben. Sie haben jedoch zwei Optionen, wenn Sie die Filter anpassen möchten:
Konfigurieren Sie zusätzliche Filter, die zusammen mit den gespeicherten Filtern verwendet werden sollen. Der folgende Code zeigt, wie Sie die
filters
-Eigenschaft verwenden, um zusätzliche Filter anzufügen:let embedConfig = { ... filters: [...] };
Ersetzen Sie die gespeicherten Filter durch einen neuen Satz. Die
setFilters
-Methode bietet eine Möglichkeit, die Filter eines Berichts dynamisch zu ändern. Wenn Sie diese Methode während der schrittweisen Einbettung verwenden, können Sie die Filter überschreiben, die der Bericht ursprünglich anwendet. Weitere Informationen zum Erstellen von Filtern und zum Verwenden dersetFilters
-Methode finden Sie unter Steuern von Berichtsfiltern.
Beim Laden von Slicern
Sie können den Status der Datenschnitte steuern, die Ihre App auf einen eingebetteten Bericht anwendet. Standardmäßig verwendet die API die Datenschnitte, die Sie im Bericht gespeichert haben. Sie können jedoch die slicers
-Eigenschaft verwenden, um den Zustand der vorhandenen Datenschnitte zu ändern, wie der folgende Code veranschaulicht:
embedConfig = {
...
slicers: slicerArray,
};
Weitere Informationen zum Ändern des Status eines Datenschnitts finden Sie unter Steuern von Berichtsschnitten .
Beim Laden des Lesezeichens
Mithilfe der bookmark
-Eigenschaft können Sie ein Lesezeichen auf einen eingebetteten Bericht anwenden. Weitere Informationen zur Verwendung von Lesezeichen zum Erfassen der aktuell konfigurierten Ansicht von Berichtsseiten finden Sie unter Lesezeichen.
Sie können das zu verwendende Lesezeichen angeben, indem Sie entweder den Lesezeichennamen oder den Status angeben. Wenn Sie den Lesezeichennamen angeben, muss Ihr Power BI-Bericht ein gespeichertes Lesezeichen mit diesem Namen enthalten.
Die bookmark
Eigenschaft ist vom Typ IApplyBookmarkRequest.
Der folgende Code zeigt die Definition dieses Typs:
type IApplyBookmarkRequest = IApplyBookmarkStateRequest | IApplyBookmarkByNameRequest;
interface IApplyBookmarkStateRequest {
state: string;
}
interface IApplyBookmarkByNameRequest {
name: string;
}
Dieser Code zeigt, wie Sie ein Lesezeichen nach Name angeben:
let embedConfig = {
...
bookmark: {
name: "Bookmark4f76333c3ea205286501"
}
};
Dieser Code zeigt, wie Sie ein Lesezeichen nach Status angeben:
let embedConfig = {
...
bookmark: {
state: bookmarkState
}
};
Designs und Modus mit hohem Kontrast
Sie können das Design und die Kontrastebene steuern, die Ihre eingebetteten Inhalte verwenden. Standardmäßig werden alle Inhalte, die Sie einbetten, mit dem Standarddesign und dem Kontrastwert null angezeigt. Sie können dieses Verhalten außer Kraft setzen, indem Sie ein bestimmtes Design oder ein bestimmtes Kontrastniveau konfigurieren. Weitere Informationen zu Designs finden Sie unter Anwenden von Berichtsdesigns.
Die verfügbaren Kontrastmodi sind unten aufgeführt:
enum ContrastMode {
None = 0,
HighContrast1 = 1,
HighContrast2 = 2,
HighContrastBlack = 3,
HighContrastWhite = 4
}
Verwenden Sie Code ähnlich den folgenden Zeilen, um ein bestimmtes Design zu konfigurieren:
let embedConfig = {
...
theme: {themeJson: ...}
};
Der folgende Code zeigt, wie die Standardkontraststufe außer Kraft gesetzt wird: None
let embedConfig = {
...
contrastMode: models.contrastMode.HighContrast1
};
Hinweis
Die API kann kein Design und eine Kontrastebene gleichzeitig anwenden. Wenn Sie beide Eigenschaften konfigurieren, verwendet die API die von Ihnen angegebene Kontraststufe, ignoriert aber die theme
Einstellung.
Zoomfaktor
Weitere Informationen zum Anpassen der Berichtszoomstufe finden Sie im Dokument zur Barrierefreiheit.
Öffnen im Bearbeitungsmodus
Standardmäßig wird der von Ihnen eingebettete Bericht im Ansichtsmodus angezeigt. Sie können dieses Verhalten jedoch überschreiben, um den Bericht im Bearbeitungsmodus zu öffnen. Sie können auch zwischen den Modi wechseln.
Konfigurieren des Bearbeitungsmodus
Um einen eingebetteten Bericht im Bearbeitungsmodus zu öffnen, verwenden Sie die viewMode
-Eigenschaft zusammen mit der permissions
-Eigenschaft.
Sie können der viewMode
Eigenschaft die folgenden Werte zuweisen:
View
– Öffnet den Bericht im Ansichtsmodus.Edit
– Öffnet den Bericht im Bearbeitungsmodus.
Sie können der Eigenschaft die permissions
folgenden Werte zuweisen:
Read
– Benutzer können den Bericht anzeigen.ReadWrite
– Benutzer können den Bericht anzeigen, bearbeiten und speichern.Copy
– Benutzer können eine Kopie des Berichts speichern, indem Sie Speichern unter verwenden.Create
– Benutzer können einen neuen Bericht erstellen.All
– Benutzer können eine Kopie des Berichts erstellen, anzeigen, bearbeiten, speichern und speichern.
Wenn Sie Inhalte für das Öffnen im Bearbeitungsmodus konfigurieren, weisen Sie der Eigenschaft einen Wert zu, der permissions
für die Bearbeitung geeignet ist, wie im folgenden Code veranschaulicht:
let embedConfig = {
...
permissions: models.Permissions.All
viewMode: models.ViewMode.Edit
};
Hinweis
Der permissions
von Ihnen konfigurierte Wert funktioniert nur, wenn das von Ihnen erworbene Einbettungstoken über ausreichende Berechtigungen verfügt. Weitere Informationen zu Einbettungstoken finden Sie unter Erstellen des Einbettungstokens.
Wechseln zwischen Bearbeitungs- und Ansichtsmodi
Sie können nicht nur einen Modus angeben, in dem eingebettete Inhalte gestartet werden sollen, sie können auch dynamisch zwischen Bearbeitungs- und Ansichtsmodi wechseln.
Wenn sich der Inhalt im Bearbeitungsmodus befindet und Sie in den Ansichtsmodus wechseln möchten, verwenden Sie diesen JavaScript-Code:
// Embed the content.
let embeddedContent = powerbi.embed(container, embedConfiguration);
...
// Switch to view mode.
embeddedContent.switchMode("view");
Wenn sich der Inhalt im Ansichtsmodus befindet und Sie in den Bearbeitungsmodus wechseln möchten, verwenden Sie diesen JavaScript-Code:
// Embed the content.
let embeddedContent = powerbi.embed(container, embedConfiguration);
...
// Switch to edit mode.
embeddedContent.switchMode("edit");
Überlegungen und Einschränkungen
Berücksichtigen Sie beim Konfigurieren eingebetteter Inhalte die folgenden Punkte:
Die Seitennavigationsposition kann nicht geändert werden, wenn die Aktionsleiste sichtbar ist. Erfahren Sie mehr über die Aktionsleiste.
Wenn Sie die
bars
-Eigenschaft in dersetting
-Eigenschaft verwenden, wie in Bars beschrieben, wendet die API Ihre Konfiguration nur an, wenn sich der eingebettete Inhalt im Bearbeitungsmodus befindet. Wenn sich Ihre Inhalte im Ansichtsmodus befinden, ignoriert die API diebars
Einstellung.Wenn Sie die -Eigenschaft zum Anzeigen von
viewMode
Inhalten im Bearbeitungsmodus verwenden, müssen Sie zwei zusätzliche Schritte ausführen:- Konfigurieren Sie eine Berechtigungsstufe mit der
permissions
-Eigenschaft. Diese Berechtigungsstufe muss dem Benutzer den entsprechenden Zugriff zum Ändern von Inhalten gewähren. Wenn Sie für instance einenpermissions
Wert desRead,
Benutzers zuweisen, kann der Inhalt nicht bearbeitet werden. - Stellen Sie sicher, dass das von Ihnen generierte Einbettungstoken Über Berechtigungen verfügt, die die Bearbeitung unterstützen. Wenn Sie instance ein Token mit einem
accessLevel
Wert derview,
API abrufen, kann der Inhalt nicht im Bearbeitungsmodus angezeigt werden.
- Konfigurieren Sie eine Berechtigungsstufe mit der
Die Panes-Eigenschaft ersetzt die folgenden
settings
Eigenschaften:filterPaneEnabled
navContentPaneEnabled
Wenn Sie die -Eigenschaft zum Konfigurieren der
panes
Filter- oder Seitennavigationssicht verwenden, verwenden Sie nicht diefilterPaneEnabled
Eigenschaft odernavContentPaneEnabled
in Ihrer App.Die API kann kein Design und keine Kontrastebene gleichzeitig auf eingebettete Inhalte anwenden. Wenn Sie beide Optionen mit der
theme
- undcontrastMode
-Eigenschaft konfigurieren, verwendet die API IhrencontrastMode
Wert mit dem eingebetteten Inhalt. Die API ignoriert dietheme
Einstellung jedoch.Wenn Sie ein Lesezeichen auf einen eingebetteten Bericht anwenden möchten, können Sie die
bookmark
-Eigenschaft verwenden. Wenn Sie einen Lesezeichennamen mit dieser Eigenschaft angeben, kann die API das Lesezeichen nur verwenden, wenn sie mit diesem Namen vorhanden ist. Wenn Sie diepageName
-Eigenschaft zum Angeben einer öffnenden Seite verwenden, kann die API diese Seite nur anzeigen, wenn sie mit dem angegebenen Namen vorhanden ist. Bevor Sie einen Namen konfigurieren, sollten Sie eine Accessormethode wie die Report getPages-Methode verwenden, um zu überprüfen, ob eine Komponente mit diesem Namen vorhanden ist.