Reportování¶
Tento text popisuje modul rep, pro definici reportů.
Úvod¶
Modul umožňuje nadefinovat reporty nad libovolnou databází, spouštět je pro různé časové úseky, případně exportovat do Excelu.
Pro definici dotazů je třeba znalost databáze a znalost SQL.
Modul najdete ve webovém rozhraní v pod Moduly - Reportování. Pro definici přehledu je třeba nadefinovat následující:
Zdroj dat: Tohle je
connection string
do databáze, ve které bude TracePRO spouštět dotaz. Pamatujte, že spojení do databáze musí být read-only. Jinak vznikne nebezpečí poškození dat.Dotaz: Obsahuje databázový dotaz vztažený ke konkrétnímu zdroji dat, a volitelně také předpis na výpočet dalších řádků.
Přehled: Je seznam Dotazů, které se spustí v rámci jednoho přehledu.
Formát dotazu¶
Vlastní entita dotaz má kromě jména, popisu, a zdroje dat dvě pole. Pole Dotaz musí vrátit řádky, které osahují tato pole:
tm - datum a čas události.
cat - název kategorie.
val - hodnota.
cat_idx - nepovinné - index pro řazení katergorií. Pokud není, seřadí se kategorie (cat) podle abecedy.
Pole Řádky může být prázdné, pak se použijí všechny kategorie cat z dotazu. Může ale obsahovat také seznam řádků, které se spočítají podle následujících pravidel:
Jestliže je přítomen řádek *, použijí se i všechny kategorie z dotazu.
Prázdné řádky se ignorují
Pokud má řádek formát
JMENO=VYRAZ
, a výraz je jednoduchý matematický výraz s +, -, *, / a závorkami, výsledek se spočítá tak, že za proměnné ve výrazu se dosadí hodnoty kategorií z dotazu, a výsledek se zobrazí pod jménem kategorieJMENO
.
Příklady reportů¶
Počty kusů pro položku na různých operacích¶
select
cnt_order_details.tm,
concat(op, " - ", act, " - ", p_act.name) as cat,
cnt_good as val,
op as cat_idx
from
productionorder, cnt_order_details, p_act
where
productionorder.id=cnt_order_details.order_id
and
productionorder.item like "ITEM%"
and
cnt_order_details.act in (2101, 2102, 2301, 2302, 2501, 2502)
and
cnt_order_details.op >= 0
and
cnt_order_details.act = p_act.id
;
Vybíráme podle jména položky - vše, co tím jménem začíná. Dále pak
bereme podle seznamu úkonů, a pouze operace z postupu
(cnt_order_details.op >= 0
).
DPMO¶
Dotaz bude takový:
- ::
select tm, clazz, key as cat, val from stat_order_counter_k, stat_order_counter_v, productionorder where stat_order_counter_k.id = stat_order_counter_v.c_id and productionorder.id = stat_order_counter_k.order_id and productionorder.item like „OBU5030%“ and act in (2301, 2302) and key in („opportunities“, „DEFECTS“, „COUNT“) order by tm desc ;
Ale ještě musíme něco napsat do Řádků.
DPMO=1000000*DEFECTS/opportunities