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

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 filtrování 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

5/5 - (2 votes)
Rubrika: SSRS - Reporting services

O Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako data engineer freelancer. Během cca 10 let jsem zde shromáždil přes 600 IT case studies, průvodců, návodů a tipů určených zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Data Engineeringu, korporátních financí a reportingu. Zaměřuji se především na Microsoft technologie (on-prem i cloud) a různé synergické efekty v rámci jejich produktového portfolia pro dataře a finanční profesionály. Věnuji se také dalším platformám a významným hráčům z oblasti open source technologií. 🔥 Pokud vám tento článek pomohl, ocením referenci na vašem webu nebo zmínku v komunitě. A mám pro vás ještě tip: řešíte-li nějaký zapeklitý Excel problém, přihlašte se do naší Excel Facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse ».

2 thoughts on “SSRS | Díl 5 – Nastavení parametru filtru v SSRS – Reporting services

  1. Sir

    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!

    1. Honza Zedníček Autor

      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

Leave a Reply

Your email address will not be published. Required fields are marked *