Používání proměnných XML s dimenzemi filtru
Dynamické reporty nejsou závislé na konkrétním zdroji dat. Místo toho se proměnné a parametry reportu používají jako zástupné symboly pro požadované datové propojení a kostku a pro dimenze.
Návrhář dynamického reportu nemůže vědět, s jakou databází či strukturou dat se bude report používat, nezná ani počet dimenzí a neví, které dimenze se použijí jako dimenze filtru. Pokud se má report používat v dashboardu a dimenze filtru se mají používat ke komunikaci widgetů, musí být uloženy hodnoty vybrané z každé dimenze filtru. Protože však dimenze nejsou známé, nelze to provést přiřazením jednotlivých proměnných a parametrů každé dimenzi. Řešení je ukládat hodnoty filtrů do proměnné XML určeného formátu. Takovouto proměnnou lze přiřadit parametru reportu řazené kolekce a používat na dashboardu v rámci komunikace widgetů.
Toto řešení vyžaduje použití více vzorců SETPROPERTY ve více akcích k vyplnění jednotlivé proměnné XML.
Máte například report, ve kterém jsou dimenze Produkt a Období dimenzemi filtru. Volby uživatele z těchto dimenzí se předávají do proměnných reportu s názvy rv_product a rv_period. Na tyto proměnné reportu poté odkazují vzorce SETPROPERTY za účelem vyplnění třetí proměnné reportu s názvem rv_XMLFilters.
Pro dimenzi filtru Produkt se tento vzorec SETPROPERTY použije v rámci akce Nastavit parametry:
=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Product]","Unique",ReportVariables.rv_product.text)
.
Pro dimenze Období se použije tento vzorec:
=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Period]","Unique",ReportVariables.rv_period.text)
Uživatelským výběrem z filtrů Produkt a Období se do proměnné XMLFilters vyplní hodnoty z proměnných rv_product a rv_period. Například:
<Table><Row
name="[Period]"><Property name="unique" value="[Period].[All Years].[2012]"
/></Row><Row name="[Product]"><Property name="unique"
value="[PRODUCT].[All Tires].[Special Offers]"
/></Row></Table>
Přiřazením proměnné XML parametru reportu řazené kolekce lze hodnoty obsažené v proměnné použít pro komunikaci widgetů, pokud byl report zobrazen v dashboardu.