Migliorare l'esperienza degli utenti con i segnalibri
I segnalibri del report in Power BI consentono di acquisire lo stato corrente di una pagina del report incorporata, inclusi tutti i filtri e lo stato degli oggetti visivi. Quando si apre il report in un secondo momento, è possibile selezionare il segnalibro per ripristinare lo stato salvato del report. Gli sviluppatori possono controllare l'esperienza utente usando le API client di Power BI per acquisire e applicare segnalibri.
Un segnalibro salvato può essere un segnalibro salvato come parte di un report o un segnalibro acquisito come stato in tempo reale di un report. Se si applica un segnalibro salvato quando si carica un report, è possibile specificare il segnalibro da usare specificando il nome del segnalibro o il relativo stato. Se si specifica un segnalibro in base al nome, il report deve contenere un segnalibro salvato con lo stesso nome.
Questo articolo illustra le diverse impostazioni api necessarie per incorporare report che supportano i segnalibri.
Nota
Nei report incorporati per l'organizzazione, i consumer di report creano segnalibri personali acquisendo lo stato del report e restituendo rapidamente a tale stato selezionando il segnalibro. Per altre informazioni, vedere
Per informazioni su come creare un'esperienza simile nei report incorporati per i clienti, vedere la presentazione della visualizzazione report di acquisizione nel playground di analisi incorporata di Power BI.
Per altre informazioni sull'uso dei segnalibri in Power BI, vedere Creare segnalibri in Power BI Desktop.
Per informazioni sull'uso di segnalibri personali durante l'incorporamento di Power BI, vedere Segnalibri personali.
Come usare i segnalibri del report
Le sezioni seguenti illustrano come usare le API client di Power BI per usare i segnalibri del report.
Gestire i segnalibri di un report
Per gestire i segnalibri di un report, utilizzare la proprietà bookmarksManager
di un'istanza del report incorporata .
La classe BookmarksManager include i metodi seguenti:
getBookmarks
: restituisce un elenco di segnalibri salvati associati al report.apply
: applica per nome un segnalibro salvato in precedenza al report.capture
: acquisisce e restituisce una stringa di serializzazione base64, che rappresenta lo stato corrente del report.applyState
Applica uno stato di serializzazione base64 acquisito in precedenza di un segnalibro al report.play
: controlla la modalità presentazione diapositiva per i segnalibri del report.
Accedere a un segnalibro del report
Per accedere a un singolo segnalibro, utilizzare il metodo getBookmarks
per accedere a un elenco di oggetti ReportBookmark
.
La classe ReportBookmark
ha le proprietà seguenti:
name
: identificatore univoco del segnalibro del report.: nome visualizzato del segnalibro del report visualizzato nel riquadro Segnalibri. state
: serializzazione base64 dello stato del segnalibro del report. È possibile salvarlo e applicarlo a un report con il metodobookmarksManager.applyState
.children
: elenco di oggettiReportBookmark
che rappresentano un gruppo di segnalibri del report, se esistente.
Usare le API dei segnalibri del report
In un report incorporato gli sviluppatori possono:
- Ottenere un elenco di segnalibri del report salvati.
- Applicare un segnalibro salvato per nome al caricamento del report o durante una sessione.
- Acquisire e ottenere una visualizzazione corrente come oggetto segnalibro.
- Applicare uno stato del segnalibro acquisito al caricamento del report o durante una sessione
- Eseguire logica aggiuntiva quando viene applicato un segnalibro del report.
- Mostra o nasconde il riquadro Segnalibri.
- modalità di presentazione Immettere o uscire dai segnalibri.
Ottenere un elenco di segnalibri del report salvati
Per ottenere l'elenco dei segnalibri salvati associati a un report, chiamare il metodo
Il metodo getBookmarks
viene definito come segue:
getBookmarks(): Promise<models.IReportBookmark[]>
Per esempio:
let bookmarks = await report.bookmarksManager.getBookmarks();
Applicare un segnalibro salvato per nome al caricamento del report o durante una sessione
Per applicare un segnalibro salvato in precedenza a un report utilizzando il nome del segnalibro, chiamare il metodo
Per altre informazioni, vedere Configurare le impostazioni del report.
Il metodo apply
viene definito come segue:
apply(bookmarkName: string): Promise<void>
Per esempio:
await report.bookmarksManager.apply("Bookmark1234");
Acquisire e ottenere una visualizzazione corrente come oggetto segnalibro
Per acquisire lo stato corrente di un report come stringa base64, chiamare il metodo capture
restituisce un oggetto IReportBookmark
, che rappresenta un segnalibro non salvato in un report specifico. Utilizzare la proprietà IReportBookmark.state
per restituire la stringa base64 che identifica lo stato del segnalibro, che in seguito è possibile applicare a un report durante il tempo di caricamento o di runtime.
Il metodo capture
viene definito come segue:
capture(options?:ICaptureBookmarkOptions): Promise<models.IReportBookmark>
Per esempio:
let capturedBookmark = await report.bookmarksManager.capture();
Opzioni di acquisizione segnalibro
È anche possibile passare un oggetto ICaptureBookmarkOptions
al metodo capture
.
interface ICaptureBookmarkOptions {
allPages?: boolean;
personalizeVisuals?: boolean;
}
-
allPages
: per impostazione predefinita, lo stato del segnalibro acquisito salverà solo lo stato della pagina corrente. Per acquisire lo stato di tutte le pagine, chiamarecapture
metodo conallPages
opzione impostata sutrue
. -
personalizeVisuals
: per acquisire lo stato corrente con oggetti visivi personalizzati, chiamare il metodocapture
con l'opzionepersonalizeVisuals
impostata sutrue
.
Ad esempio, il codice seguente acquisisce lo stato di tutte le pagine, inclusi gli oggetti visivi personalizzati:
let capturedBookmark = await report.bookmarksManager.capture({
allPages: true,
personalizeVisuals: true
});
Applicare uno stato del segnalibro acquisito al caricamento del report o durante una sessione
Per applicare uno stato segnalibro acquisito in precedenza a un report, utilizzare il metodo applyState
di un oggetto BookmarksManager.
Per altre informazioni, vedere Configurare le impostazioni del report.
Il metodo applyState
viene definito come segue:
applyState(state: string): Promise<void>
Per esempio:
await report.bookmarksManager.applyState(capturedBookmark.state);
Eseguire logica aggiuntiva quando viene applicato un segnalibro del report
Per determinare quando è stato applicato un segnalibro del report, restare in ascolto dell'evento
Per esempio:
report.on("bookmarkApplied", (event) => {
console.log(event.detail.name);
});
Visualizzare o nascondere il riquadro Segnalibri
Per visualizzare o nascondere il riquadro segnalibri di Power BI
Visualizzare il riquadro Segnalibri
let embedConfig = {
...
panes: {
bookmarks: {
visible: true
}
}
};
Nascondere il riquadro Segnalibri
let embedConfig = {
...
panes: {
bookmarks: {
visible: false
}
}
};
Per informazioni sull'aggiornamento delle impostazioni del report, vedere Configurare le impostazioni del report.
Immettere o uscire dalla modalità presentazione segnalibri
Per controllare la modalità presentazione diapositiva per i segnalibri di un report, chiamare il metodo
Il metodo play
viene definito come segue:
play(playMode: models.BookmarksPlayMode): Promise<void>
Nota
Prima di accedere alla modalità presentazione dei segnalibri, assicurarsi che nel report sia presente almeno un segnalibro con 'API getBookmarks.
Immettere la modalità presentazione diapositiva
await report.bookmarksManager.play(models.BookmarksPlayMode.Presentation);
Uscire dalla modalità presentazione diapositiva
await report.bookmarksManager.play(models.BookmarksPlayMode.Off);
Considerazioni e limitazioni
Quando si usa l'API segnalibri, alcune modifiche apportate al report possono causare un errore o un risultato imprevisto. Un esempio è la rimozione dei filtri del report dal report. Per evitare errori, è necessario che siano presenti le schede di filtro corrispondenti. Anziché rimuovere i filtri, impostare i relativi valori su
All
. Se non si conoscono i filtri eliminati o modificati, ricapitolare il segnalibro dopo l'applicazione delle modifiche al report.I filtri come sui filtri di carico creati dalla sessione di incorporamento o aggiunti dal filtri di aggiornamento aggiungono l'operazione, vengono acquisiti nello stato del segnalibro, ma verranno applicati solo nella sessione corrente. Per superare questa limitazione, il filtro deve essere salvato nel report con il valore
All
e modificato nella sessione di incorporamento usando l'operazione di aggiornamento dei filtri di aggiornamento .