Megosztás a következőn keresztül:


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 Powerbi-visuals-utils-interactivityutils 3.0.0-s vagy újabb verziója a szűrővizualizációkhoz és a használt InteractivityServicevizualizációkhoz.
  • A Visual API 1.11.0-s vagy újabb verziója a nem szűrő vizualizációkhoz, amelyek ahelyett használnak SelectionManager InteractivityService.
  • 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.ISelectionManagerregisterOnSelectCallback
  • 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

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:

Könyvjelző-kijelölések visszaállítása az InteractivityService használatával

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

Ha nem használja InteractivityService, a következő módszerrel mentheti és visszahívhatja a ISelectionManager.registerOnSelectCallback könyvjelző-kijelöléseket:

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

A szűrővel rendelkező vizualizációk könyvjelzőinek támogatásához használja InteractivityServicea következőt: .

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.).

Fontos

A fenti jelentés könyvjelzőinek forgatókönyvében a vizualizációnak nem szabad meghívnia applyJsonFilter a többi vizualizáció szűrésére. A Power BI már szűri őket.

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.