Jak si připravit často používané náhledy na data

Top  Previous  Next

Seznam témat:

řešení

 

Řešení

V některých případech potřebuje uživatel často prohlížet data v takové podobě, kterou mu nenabízí žádný ze standardních prohlížečů. Uživatelé tento nedostatek často složitě řeší tvorbou různých sestav, přitom řešení je mnohem jednodušší.

Pro tyto případy je vhodné použít tzv. uživatelské prohlížeče. Ty mají tu výhodu, že uživatel může využít standardních filtrovacích a vyhledávacích nástrojů, může k těmto prohlížečům přidávat sestavy, může je řadit dle potřeby a s využitím schránky může obsah přenáčet např. do excelu (CTRL A - vybrat všechny zobrazené záznamy, CTRL C - zkopírovat do schránky, CTRL V - vložit ze schránky obsah do otevřené excelovské tabulky).

 

Postup vytvoření uživatelského prohlížeče

 

Způsob definice je možno ukázat na následujícím příkladu. Po zvolení funkce se otevře následující dialog:

Nyní uživatel přidá další záznam a doplní formulář takto:

a na vedlejší záložce "Zdroj dat" se zadá SQL dotaz (například takto):

Dialog nyní uložte (pokud zůstane nevyplněný řádek "primární klíč", ztratí budoucí prohlížeč některé uživatelské vlastnosti). Při dalším spuštění programu se prohlížeč objeví v menu "Sklady".

 

Příklad :

Následující dotaz zobrazí všechny položky výdejek včetně názvů položek a včetně vazby na příjemky, odkud byly čerpány evidenční ceny. V tomto pohledu je dále sloupec s názvem dodavatele dané položky.

 

SELECT

osklvydejit.obd_id,osklvydejit.age_id, osklvydejit.rada_id, osklvydejit.dokl_id,

 

month(udokhd.datprip) as _mesic_vedejky,

year(udokhd.datprip) as _rok_prijemky,

osklvydejit.obd_id,osklvydejit.age_id, osklvydejit.rada_id, osklvydejit.dokl_id,

osklvydejit.material_id,

(Select nazev from dba.omater where osklvydejit.material_id=omater.id_material) as _nazev_polozky,

osklvydejit.pohyb_id,

osklvydejit.evidcena,

osklvydejit.prodcena,

osklvydejit.mnoz*(osklvydejit.storno*(-2)+1) as _mnozstvi,

 

_mnozstvi*osklvydejit.evidcena as _evidcenacelkem,

_mnozstvi*osklvydejit.prodcena as _prodcenacelkem,

 

osklvydejit.cl1_id, osklvydejit.cl2_id, osklvydejit.cl3_id, osklvydejit.cl4_id,

osklvydejit.data_id,

udokhd.datdokl, udokhd.datprip, udokhd.autor, udokhd.cas, udokhd.ico, udokhd.multi,

(Select Nazev1 from dba.gfirmy where gfirmy.id_ico = udokhd.ico and gfirmy.id_multi=udokhd.multi ) as _nazevzakaznika,

 

(select dokl_id from dba.osklprijemit where id_poradi=prijemevidporadi_id ) as _dokladprijemky,

(select rada_id from dba.osklprijemit where id_poradi=prijemevidporadi_id ) as _radaprijemky,

(select age_id from dba.osklprijemit where id_poradi=prijemevidporadi_id ) as _ageprijemky,

(select obd_id from dba.osklprijemit where id_poradi=prijemevidporadi_id ) as _obdobiprijemky,

 

(Select ico from dba.udokhd where _obdobiprijemky=udokhd.obd AND _ageprijemky=udokhd.age AND

 _radaprijemky=udokhd.rada AND _dokladprijemky=udokhd.id_dokl ) as _dodavatel_ico,

 

(Select multi from dba.udokhd where _obdobiprijemky=udokhd.obd AND _ageprijemky=udokhd.age AND

 _radaprijemky=udokhd.rada AND _dokladprijemky=udokhd.id_dokl ) as _dodavatel_pobocka,

 

(Select datprip from dba.udokhd where _obdobiprijemky=udokhd.obd AND _ageprijemky=udokhd.age AND

 _radaprijemky=udokhd.rada AND _dokladprijemky=udokhd.id_dokl ) as _datum_prijemky,

 

(Select Nazev1 from dba.gfirmy where gfirmy.id_ico = _dodavatel_ico and gfirmy.id_multi=_dodavatel_pobocka ) as _nazevdodavatele

 

FROM dba.osklvydejit, dba.udokhd

WHERE osklvydejit.obd_id=udokhd.obd AND osklvydejit.age_id=udokhd.age AND

 osklvydejit.rada_id=udokhd.rada AND osklvydejit.dokl_id=udokhd.id_dokl

 

ORDER BY osklvydejit.obd_id, osklvydejit.age_id, osklvydejit.rada_id, osklvydejit.dokl_id

 

 

 

Související témata