Obsah


Úvod
Nastavení dotazů
   Tabulka MainItems
   Tabulka Stat1
   Tabulka Stat2
   Tabulka Stat3
   Tabulka TreeItems
   Tabulky GridDataPer...

Úvod

Kompletní nastavení Dashboardu je k dispozici v Evoliu:

  • menu Nastavení -> Kompletní nastavení karet.

Tam můžete najít karty pojmenované Dashboard (v databázi jde o tabulky začínající zKarta… a tabulku zDotazySQL). Každá karta musí mít jedinečné pojmenování, např. Dashboard1. Počet karet Dashboardu není omezen, tzn. můžete přidávat nové - projeví se v číselníku vlevo nahoře (nyní pojmenovaný jako Oblast.

Obsah Dashboardů je zcela v rukách Vaší fantazie - obecně existují čtyři základní pohledy:
  • Analýza dle ročníků spisů
  • Analýza dle oprávněných
  • Analýza dle zaměstnanců
  • Analýza financí úřadu

Nedejte se uvedeným výčtem omezovat - Dashboard může zobrazovat i zcela specifické věci, např. vytížení serveru, analýzu lustrací, dražby apod.

Nastavení dotazů

  • Nastavení dotazů je nejdůležitější součástí nastavení.
  • Vždy platí, že dotazy musí mít pevný počet sloupců a jejich názvy ani pořadí se nesmí měnit.
  • Každá sekce Dashboardu má svůj/svoje dotazy.

Tabulka MainItems

  • Slouží pro zobrazení hlavního seznamu pojmenovaného jako Oblast.
  • Povinné sloupce:
    • Name - jméno položky
    • ID - ID položky (používá se pro filtraci v podřízených dotazech)
    • Caption - Popisek
    • Region - je umístěn jako zaškrtávací box nad seznamem položek, nesmí jich být moc
    • Picture - název obrázku, který se má zobrazit ve čtverečku položky (nutné správné nastavení webserveru a složky s obrázky)
  • Příklad:

SELECT
'20' + RIGHT(číslo_smlouvy, 2) AS Name,
'20' + RIGHT(číslo_smlouvy, 2) AS ID,
'Počet spisů: ' + Cast(Count(*) as nvarchar(20)) AS Caption,
'CZ' AS Region,
'AVESoft_logo_117' AS Picture
FROM SmlouvyProdukt
WHERE (PRODUKT = 'Exekucni_spis') AND (Číslo_smlouvy IS NOT NULL)
GROUP BY '20' + RIGHT(číslo_smlouvy, 2), 'Ročník 20' + RIGHT(číslo_smlouvy, 2)
ORDER BY Name


Tabulka Stat1

  • Slouží pro zobrazení první statistiky - koláčového grafu.
  • Povinné sloupce:
    • Name - jméno položky
    • Total - počet jednotek - slouží jako hodnota pro koláčový graf
  • Příklad: POZOR!!! V dotazu musí být v podmínce parametr @P0, který se odkazuje na nadřazenou položku ID (pokud na parametr zapomenete, nebude se koláčový graf měnit)


SELECT
IsNull(IsNull((SELECT PoleText1
FROM zCiselnikSys
WHERE (TypCiselniku = 'ExekucniSpis') AND (NazevCiselniku = 'Stav') AND (HodnotaTxt = exStav)), exStav),'<nezadáno>') as Name,
Count(*) AS Total
FROM SmlouvyProdukt
WHERE (PRODUKT = 'Exekucni_spis') AND ('20' + RIGHT(číslo_smlouvy, 2))=@P0
GROUP BY exStav
ORDER BY 1


Tabulka Stat2

  • Slouží pro zobrazení druhé statistiky - grafu vývoje v čase.
  • Povinné sloupce:
    • Year - rok
    • Month - měsíc
    • Total - první číselná řada - obvykle větší hodnoty (např. všechny přijaté platby v daném měsíci)
    • TotalItem - druhá číselná řada - obvykle menší hodnoty (např. přijaté platby od oprávněného v daném měsíci)
  • Příklad: POZOR!!! V dotazu musí být v podmínce parametr @P0, který se odkazuje na nadřazenou položku ID (pokud na parametr zapomenete, nebude se koláčový graf měnit)

SELECT
Prichozi.Year,
Prichozi.Month,
Prichozi.SumaPrichozi as Total,
Odchozi.SumaOdchozi as TotalItem
FROM
(SELECT YEAR(fplDatumPlatby) AS Year, MONTH(fplDatumPlatby) AS Month, SUM(fplCastka) AS SumaPrichozi
FROM FinancePlatby
WHERE (CAST(YEAR(fplDatumPlatby) AS nvarchar(5)) = @P0)
GROUP BY YEAR(fplDatumPlatby), MONTH(fplDatumPlatby)) AS Prichozi INNER JOIN
(SELECT YEAR(DatumSplatnosti) AS Year, MONTH(DatumSplatnosti) AS Month, SUM(CastkaCelkova) AS SumaOdchozi
FROM FinancePlatbaOdchozi
WHERE (CAST(YEAR(DatumSplatnosti) AS nvarchar(5)) = @P0)
GROUP BY YEAR(DatumSplatnosti), MONTH(DatumSplatnosti)) AS Odchozi ON Prichozi.Year = Odchozi.Year AND Prichozi.Month = Odchozi.Month


Tabulka Stat3

  • Slouží pro zobrazení třetí statistiky - budíkového ukazatele (v některé z budoucích verzí bude nahrazen jiným typem grafu).
  • Povinné sloupce:
    • Total - obvykle větší hodnota (např. počet všech spisů)
    • TotalItem - obvykle menší hodnota (např. počet spisů od oprávněného)
  • Příklad: POZOR!!! V dotazu musí být v podmínce parametr @P0, který se odkazuje na nadřazenou položku ID (pokud na parametr zapomenete, nebude se koláčový graf měnit)

SELECT
Count(*) AS Total,
Sum(CASE WHEN ('20' + RIGHT(číslo_smlouvy, 2)) = @P0 THEN 1 ELSE 0 END) as TotalItem
FROM SmlouvyProdukt
WHERE (PRODUKT = 'Exekucni_spis')



Tabulka TreeItems

  • Slouží pro zobrazení stromu položek vlevo dole
  • Toto stromové zobrazení umožňuje zobrazovat upřesňující informace
  • Strom je vždy tvořen dvěma úrovněmi - kategoriemi a podřízenými položkami
  • Povinné sloupce:
    • Category - název kategorie, která tvoří hlavní uzly stromu
    • CategoryID - ID kategorie, která tvoří hlavní uzly stromu
    • ID - ID položky, která tvoří první úroveň zanoření stromu (je zobrazena pod svou kategorií)
    • Name - název položky, která tvoří první úroveň zanoření stromu
  • Příklad: POZOR!!! V dotazu musí být v podmínce parametr @P0, který se odkazuje na nadřazenou položku ID (pokud na parametr zapomenete, nebude se koláčový graf měnit)

SELECT
exZodpovida AS Category,
exZodpovida AS CategoryID,
IsNull(exStav,'<nezadáno>') as ID,
IsNull(IsNull((SELECT PoleText1
FROM zCiselnikSys
WHERE (TypCiselniku = 'ExekucniSpis') AND (NazevCiselniku = 'Stav') AND (HodnotaTxt = exStav)), exStav),'<nezadáno>') + ' (' + cast(count(*) as nvarchar(20)) + ')' AS Name
FROM SmlouvyProdukt
WHERE (PRODUKT = 'Exekucni_spis') AND exZodpovida is not null AND ('20' + RIGHT(číslo_smlouvy, 2)) = @P0
GROUP BY exZodpovida, exStav
ORDER BY 1,2


Tabulky GridDataPer...

  • Slouží pro zobrazení dat v tabulce (gridu) vlevo dole
  • Tento grid slouží jako malá Knihovna filtrů
  • Povinné sloupce nejsou, doporučujeme omezit je na 5 až 7, aby zůstala zachována přehlednost
  • Zobrazení dat v grigu je interaktivní - záleží na tom, jakou položku uživatel označí:
    • Oblast - výběrem hlavní položky Dashboardu se spustí dotaz GridDataPerMainItem s parametrem @P0 (ID hlavní položky)
    • Oblast - výběrem hlavního uzlu stromu (kategorie) se spustí dotaz GridDataPerCategory s parametrem @P0 (ID hlavní položky) a @P1 (ID kategorie)
    • Oblast - výběrem podřízeného uzlu stromu se spustí dotaz GridDataPerTreeItem s parametrem @P0 (ID hlavní položky), @P1 (ID kategorie) a @P2 (ID položky stromu)
  • POZOR!!! Každý dotaz může zobrazovat zcela jiné data - pro kategorii to může být statistika, ale pro podřízenou položku stromu např. jmenovitý seznam spisů
  • Příklad:

SELECT TOP 500
číslo_smlouvy as Spis,
dbo.fnExSubjekt(ID, 'OPRAVNENY') as Oprávněný,
Round((FinancePrehled.fsmOprJistina_Narok),0) AS Jistina,
Round((FinancePrehled.fsmOprNakladySR_Narok + FinancePrehled.fsmOprNakladyExOpr_Narok),0) AS Nákl. nalézacího řízení,
Round((FinancePrehled.fsmOprUroky_Narok + FinancePrehled.fsmOprPoplatekProd_Narok + FinancePrehled.fsmOprUrokyProd_Narok + FinancePrehled.fsmOprSmlPokuta_Narok),0) AS Úroky a spol.,
Round((FinancePrehled.fsmOprCelkem_Narok),0) AS Celkem pohledávka,
Round((FinancePrehled.fsmOprCelkem_Uhrazeno),0) AS Plnění vymožené,
Round((FinancePrehled.fsmOprCelkem_PrevNaUcet),0) AS Plnění vyplacené opr.,
Round((FinancePrehled.fsmOprCelkem_ZustavaPrevest),0) AS Plnění nevyplacené
FROM SmlouvyProdukt INNER JOIN FinancePrehled ON FinancePrehled.fsID = SmlouvyProdukt.ID
WHERE (PRODUKT = 'Exekucni_spis') AND ('20' + RIGHT(číslo_smlouvy, 2))=@P0 AND exZodpovida = @P1 AND IsNull(exStav,'<nezadáno>') = @P2
ORDER BY 1,2