SSRS | Díl 5 – Nastavení parametru v SSRS – Reporting services

SSRS | Díl 5 – Nastavení parametru v SSRS – Reporting services
Hodnocení

Ve 4. díle (Díl 4 – Vytváříme report v SSRS) jsme si připravili jednoduchý report, který zobrazuje data o prodejích. Report má formu jednoduché tabulky zobrazující výsledek datasetu, který jsme si připravili v minulých dílech. Slíbili jsme si, že nebudeme report moc komplikovat, ale jednu věc bychom udělat měli. Report, který zobrazuje pouze tabulku není pro uživatele příliš vyhovující v tom smyslu, že se nad ním nedá filtrovat. Tento článek bude zaměřen na to, jak udělat nastavení parametru v SSRS, které umožňuje filtrování výsledků.

Nastavení parametru v SSRS

Po posledním cvičení bychom měli mít připravený report s tabulkou jako na obrázku:

Nebudeme si zadání komplikovat a budeme chtít pouze 1 filtr nad Sloupcem “Rok” s tím, že se uživateli nabídne rozbalovací menu, ve kterém si bude moci vybrat rok, který chce zobrazit.

Vytvoření datasetu pro SSRS filtr

Každý filtr obsahuje nějakou nabídku hodnot. Seznam hodnot můžeme sepsat ručně tak, že napíšeme do filtru třeba roky 2015 a 2016. To ale není vůbec vhodné. Chceme totiž, aby byl report bezúdržbový. Často se v podniku staráte o desítky reportů a pokud nemáte tyto filtry dynamické, zabere vám opravdu mnoho času se o reporty starat a aktualizovat hodnoty.

Vytvoříme si proto dynamický dataset, který při filtru reportu načte seznam všech možných hodnot, které lze vybrat. Vzpomeňte si na díl, ve kterém jsme dělali dataset. K definici datasetu jsme použili script ad [1]. SQL dotaz pro dataset (Filtr Rok) bude vypadat logicky takto [2]. Výhoda je zřejmá, pokud by se uskutečnit prodej v roce 2017, filtr jej automaticky nabídne.

[1] Definice datasetu pro report
[2] SQL dotaz pro dataset filtru
 

 

 

 

 

 

 

SQL dotaz zkopírujeme a vytvoříme si v reportu nový dataset [3], [4]

[3] Nový dataset pro Filtr Rok
[4] Takto by to mělo vypadat
 

 

 

 

 

 

Definice parametru v Reporting Services

V momentě kdy máme připraven dataset pro filtr Rok, můžeme pokračovat nastavením parametru. Parametry se zakládají z karty Report data, položka Parameters, zvolíme Add parameter [5]. Na další obrazovce si parametr pojmenujeme a nastavíme datový typ Integer [6]. V dalším kroku klikneme na Available Values a zvolíme Get values from a query [7]. Následně potvrzením dokončíme nastavení parametru, po kliknutí na Preview po nás report vyžaduje vyplnit filtr rok [8].

Nastavení parametru v SSRS
[5] New Parameter
[6] Nastavení datového typu parametru
 

 

 

 

 

 

 

 

[7] Navázání parametru na dataset
[8] Výsledek po zdárném nastavení parametru
 

 

 

 

 

 

 

 

Provázání filtru s hlavním datasetem

To, že jsme úspěšně nastavili parametr v reportu ještě neznamená, že na parametr reaguje hlavní dataset, který vrací Tržby po produktech. Provázání je potřeba nastavit. Není to vůbec těžké. Stačí editovat hlavní dataset a do SQL dotazu napsat do WHERE klauzule jednoduchou podmínku, která nám výsledek omezí podle toho co je zrovna vybráno ve filtru.

Na parametry se v Reporting services dá v SQL dotazu bez problému odkázat. Parametr v SQL dotazu definujeme přes @NazevParametru [9]. Potom klikneme na kartu Parameters a obě hodnoty provážeme jako na obrázku [10]

[9] Provázání parametru s hlavním datasetem
[10] Dokončení provázání hlavního datasetu na parametr
 

 

 

 

 

 

A je vymalováno, nastavení parametru v SSRS je hotové. Report by měl na filtr bez problémů reagovat.

Nastavení parametru v SSRS

Další pokračování bude zaměřeno na Deploy SSRS reportu na Report server, aby si ho mohli prohlédnout uživatelé – Díl 6 – Deploy reportu v SSRS

_______________________________________________________________________________________________
Intelligent technologies - podniková řešení a školení

Komentářů

Tento článek má  2 komentáře

  • Zdravím Honzo,

    musím Vám poděkovat. Pokoušel jsem se o parametry s dynamickými hodnotami druhý možná třetí den, dělal jsem vše podle návodů (v angličtině) ale nic nešlo. Poté jsem si řekl že zkusím návod od Vás a “je vymalováno” vše funguje jak má.

    Nechápu v čem byla chyba zdá se mi to docela stejný postup každopádně opakování je matka moudrosti.

    Ještě jednou díky!

    PS: pokračujte v tom co děláte!

    • Díky! Tak hlavně že pomohlo. Kde byla chyba těžko říct…kde se často dělá chyba je že (i) parametr “Name” nesmí být s mezerou (ii) chyba provázání parametru na dataset (viz obr 10) (iii) pokud zadate možnost mit parametr s multiple values, tak je to jiná písnička…tam je to trochu složitější => parametr totiž podá do datasetu string s hodnotami oddělenými čásrkou “hodnota1, hodnota2″…já to dělám tak, že si připravím v sql funkci, která rozseká parametr na tabulku, kterou pak inner joinem přidám do hlavního skriptu a inner join se postará o omezení

      Zkusím připravit nějaký další článek až bude čas
      Zatím

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

Tato webová stránka používá softwarovou ochranu proti spamu

Sidebar