V seriálu o hierarchiích pokračujeme dalším článkem. Minule jsem ukazoval Jak správně vytvořit hierarchii v databázi a Jak se dá rekurzivním dotazem dotazovat na hierarchii v SQL. Dnes zabrousíme do Reporting Services, které mají integrovanou podporu pro hierarchie v SSRS nativně. Nemusíte tak data před reportováním nijak transformovat a vše funguje “na tlačítko”.

Jak reportovat hierarchie v Reporting services (SSRS)

Založení SSRS projektu a reportu

Založíme si čistý Reporting services projekt a poté report, který jsem nazval “Hierarchy report”. Pokud nevíte jak na to, tak jsem na to napsal návod – Založení SSRS projektu a reportu

Hierarchie v SSRS - založení projektu - ukázka
1 – Založení nového projektu a reportu

Založení Data source a Datasetu v Reporting services (SSRS)

Jako Data source nastavíme Databázi, kde leží tabulka “zamestnanci”, se kterou jsme pracovali v článku “Jak správně vytvořit hierarchii v databázi”. Pro připomenutí – tabulka obsahuje seznam 15-ti zaměstnanců a cizí klíč, který určuje vztah nadřízenosti a podřízenosti. Jako dataset nastavíme tabulku zamestnanci (pokud nevíte jak na to, tak návod jdem napsal zde – Založení Data source v SSRS + Jak nastavit dataset v SSRS).

Vytvoření hierarchie - ukázka
2a – Zdrojová tabulka s parent-child hierarchií

 

 

 

 

 

 

 

 

Hierarchie v SSRS - ukázka založení data source a datasetu
2b – nastavení Datasource a Datasetu na tabulku se zamestnanci

Vytvořenní matice (matrixu) v SSRS

Vytvoříme matici (matrix) o 3 sloupcích a vyplníme pole tak jako na obrázku

Hierarchie v SSRS vytvoření matice
3 – Vytvoření matice (matrixu) a nastavení polí ke zobrazení

Nyní vytvoříme hierarchii, což je relativně nejsložitější část

  • (4a) Klikneme pravým tlačítkem na Row Group “jmenoprijmeni” a jako group kritérium nastavíme id_zamestnanec
  • (4b) Poté v tom samém okně klikneme na advanced a nastavíme Recursive parent na id_nadrizeny.
  • (4c) V tento moment by měla být hierarchie funkční, nicméně se nám stále budou zobrazovat řádky pod sebou a hierarchie nebude mít hezký tvar (viz obrázek), to změníme.
  • (4d) Nejdříve nastavíme zarovnání. Každý člen hierarchie má svou úroveň – ředitel má úroveň 0, manažeři úroveň 1 a zaměstnanci úroveň 2. Toho využijeme a u zarovnání zleva nastavíme vzorec. Level hierarchie zjistíme prostřednictvím výrazu v SSRS =Level(“jmenoprijmeni”) , který vrátí číslo (úroveň hierarchie). No a pokud známe úroveň hierarchie, tak můžeme vyplnit zarovnání zleva jako =Level(“jmenoprijmeni”) * 20 & “pt” – jinými slovy úroveň * 20 bodů. Tím zabezpečíme, že vrchní členové (parent) budou zarovnáni o 20 bodu více vlevo než jejich členové (children).
  • (4e) Průběžný výsledek už vypadá lépe a vidíme, že jsou zaměstnanci pěkně srovnaní. Ještě to trošku vylepšíme
  • (4f) Klikneme znovu na Row group “jmenoprijmeni” a přejdeme na kartu visibility. Označíme Hide a označíme Display can be toggled by this report item: a vybereme jmenoprijmeni
  • (4g) Finální report vypadá OK, všichni členové hierarchie jsou odsazeni a zabaleni =)
Hierarchie v SSRS vytvoření hierarchie - krok 1
4a – přenastavení group kritéria na id_zamestnanec
Hierarchie v SSRS vytvoření hierarchie - krok 2
4b – nastavení recursive parent – nadřazeného člena
Hierarchie v SSRS vytvoření hierarchie - krok 3
4c – Průběžný výsledek po nastavení recursive parent
Hierarchie v SSRS vytvoření hierarchie - krok 4
4d – Nastavení odsazení zleva pro členy hierarchie
Hierarchie v SSRS vytvoření hierarchie - krok 5
4e – průběžný výsledek po nastavení odsazení
Hierarchie v SSRS vytvoření hierarchie - krok 6
4f – nastavení zabalení hierarchie v SSRS
Hierarchie v SSRS vytvoření hierarchie - finální report
4g – Finální report
5/5 - (1 vote)

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

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 Přihlašte se do naší Excel facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »

Leave a Reply

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