Konfigurieren von Berichtseinstellungen
Mithilfe der Power BI-Client-APIs können Sie Power BI-Analysen in Ihre Anwendung einbetten. Wenn Sie diese clientseitige Bibliothek verwenden, um einen Power BI-Bericht einzubetten, stellen Sie die API mit 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.
Neben der Gewährung des API-Zugriffs auf den Bericht können Sie auch das Konfigurationsobjekt verwenden, um die Darstellung und das Verhalten Ihres Berichts anzupassen. Sie können beispielsweise die Filtersichtbarkeit, den Navigationszugriff und die Standorteinstellungen im Konfigurationsobjekt anpassen.
In den folgenden Abschnitten wird erläutert, wie Power BI-Inhalte eingebettet und konfiguriert werden.
Bereitstellen von Konfigurationsinformationen
Die IReportLoadConfiguration Schnittstelle zeigt Eigenschaften an, die ein Konfigurationsobjekt den 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.
Anpassen von Einstellungen
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.
Um die Berichtseinstellungen zu aktualisieren, wenn der Bericht bereits geladen wurde, verwenden Sie die report.updateSettings
-Methode. Weitere Informationen finden Sie unter Aktualisieren der Berichtseinstellungen zur Laufzeit.
Scheiben
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 jede panes
-Eigenschaft unterstützt:
Eigentum | Sichtbar | Erweitert |
---|---|---|
bookmarks |
✔ | ❌ |
fields |
✔ | ✔ |
filters |
✔ | ✔ |
pageNavigation |
✔ | ❌ |
selection |
✔ | ❌ |
syncSlicers |
✔ | ❌ |
visualizations |
✔ | ✔ |
Filterbereich
Standardmäßig ist der Filterbereich sichtbar. Wenn Sie diesen Bereich ausblenden möchten, verwenden Sie die eigenschaft filterPaneEnabled
, wie im folgenden Code dargestellt:
let embedConfig = {
...
settings: {
filterPaneEnabled: false
}
};
Anmerkung
Die eigenschaft panes ersetzt die eigenschaft filterPaneEnabled
. Um die Abwärtskompatibilität aufrechtzuerhalten, ist die filterPaneEnabled
-Eigenschaft weiterhin vorhanden. Sie sollten diese beiden Eigenschaften jedoch nicht zusammen 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
}
};
Anmerkung
Die eigenschaft panes ersetzt die eigenschaft navContentPaneEnabled
. Um die Abwärtskompatibilität aufrechtzuerhalten, ist die navContentPaneEnabled
-Eigenschaft weiterhin vorhanden. Sie sollten diese beiden Eigenschaften jedoch nicht zusammen verwenden.
Der Seitennavigationsbereich wird unten im Bericht angezeigt, um den neuen vertikalen Seitenbereich zu verwenden, den Sie für die eigenschaft position
festlegen können:
let embedConfig = {
...
settings: {
panes:{
pageNavigation: {
visible: true,
position: PagesPosition.Left
}
}
}
};
Anmerkung
Sie können die Position des Seitennavigationsbereichs nicht mithilfe von updateSettings
ändern.
Gitter
Legen Sie die Sichtbarkeit der Aktionsleiste und der Statusleiste mithilfe der bars
-Eigenschaft fest.
Aktionsleiste
Der folgende Code macht die Aktionsleiste sichtbar:
let embedConfig = {
...
settings: {
bars: {
actionBar: {
visible: true
}
}
}
};
Alternativ können Sie im Ansichtsmodus auch den actionBarEnabled
URL-Parameter verwenden:
let embedConfig = {
...
embedUrl: embedUrl + "&actionBarEnabled=true"
};
Anmerkung
Im Ansichtsmodus wird die Aktionsleiste nur für die Einbettung für Ihr Unternehmen Szenario unterstützt.
Für die Aktionsleiste im Ansichtsmodus wird empfohlen, UserState.ReadWrite.All
Berechtigung für Ihre Azure AD-Anwendung zu aktivieren.
Diese Berechtigung ist erforderlich, um Endbenutzern das Hinzufügen des Berichts zu ihren Favoriten zu ermöglichen und persönliche Lesezeichen und persistenten Filterzu aktivieren.
Statusleiste
Die Statusleiste enthält den Canvaszoomcontroller, der die Möglichkeit zum Zoomen auf der Canvas bietet.
Der folgende Code macht die Statusleiste sichtbar:
let embedConfig = {
...
settings: {
bars: {
statusBar: {
visible: true
}
}
}
};
Gebietsschemaeinstellungen
Verwenden Sie die eigenschaft localeSettings
, um die Sprache und die Formatierung des eingebetteten Berichts anzugeben:
Die language
-Eigenschaft in localeSettings
besteht aus zwei Teilen jeweils, getrennt durch einen Bindestrich:
- Sprache 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ützten Sprachen.
Der folgende Code weist diesen localeSettings
bestimmte Werte zu:
let embedConfig = {
...
settings: {
localeSettings: {
language: "en-us"
}
}
};
Anmerkung
Gebietsschemaeinstellungen können nach dem Laden des Berichts nicht mehr geändert werden. Wenn Sie die Gebietsschemaeinstellungen des Berichts ändern möchten, setzen Sie den iFrame zurück, indem Sie powerbi.reset(element)
aufrufen und dann den Bericht erneut einbetten.
Transparenter Hintergrund
Standardmäßig ist der Hintergrund des eingebetteten Inhalts weiß mit grauen Rändern. Bei Bedarf können Sie dem eingebetteten Inhalt einen transparenten Hintergrund verleihen. Anschließend können Sie die Formatvorlage auf das HTML-div
-Element anwenden, das den eingebetteten Inhalt enthält. Die Formatierung des div
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 vordefinierte visuelle Elemente einer Matrix steuern. Standardmäßig öffnet der Link ein neues Fenster.
Die verfügbaren Verhaltenmodi:
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 eindataHyperlinkClicked
Ereignis aus. -
RaiseEvent
– Verhindert das Standardverhalten des URL-Klicks und löstdataHyperlinkClicked
Ereignis aus.
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 ein Link auf eine vordefinierte Tabelle oder Matrix-Visualisierung geklickt wird und das Verhalten entweder NavigateAndRaiseEvent
oder RaiseEvent
ist.
report.on('dataHyperlinkClicked', () => {
...
});
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Visuelle gerenderte Ereignisse
Sie können auf ein Ereignis für jedes gerenderte visuelle Element lauschen. Standardmäßig sind die visuellen 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 visuelles Element gerendert wird und die visualRenderedEvents
in den Berichtseinstellungen aktiviert ist.
report.on('visualRendered', () => {
...
});
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Anmerkung
Da visuelle Elemente aufgrund von Benutzerinteraktionen möglicherweise gerendert werden, empfiehlt es sich, dieses Ereignis nur bei Bedarf zu aktivieren.
Fehlermeldungen
Wenn Sie angepasste Fehlermeldungen in eingebetteten Berichten anzeigen möchten, verwenden Sie die hideErrors
-Eigenschaft, um die standardmäßigen eingebetteten Power BI-Fehlermeldungen auszublenden. Ihr Code kann dann Fehlerereignisse auf eine Weise behandeln, die ihrem App-Design entspricht. Weitere Informationen zum Überschreiben von Standardfehlern finden Sie unter Außerkraftsetzen von Standardfehlern.
Verwenden Sie diesen Code, um Standardfehlermeldungen auszublenden:
let embedConfig = {
...
settings: {
hideErrors: true
}
};
Anpassen von Optionen
In den folgenden Abschnitten wird beschrieben, wie Sie weitere Eigenschaften verwenden können, um das Aussehen und Verhalten Ihres eingebetteten Power BI-Berichts weiter anzupassen.
Standardseite
Sie können steuern, welche Seite des eingebetteten Berichts anfänglich angezeigt wird. Standardmäßig ist die Anfangsseite 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 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'
};
Beim Laden von Filtern
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 weitere Filter, die zusammen mit den gespeicherten Filtern verwendet werden sollen. Der folgende Code zeigt, wie Sie die eigenschaft
filters
verwenden, um weitere 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 phasenweisen Einbettung verwenden, können Sie die Filter überschreiben, die der Bericht anfänglich anwendet. Weitere Informationen zum Erstellen von Filtern und verwenden dersetFilters
-Methode finden Sie unter Steuerelementberichtfilter.
Beim Laden von Datenschnitten
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 Status der vorhandenen Datenschnitte zu ändern, wie der folgende Code veranschaulicht:
embedConfig = {
...
slicers: slicerArray,
};
Weitere Informationen zum Ändern des Zustands eines Datenschnitts finden Sie unter Steuerelementbericht-Datenschnitte.
Beim Laden einer Textmarke
Mithilfe der bookmark
-Eigenschaft können Sie eine Textmarke auf einen eingebetteten Bericht anwenden. Weitere Informationen zum Verwenden von Lesezeichen zum Erfassen der aktuell konfigurierten Ansicht von Berichtsseiten finden Sie unter Lesezeichen.
Sie können die zu verwendende Textmarke angeben, indem Sie entweder den Namen der Textmarke oder den Status angeben. Wenn Sie den Namen der Textmarke 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 eine Textmarke anhand des Namens angeben:
let embedConfig = {
...
bookmark: {
name: "Bookmark4f76333c3ea205286501"
}
};
Dieser Code zeigt, wie Sie eine Textmarke 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 Nullkontrast angezeigt. Sie können dieses Verhalten außer Kraft setzen, indem Sie ein bestimmtes Design oder eine bestimmte Kontraststufe konfigurieren. Weitere Informationen zu Designs finden Sie unter Anwenden von Berichtsdesigns.
Die verfügbaren Kontrastmodi:
enum ContrastMode {
None = 0,
HighContrast1 = 1,
HighContrast2 = 2,
HighContrastBlack = 3,
HighContrastWhite = 4
}
Um ein bestimmtes Design zu konfigurieren, verwenden Sie Code ähnlich wie in den folgenden Zeilen:
let embedConfig = {
...
theme: {themeJson: ...}
};
Der folgende Code zeigt, wie sie die Standardkontraststufe außer Kraft setzen, None
:
let embedConfig = {
...
contrastMode: models.contrastMode.HighContrast1
};
Anmerkung
Die API kann kein Design und gleichzeitig eine Kontrastebene anwenden. Wenn Sie beide Eigenschaften konfigurieren, verwendet die API die von Ihnen angegebene Kontraststufe, ignoriert jedoch die einstellung theme
.
Zoomfaktor
Weitere Informationen zum Anpassen des Berichtszoomfaktors finden Sie im Barrierefreiheitsdokument.
Im Bearbeitungsmodus öffnen
Standardmäßig wird der bericht, den Sie einbetten, im Ansichtsmodus angezeigt. Sie können dieses Verhalten jedoch außer Kraft setzen, um den Bericht im Bearbeitungsmodus zu öffnen. Sie können auch zwischen den Modi wechseln.
Bearbeitungsmodus konfigurieren
Um einen eingebetteten Bericht im Bearbeitungsmodus zu öffnen, verwenden Sie die viewMode
-Eigenschaft zusammen mit der permissions
-Eigenschaft.
Sie können die viewMode
Eigenschaft den folgenden Werten zuweisen:
-
View
– Öffnet den Bericht im Ansichtsmodus. -
Edit
– Öffnet den Bericht im Bearbeitungsmodus.
Sie können die permissions
Eigenschaft den folgenden Werten 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 mithilfe von Speichern unterspeichern. -
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 so konfigurieren, dass sie im Bearbeitungsmodus geöffnet werden, weisen Sie der permissions
Eigenschaft einen Wert zu, der für die Bearbeitung geeignet ist, wie der folgende Code veranschaulicht:
let embedConfig = {
...
permissions: models.Permissions.All
viewMode: models.ViewMode.Edit
};
Anmerkung
Der permissions
Wert, den Sie konfigurieren, 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
Neben der Angabe eines Modus für eingebettete Inhalte, in dem sie gestartet werden sollen, können Sie auch dynamisch zwischen Bearbeitungs- und Ansichtsmodi wechseln.
Wenn sich der Inhalt im Bearbeitungsmodus befindet und Sie zum 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 zum 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 von eingebetteten Inhalten die folgenden Punkte:
Die Seitennavigation Position kann nicht geändert werden, wenn die Aktionsleiste sichtbar ist. Erfahren Sie mehr über die Aktionsleiste.
Wenn Sie die eigenschaft
bars
in der eigenschaftsetting
verwenden, wie in Barsbeschrieben, 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
viewMode
verwenden, um Inhalte im Bearbeitungsmodus anzuzeigen, müssen Sie zwei zusätzliche Schritte ausführen:- Konfigurieren Sie eine Berechtigungsstufe mit der
permissions
-Eigenschaft. Diese Berechtigungsstufe muss dem Benutzer einen geeigneten Zugriff zum Ändern von Inhalten gewähren. Wenn Sie beispielsweise einenpermissions
Wert vonRead,
zuweisen, kann der Benutzer inhalte nicht bearbeiten. - Stellen Sie sicher, dass das Einbettungstoken, das Sie generieren, über Berechtigungen verfügt, die die Bearbeitung unterstützen. Wenn Sie z. B. ein Token mit einem
accessLevel
Wert vonview,
abrufen, zeigt die API inhalte nicht im Bearbeitungsmodus an.
- Konfigurieren Sie eine Berechtigungsstufe mit der
Die Eigenschaft Bereiche ersetzt die folgenden
settings
Eigenschaften:filterPaneEnabled
navContentPaneEnabled
Wenn Sie die
panes
-Eigenschaft verwenden, um die Sichtbarkeit von Filtern oder Seitennavigationen zu konfigurieren, verwenden Sie nicht diefilterPaneEnabled
- odernavContentPaneEnabled
-Eigenschaft in Ihrer App.Die API kann ein Design und eine Kontrastebene nicht gleichzeitig auf eingebettete Inhalte anwenden. Wenn Sie beide Optionen mithilfe der eigenschaften
theme
undcontrastMode
konfigurieren, verwendet die API IhrencontrastMode
Wert mit dem eingebetteten Inhalt. Die API ignoriert jedoch dietheme
Einstellung.Wenn Sie eine Textmarke auf einen eingebetteten Bericht anwenden möchten, können Sie die eigenschaft
bookmark
verwenden. Wenn Sie einen Textmarkennamen für diese Eigenschaft angeben, kann die API nur die Textmarke verwenden, wenn sie mit diesem Namen vorhanden ist. Ebenso kann die API, wenn Sie die eigenschaftpageName
verwenden, um eine Öffnenseite anzugeben, diese Seite nur anzeigen, wenn eine mit dem angegebenen Namen vorhanden ist. Bevor Sie einen Namen konfigurieren, sollten Sie eine Accessormethode wie die Report getPages-Methodeverwenden, um zu überprüfen, ob eine Komponente mit diesem Namen vorhanden ist.