Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí záložek sestav Power BI můžete zachytit a uložit nakonfigurované zobrazení stránky sestavy. Pak se můžete rychle a snadno vrátit k uloženému zobrazení, kdykoli budete chtít. Záložka uloží celou konfiguraci, včetně výběrů a filtrů.
Další informace o záložkách najdete v tématu Používání záložek ke sdílení poznatků a vytváření příběhů v Power BI.
Vizuály, které podporují záložky
Vizuál Power BI, který podporuje záložky, musí být v případě potřeby schopen uložit a poskytnout správné informace. Pokud vizuál komunikuje s jinými vizuály, vybere datové body nebo filtruje jiné vizuály, musíte uložit stav záložky ve vlastnostech filterState vizuálu.
Poznámka:
Vytvoření vizuálu, který podporuje záložky, vyžaduje:
- Visual API verze 1.11.0 nebo novější pro nefiltrované vizuály, které používají
SelectionManager. - Visual API verze 2.6.0 nebo novější pro vizuály filtru.
- Pokud chcete zjistit, kterou verzi používáte, podívejte se do
apiVersionsouboru pbiviz.json .
Interakce vizuálů Power BI s Power BI v záložkách sestavy
Řekněme, že chcete na stránce sestavy vytvořit několik záložek, přičemž u každé záložky jsou vybrány jiné datové body.
Nejprve ve vizuálu vyberte jeden nebo více datových bodů. Vizuál předává výběry hostiteli. Pak vyberte Přidat v podokně Záložek. Power BI uloží aktuální výběry pro novou záložku.
Pokud chcete vytvořit nové záložky, udělejte to několikrát. Po vytvoření záložek můžete mezi nimi přepínat.
Pokaždé, když vyberete záložku, Power BI obnoví uložený filtr nebo stav výběru a předá ho vizuálům. Vizualizace v sestavě jsou zvýrazněné nebo filtrované podle stavu uloženého v záložkách. Pokud chcete obnovit správný stav, musí vizuál předat hostiteli správný stav výběru (například barvy vykreslovaných datových bodů).
Nový stav výběru (nebo filtr) je komunikován prostřednictvím options.jsonFilters vlastnosti v update metodě.
jsonFilters může být buď Advanced Filter nebo Tuple Filter.
- Pokud vizuál obsahuje vybrané datové body, obnovte výběr podle vybrané záložky pomocí funkce zpětného volání,
registerOnSelectCallbackvISelectionManager. - Pokud vizuál k výběru dat používá filtry, obnovte hodnoty filtru na odpovídající hodnoty vybrané záložky.
Vizuály s výběrem
Poznámka:
Služba interactivityService je zastaralá.
Pokud vizuál komunikuje s jinými vizuály pomocí výběru, můžete přidat podporu záložek jedním ze dvou způsobů:
- Prostřednictvím interaktivityService ke správě výběrů použijte
applySelectionFromFilter. Tato metoda je zastaralá. - Prostřednictvím selectionManageru.
Použití interactivityService k obnovení výběrů záložek – zastaralé
Pokud vizuál používá InteractivityService, nepotřebujete k podpoře záložek ve vizuálu žádné další akce.
Když vyberete záložku, nástroj automaticky zpracuje stav výběru vizuálu.
Použití selectionManageru k obnovení výběrů záložek
Výběry záložek můžete uložit a odvolat následujícím ISelectionManager.registerOnSelectCallback způsobem:
Když vyberete záložku, Power BI vyvolá metodu vizuálu callback s odpovídajícími výběry.
this.selectionManager.registerOnSelectCallback(
(ids: ISelectionId[]) => {
//called when a selection was set by Power BI
});
);
Předpokládejme, že jste vytvořili datový bod v metodě visualTransform vašeho vizuálu.
Vypadá datapoints takto:
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
});
Teď máte visualDataPoints jako datové body a ids pole předané funkci callback .
V tomto okamžiku by měl vizuální prvek porovnávat pole ve vaší matici ISelectionId[] s výběry v matici visualDataPoints a poté označit odpovídající datové body jako vybrané.
this.selectionManager.registerOnSelectCallback(
(ids: ISelectionId[]) => {
visualDataPoints.forEach(dataPoint => {
ids.forEach(bookmarkSelection => {
if (bookmarkSelection.equals(dataPoint.selectionId)) {
dataPoint.selected = true;
}
});
});
});
);
Po aktualizaci datových bodů se zobrazí aktuální stav výběru uložený v objektu filter . Po vykreslení datových bodů se stav výběru vlastního vizuálu shoduje se stavem záložky.
Vizuály s filtrem
Předpokládejme, že vizuál vytvoří filtr dat podle časového období. Máte startDate a endDate jako počáteční a koncové datum rozsahu.
Vizuál vytvoří rozšířený filtr a zavolá metodu applyJsonFilter hostitele k filtrování dat podle příslušných podmínek.
Cílem je tabulka použitá k filtrování.
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
);
Pokaždé, když vyberete záložku, vlastní vizuál dostane update volání.
update V metodě vizuál zkontroluje filtr v objektu:
const filter: IAdvancedFilter = FilterManager.restoreFilter(
&& options.jsonFilters
&& options.jsonFilters[0] as any
) as IAdvancedFilter;
filter Pokud objekt nemá hodnotu null, vizuál obnoví podmínky filtru z objektu:
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
}
Potom vizuál změní svůj vnitřní stav tak, aby odpovídal aktuálním podmínkám. Vnitřní stav zahrnuje datové body a objekty vizualizace (čáry, obdélníky atd.).
Vizuál Řezník časové osy změní selektor rozsahu do odpovídajících datových rozsahů.
Uložit stav filtru vizuálu
Kromě uložení podmínek filtru pro záložku můžete uložit i další aspekty filtru.
Například průřez časové osy ukládá Granularity hodnoty vlastností jako stav filtru. Umožňuje měnit členitost časové osy (dny, měsíce, roky atd.) při změně záložek.
Vlastnost filterState uloží aspekt filtru jako vlastnost. Vizuál může ukládat různé filterState hodnoty do záložek.
Pokud chcete uložit hodnotu vlastnosti jako stav filtru, nastavte vlastnost objektu jako "filterState": true v souboru capabilities.json.