Share via


Kirjanmerkkien tuen lisääminen Power BI -raporttien visualisointeihin

Power BI -raportin kirjanmerkkien avulla voit siepata ja tallentaa määritetyn näkymän raporttisivusta. Voit sitten palata tallennettuun näkymään nopeasti ja helposti milloin tahansa. Kirjanmerkki tallentaa koko määrityksen, mukaan lukien valinnat ja suodattimet.

Lisätietoja kirjanmerkeistä on artikkelissa Merkityksellisten tietojen jakaminen ja tarinoiden koostaminen Power BI:ssä kirjanmerkkien avulla.

Kirjanmerkkejä tukevat visualisoinnit

Kirjanmerkkejä tukevan Power BI -visualisoinnin on pystyttävä tallentamaan ja antamaan oikeat tiedot tarvittaessa. Jos visualisointisi on vuorovaikutuksessa muiden visualisointien kanssa, valitsee arvopisteitä tai suodattaa muita visualisointeja, sinun on tallennettava kirjanmerkillinen tila visualisoinnin filterState-ominaisuuksissa .

Muistiinpano

Kirjanmerkkejä tukevan visualisoinnin luominen edellyttää seuraavia:

  • Powerbi-visuals-utils-interactivityutils , versio 3.0.0 tai uudempi suodatinvisualisointeihin ja mihin tahansa visualisointiin, jossa on käytössä InteractivityService.
  • Visualisoinnin ohjelmointirajapinnan versio 1.11.0 tai uudempi niille visualisoinnille, jotka eivät ole suodattimia ja joita käytetään SelectionManager -arvon InteractivityServicesijaan.
  • Jos haluat tietää, mitä versiota käytät, tarkista apiVersionpbiviz.json-tiedostosta .

Power BI -visualisointien vuorovaikutus Power BI:n kanssa raportin kirjanmerkeissä

Oletetaan, että haluat luoda raporttisivulle useita kirjanmerkkejä, joista jokainen on valittuna siten, että kullakin kirjanmerkillä on eri arvopisteet valittuna.

Valitse ensin yksi tai useampi arvopiste visualisoinnissa. Visualisointi välittää valintasi isännälle. Valitse sitten LisääKirjanmerkki-ruudussa. Power BI tallentaa senhetkiset valinnat uutta kirjanmerkkiä varten.

Luo uusia kirjanmerkkejä useita kertoja. Kun olet luonut kirjanmerkit, voit vaihtaa niiden välillä.

Aina, kun valitset kirjanmerkin, Power BI palauttaa tallennetun suodattimen tai valintatilan ja välittää sen visualisointeihin. Raportin visualisoinnit korostetaan tai suodatetaan kirjanmerkkiin tallennetun tilan mukaan. Tämän vuoksi visualisoinnin on välitettävä isäntälle oikea valintatila (esimerkiksi hahmonnettavien arvopisteiden värit).

Uusi valintatila (tai suodatin) välitetään -menetelmän options.jsonFilters -ominaisuuden update kautta. jsonFilters voi olla joko Advanced Filter tai Tuple Filter.

Valinnaiset visualisoinnit

Jos visualisointi on vuorovaikutuksessa muiden Valinta-visualisointien kanssa, voit lisätä kirjanmerkkituen kahdella tavalla:

InteractivityService-palvelun avulla voit palauttaa kirjanmerkkivalinnat

Jos visualisointisi käyttää InteractivityService-palvelua, et tarvitse muita toimintoja visualisoinnin kirjanmerkkien tukemiseksi.

Kun valitset kirjanmerkin, apuohjelma käsittelee automaattisesti visualisoinnin valintatilan.

Kirjanmerkkivalintojen palauttaminen SelectionManagerin avulla

Jos et käytä -menetelmää InteractivityService, voit tallentaa ja palauttaa kirjanmerkkivalinnat käyttämällä ISelectionManager.registerOnSelectCallback seuraavaa menetelmää:

Kun valitset kirjanmerkin, Power BI kutsuu callback vastaavat valinnat sisältävän visualisoinnin -menetelmän.

this.selectionManager.registerOnSelectCallback(
    (ids: ISelectionId[]) => {
        //called when a selection was set by Power BI
    });
);

Oletetaan, että loit arvopisteen visualisoinnin Muunna-menetelmässä .

Näyttää datapoints tältä:

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
});

Nyt sinulla on visualDataPoints arvopisteinäsi, ja - ids matriisi on välitetty -funktioon callback .

Tässä vaiheessa visualisoinnin pitäisi verrata ISelectionId[] -matriisia ja -matriisisi visualDataPoints valintoja sekä merkitä vastaavat arvopisteet valituiksi.

this.selectionManager.registerOnSelectCallback(
    (ids: ISelectionId[]) => {
        visualDataPoints.forEach(dataPoint => {
            ids.forEach(bookmarkSelection => {
                if (bookmarkSelection.equals(dataPoint.selectionId)) {
                    dataPoint.selected = true;
                }
            });
        });
    });
);

Arvopisteiden päivittämisen jälkeen ne kuvastavat -objektiin tallennettua filter nykyistä valintatilaa. Kun arvopisteet hahmonnetaan, mukautetun visualisoinnin valintatila vastaa kirjanmerkin tilaa.

Suodattimen sisältävät visualisoinnit

Jos haluat tukea kirjanmerkkejä visualisoinneissa, joissa on suodatin, käytä .InteractivityService

Oletetaan, että visualisointi luo tietojen suodattimen päivämääräalueen mukaan. Sinulla on startDate ja endDate alueen alkamis- ja päättymispäivämäärinä.

Visualisointi luo lisäsuodattimen ja kutsuu isäntämenetelmää applyJsonFilter tietojen suodattamiseksi asiaankuuluvan ehdon mukaan.

Kohde on suodattamiseen käytettävä taulukko.

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

Aina, kun valitset kirjanmerkin, mukautettu visualisointi saa - update kutsun.

-menetelmässä update visualisointi tarkistaa suodattimen objektissa:

const filter: IAdvancedFilter = FilterManager.restoreFilter(
    && options.jsonFilters
    && options.jsonFilters[0] as any
) as IAdvancedFilter;

filter Jos objektin arvo ei ole tyhjä, visualisointi palauttaa suodatusehdot objektista:

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
}

Sen jälkeen visualisointi muuttaa sisäisen tilansa vastaamaan nykyisiä ehtoja. Sisäinen tila sisältää arvopisteet ja visualisointiobjektit (kuten viivat ja suorakulmiot).

Tärkeä

Yllä olevassa raportin kirjanmerkkiskenaariossa visualisoinnin ei pitäisi kutsua -kutsua applyJsonFilter muiden visualisointien suodattamiseksi. Power BI on jo suodattänyt ne.

Aikajanan osittajan visualisointi muuttaa alueen valitsimen tietoalueita vastaavaksi.

Tallenna visualisoinnin suodatustila

Kirjanmerkin suodattimen ehtojen tallentamisen lisäksi voit tallentaa myös muita suodatinnäkökohtia.

Esimerkiksi Aikajanan osittaja tallentaa -ominaisuuden Granularity arvot suodatustilaksi. Sen avulla aikajanan askelväli (päivät, kuukaudet, vuodet jne.) muuttuu, kun vaihdat kirjanmerkkejä.

- filterState ominaisuus tallentaa suodatin-ominaisuuden ominaisuudeksi. Visualisointi voi tallentaa kirjanmerkkeihin eri filterState arvoja.

Jos haluat tallentaa ominaisuuden arvon suodatustilaksi, määritä objektin ominaisuuden arvoksi "filterState": true tiedostossa capabilities.json .