Könyvjelző-támogatás hozzáadása vizualizációkhoz a Power BI-jelentésekben
A Power BI-jelentés könyvjelzőivel rögzítheti és mentheti a jelentésoldalak konfigurált nézetét. Ezután bármikor gyorsan és egyszerűen visszatérhet a mentett nézethez. A könyvjelző menti a teljes konfigurációt, beleértve a kijelöléseket és a szűrőket is.
A könyvjelzőkről további információt a Könyvjelzők használata elemzések megosztásához és történetek készítéséhez a Power BI-ban című témakörben talál.
Könyvjelzőket támogató vizualizációk
A könyvjelzőket támogató Power BI-vizualizációknak szükség esetén képesnek kell lenniük a megfelelő információk mentésére és megadására. Ha a vizualizáció más vizualizációkkal kommunikál, adatpontokat jelöl ki vagy más vizualizációkat szűr, a könyvjelzővel ellátott állapotot a vizualizáció filterState tulajdonságai közé kell mentenie .
Feljegyzés
A könyvjelzőket támogató vizualizáció létrehozásához a következőre van szükség:
- A Visual API 1.11.0-s vagy újabb verziója a nem szűrő vizualizációkhoz
SelectionManager
. - A Visual API 2.6.0-s vagy újabb verziója szűrővizualizációkhoz.
- Ha meg szeretné tudni, hogy melyik verziót használja, ellenőrizze a
apiVersion
pbiviz.json fájlban.
Hogyan használják a Power BI-vizualizációk a Power BI-t a jelentés könyvjelzőiben?
Tegyük fel, hogy több könyvjelzőt szeretne létrehozni egy jelentésoldalon, és mindegyik könyvjelző különböző adatpontokkal rendelkezik.
Először jelöljön ki egy vagy több adatpontot a vizualizációban. A vizualizáció átadja a kijelöléseket a gazdagépnek. Ezután válassza a Hozzáadás lehetőséget a Könyvjelző panelen. A Power BI menti az új könyvjelző aktuális kijelöléseit.
Ezt többször is megteheti új könyvjelzők létrehozásához. A könyvjelzők létrehozása után válthat közöttük.
Minden alkalommal, amikor kiválaszt egy könyvjelzőt, a Power BI visszaállítja a mentett szűrőt vagy kijelölési állapotot, és továbbítja azt a vizualizációknak. A jelentés vizualizációi a könyvjelzőben tárolt állapotnak megfelelően vannak kiemelve vagy szűrve. A megfelelő állapot visszaállításához a vizualizációnak a megfelelő kijelölési állapotot kell átadnia a gazdagépnek (például a renderelt adatpontok színeit).
A rendszer az új kijelölési állapotot (vagy szűrőt) a options.jsonFilters
metódus tulajdonságán update
keresztül közli. A jsonFilters
lehet vagy Advanced Filter
Tuple Filter
.
- Ha a vizualizáció kijelölt adatpontokat tartalmaz, állítsa vissza a kijelölést a kijelölt könyvjelzőre a visszahívási függvény használatával.
ISelectionManager
registerOnSelectCallback
- Ha a vizualizáció szűrőkkel választja ki az adatokat, állítsa vissza a szűrőértékeket a kijelölt könyvjelző megfelelő értékeire.
Vizualizációk kijelöléssel
Feljegyzés
Az InteractivityService elavult.
Ha a vizualizáció más vizualizációkkal a Kijelölés funkcióval kommunikál, kétféleképpen adhat hozzá könyvjelző-támogatást:
- Az InteractivityService használatával kezelheti a kijelöléseket, és használja a
applySelectionFromFilter
. Ez elavult módszer. - A SelectionManageren keresztül.
Könyvjelző-kijelölés visszaállítása az InteractivityService használatával – elavult
Ha a vizualizáció az InteractivityService szolgáltatást használja, nincs szükség más műveletekre a vizualizáció könyvjelzőinek támogatásához.
Könyvjelző kijelölésekor a segédprogram automatikusan kezeli a vizualizáció kijelölési állapotát.
Könyvjelző-kijelölés visszaállítása a SelectionManager használatával
A könyvjelző-kijelöléseket a ISelectionManager.registerOnSelectCallback
következőképpen mentheti és hívhatja vissza:
Könyvjelző kiválasztásakor a Power BI meghívja a callback
vizualizáció metódusát a megfelelő kijelölésekkel.
this.selectionManager.registerOnSelectCallback(
(ids: ISelectionId[]) => {
//called when a selection was set by Power BI
});
);
Tegyük fel, hogy létrehozott egy adatpontot a vizualizáció visualTransform metódusában.
A datapoints
következőképpen néz ki:
visualDataPoints.push({
category: categorical.categories[0].values[i],
color: getCategoricalObjectValue<Fill>(categorical.categories[0], i, 'colorSelector', 'fill', defaultColor).solid.color,
selectionId: host.createSelectionIdBuilder()
.withCategory(categorical.categories[0], i)
.createSelectionId(),
selected: false
});
Most már az visualDataPoints
adatpontok és a ids
tömb átadva van a callback
függvénynek.
Ezen a ponton a vizualizációnak össze kell hasonlítania a ISelectionId[]
tömböt a tömbben lévő visualDataPoints
kijelölésekkel, majd jelölje meg a megfelelő adatpontokat kijelöltként.
this.selectionManager.registerOnSelectCallback(
(ids: ISelectionId[]) => {
visualDataPoints.forEach(dataPoint => {
ids.forEach(bookmarkSelection => {
if (bookmarkSelection.equals(dataPoint.selectionId)) {
dataPoint.selected = true;
}
});
});
});
);
Az adatpontok frissítése után azok az objektumban filter
tárolt aktuális kijelölési állapotot tükrözik. Ezután az adatpontok megjelenítésekor az egyéni vizualizáció kijelölési állapota megegyezik a könyvjelző állapotával.
Vizualizációk szűrővel
Tegyük fel, hogy a vizualizáció dátumtartomány szerinti adatszűrőt hoz létre. A startDate
endDate
tartomány kezdő és záró dátumai.
A vizualizáció létrehoz egy speciális szűrőt, és meghívja a gazdagépmetódust applyJsonFilter
az adatok megfelelő feltételek szerinti szűrésére.
A cél a szűréshez használt tábla.
import { AdvancedFilter } from "powerbi-models";
const filter: IAdvancedFilter = new AdvancedFilter(
target,
"And",
{
operator: "GreaterThanOrEqual",
value: startDate
? startDate.toJSON()
: null
},
{
operator: "LessThanOrEqual",
value: endDate
? endDate.toJSON()
: null
});
this.host.applyJsonFilter(
filter,
"general",
"filter",
(startDate && endDate)
? FilterAction.merge
: FilterAction.remove
);
Minden alkalommal, amikor kiválaszt egy könyvjelzőt, az egyéni vizualizáció hívást kap update
.
A metódusban a update
vizualizáció ellenőrzi a szűrőt az objektumban:
const filter: IAdvancedFilter = FilterManager.restoreFilter(
&& options.jsonFilters
&& options.jsonFilters[0] as any
) as IAdvancedFilter;
Ha az filter
objektum nem null értékű, a vizualizáció visszaállítja az objektum szűrőfeltételeit:
const jsonFilters: AdvancedFilter = this.options.jsonFilters as AdvancedFilter[];
if (jsonFilters
&& jsonFilters[0]
&& jsonFilters[0].conditions
&& jsonFilters[0].conditions[0]
&& jsonFilters[0].conditions[1]
) {
const startDate: Date = new Date(`${jsonFilters[0].conditions[0].value}`);
const endDate: Date = new Date(`${jsonFilters[0].conditions[1].value}`);
// apply restored conditions
} else {
// apply default settings
}
Ezt követően a vizualizáció a jelenlegi feltételeknek megfelelően módosítja a belső állapotát. A belső állapot tartalmazza az adatpontokat és a vizualizációs objektumokat (vonalakat, téglalapokat stb.).
Az Idősorszeletelő vizualizáció a tartományválasztót a megfelelő adattartományokra módosítja.
A vizualizáció szűrőállapotának mentése
A könyvjelzőhöz tartozó szűrő feltételeinek mentése mellett más szűrési szempontokat is menthet.
Az Ütemtervszeletelő például szűrőállapotként tárolja a Granularity
tulajdonságértékeket. Lehetővé teszi az idővonal részletességét (nap, hónap, év stb.) a könyvjelzők módosításakor.
A filterState
tulajdonság tulajdonságként ment egy szűrőelemet. A vizualizáció különböző filterState
értékeket tárolhat könyvjelzőkben.
Ha egy tulajdonságértéket szűrőállapotként szeretne menteni, állítsa be az objektumtulajdonságot "filterState": true
a capabilities.json fájlban.