SQL Hierarchie Díl 3 – Jak na hierarchie v SSRS – Reporting services

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 SSRS

1) 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

2) Založení Data source a Datasetu

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

3) Vytvořenní matice (matrixu)

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í

4) 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

_______________________________________________________________________________________________
Intelligent technologies - podniková řešení a školení
Stránkonoš.cz - webové stránky za rozumnou cenu
SQL Hierarchie Díl 3 – Jak na hierarchie v SSRS – Reporting services
Hodnocení

Napsat komentář

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.