Budeme pokračovat v tématu z předchozího dílu, věnovaného tvorbě parametrů reportu. Přidáme do reportu parametry různých datových typů a kromě jejich použití jako filtru dat si ukážeme, jak pomocí parametrů měnit vzhled reportu.
Přidávání parametrů
-
Základní tabulku tedy máme hotovou a můžeme přejít k obohacení reportu o parametry (příslušné datové sady naleznete v minulém díle). Nejprve vytvoříme parametr pro filtraci záznamů na základě křestního jména (bude se testovat, jestli je hodnota parametru obsažena jako podřetězec). Půjde o parametr textového typu, který bude moct zůstat nevyplněn (report pak bude vracet záznamy se všemi jmény). Vytvoříme tedy nový parametr a pojmenujeme ho Name – jeho základní nastavení bude vypadat jako na obrázku:
Žádné výchozí hodnoty u tohoto parametru nastavovat nebudeme.
-
Dalšími dvěma parametry nabídneme uživateli filtraci dat podle specifikace geografické lokality. K tomu použijeme dva parametry, jeden pro výběr státu a druhý pro výběr menšího územního celku v rámci vybraného státu. Založíme nový parametr country a nastavíme ho následovně:
Tento parametr bude nabízet hodnoty získané datasetem ds_country, položku Available values vyplníme takto:
-
Následně přidáme parametr province pro výběr menší geografické oblasti. Provázání poskytovaných oblastí na základě vybrané země je zajištěno ve zdrojovém datasetu (všimněte si, že po spuštění reportu není možné vybrat „provincii“, dokud není vybrána alespoň jedna země). Nastavení reportu bude vypadat takto:
U tohoto reportu budeme chtít, aby byly ve výchozím stavu vybrány všechny hodnoty, to provedeme následujícím nastavením:
-
Dále přidáme dvojici parametrů pro výběr záznamů s určitým datem vzniku (resp. datem registrace zákazníka). Tyto parametry pojmenujeme Date_from a Date_to a oba budou typu Date/Time. První z nich bude moct zůstat nevyplněn (tím pádem nebude specifikována dolní mez rozsahu) a výchozí hodnota druhého bude nastavena na aktuální datum. Základní nastavení obou bude vypadat následovně (hodnoty Name a Prompt se pochopitelně budou lišit):
-
Posledním parametrem budeme ovlivňovat (ne)zobrazování sloupce obsahujícího e-mailové adresy zákazníků. Tento parametr pojmenujeme pHide a bude typu Boolean.
WHERE sp.StateProvinceID in (@province)
AND cr.CountryRegionCode in (@country)
AND per.FirstName LIKE (@Name+'%')
AND ((per.ModifiedDate BETWEEN @Date_from AND @Date_to)
OR (@Date_from is NULL AND per.ModifiedDate <=@Date_to)
)
ORDER BY st.Name, per.FirstName,per.LastName ASC
Všimněte si, že parametry „Date_from“ a „Date_to“ jsou porovnávány s hodnotou ModifiedDate. Tato hodnota uchovává datum poslední modifikace záznamu, ne nutně datum registrace zákazníka – v této ukázce je tedy použita trochu „uměle“ :-).
Výsledný report pak po spuštění vypadá takto:
Závěr
V posledních dvou článcích jsme se naučili, jak založit nový report, naplnit jej datovými výstupy z požadované databáze a tyto výstupy filtrovat pomocí parametrů. Také jsme si ukázali, že parametry jsou použitelné i pro podmíněné formátování designu reportu.
Prozatím nešlo o nic, co by bylo nezvládnutelné s použitím „běžných“ technologií, v následujících částech se nicméně konečně dostaneme k funkcím Reporting Services, které umožňují shlukování dat do skupin (a další práci s nimi), tvorbu grafů, atd.
Právě tyto funkce představují hlavní sílu tohoto reportovacího nástroje.