e-mail: rybak.martin@gmail.com Drummer and Dawe 2008
Obsah 1 Úvodní slovo k databázi... 2 2 Formuláře... 2 2.1 Dotazy... 5 3 Sestavy... 6 4 Makra... 7 1
1 Úvodní slovo k databázi Databáze hospůdek Tato databáze vznikla pro předmět 2OP83 a téma vycházelo z nápadu a vlastní iniciativy autora. Účelem je uchování dat ohledně navštěvovaných podniků (restaurace, hospody, bary a další). Krycí název pro databázi je Kolumbus, aneb objevování pražských hospůdek a barů. Databáze tedy slouží k zadávání a editaci hospůdek, ale nejen to, umí i evidovat různé akce a členy, kteří se akcí pravidelně účastní. Díky této databázi už nebude nikdy problém s rozhodováním kam zrovna vyrazit. Databáze přehledně zobrazuje základní informace o podniku (název, kontakt), dále pak řadu konkrétních a užitečných informací, jako např. pivo, které se v hospůdce točí a jeho cena, jestli se tam vaří a jaké je v hospůdce herní vybavení nebo např. jaká zastávka městské hromadné dopravy je nejblíže. Pro snazší lokalizaci hospůdky je v databázi zabudována i funkce lokalizace pomocí GPS souřadnic. Databáze umožňuje rychlé a přehledné vyhledávání podniků, možnost tisknout sestavy a přehledy a má i řadu dalších zajímavých funkcí, jako např. zobrazení některých hodnot pomocí přehledných grafů. Práce s databází je díky propracovanému uživatelskému prostředí velmi přívětivá. Pohodlnou práci s databází zajišťují především přehledné formuláře, makra, která na pozadí automatizují některé úkony a také např. uživatelská nápověda ke každému formuláři. 2 Formuláře Pro odstínění běžného uživatele od strohé podoby databáze bylo vytvořeno 14 formulářů, z toho 4 jako podformuláře využité v jiných formulářích a 2 jako rozcestník či menu. V dalším textu abstrahuji od popisu podformulářů, jelikož ty budou stručně popsány s hlavními formuláři, do kterých byly vloženy. Formulář F_Menu Tento formulář se otevře automaticky po spuštění databáze a slouží jako hlavní navigační menu pro další formuláře a obecně i pro práci s celou databází. Jako hlavní prvek zde bylo využito souhrnné makro M_Menu, ve kterém je definována událost pro každé tlačítko ve formuláři. Po kliknutí na obrázek vlevo nahoře (dveře se šipkou) bude práce s databází ukončena. Pokud se budeme chtít něco dovědět o databázi, stačí kliknout na tlačítko otazníku vpravo nahoře (formulář F_About). 2
Formulář f_hospody_zadávání Tento formulář už je o dost zajímavější a právě na něm se pokusím popsat většinu použitých prvků, dotazů a nastavení v databázi. Tento formulář, jak už sám název napovídá, slouží především k zadávání nových hospůdek a editaci již zadaných. Formulář tedy primárně vychází z tabulky Hospody. Dále obsahuje dva podformuláře F_výčepy a F_vybavení. Tyto podformuláře jsou nekonečnými formuláři a slouží k doplnění tabulek 3
Výčepy a Druh vybavení. Např. podformluář F_výčepy je založen na dotazu, který vyselektuje druh piva i cenu z tabulek Piva a Výčep. Pole Vyber pivo je pole se seznamem a je nastaveno tak, že ukazuje konkrétní druh piva, ale na pozadí to edituje ID_piva. Pokud je v hospodě druh piva, který ještě není v tabulce Piva, je možné tento nový druh piva přidat pomocí tlačítka Přidej nový druh, kdy nám vyjede samostatný formulář F_pivo_edit a v něm můžeme přidat nový druh nebo editovat stávající. To samé je možné u Vybavení. Ve formuláři jsou použity standardní editovací pole, pole se seznamem, zaškrtávací pole a rámečky alias skupiny voleb. Nalezneme tam i jakési aktivní pole, např. pod polem Poznámka je informace o zbývajícím počtu znaků, které je ještě možné vložit do pole poznámka. Syntaxe je následující: ="Zbývající počet znaků: " & 255-Val(Len(*Poznámka_v+)) Další vymožeností tohoto formuláře je možnost, po zadání GPS souřadnic dané hospůdky, vyvolat webový prohlížeč na portálu mapy.cz a nechat si ukázat přesnou polohu hospůdky. Syntaxe: ="Ukaž na mapy.cz #http://www.mapy.cz/?query=loc:" & *GPS_šířka+ & "," & *GPS_délka+ Abychom mohli do databáze uložit syrové hodnoty GPS, ale zároveň mohli pracovat s odkazem pro mapy.cz, obsahuje formulář ještě dvě skryté (pomocné) pole GPS_šířka a GPS_délka, ve kterých se převádí souřadnice do řetězce vhodného pro poskládání dotazu na portál mapy.cz. Např. pole GPS_šířka má tuto syntaxi: =[GPS01] & "%C2%B0" & [GPS02] & "'" & [GPS03] & "%22N". Z té je patrné, že poskládá informace z tří polí, kam uživatel zadá hodnoty a doplní řetězec o hodnoty symbolizující různé zvláštní znaky jako mezera, stupně, uvozovky atd. Co se týče formátu formuláře, jsou zakázány posuvníky, styl okraje je nastaven na tenký. Navigační tlačítka i volič záznamů má hodnotu ne. Pro navigaci v tomto, ale i ve většině všech dalších formulářů, je využita sada tlačítek s přidělenými makry. Díky těmto tlačítkům můžeme pohodlně přecházet mezi záznamy, jít na první, či na poslední, přidat nový záznam, otevřít nápovědu formuláře nebo formulář zavřít. Tlačítka jsou napojena na makro M_navigace. Každé tlačítko má vlastní vysvětlivku pro ujasnění voleb, vysvětlivka se zobrazí, pokud necháme ukazatel nad tlačítkem. Formulář F_Členů Tento formulář slouží k zadávání nových členů, či k editaci členů stávajících. Z údaje o datu narození se v sestavě Členové, vypočítává věk. Formulář F_Akce 4
Ttento formulář slouží k popisu uskutečněných akcí, nese datum, název i poznámku k akci, dále eviduje pomocí dalších dvou podformulářů informace o účasti členů a o navštívených hospůdkách. Tento formulář je stěžejní z toho důvodu, že je tu předpoklad, že při každé nové akci přibude řada nových hospůdek a možná i členů a proto zde nechybí tlačítka Přidej nového člena či Přidej novou hospůdku, která nás odkážou na již popisované formuláře. Formulář Graf_spotřeba Speciální formulář zobrazující pouze grafy na třech kartách. Tyto grafy jsou většinou založeny na speciálních dotazech a ukazují přehled spotřeby piva jednotlivých členů nebo přehled průměrných cen piv jednotlivých značek či komplexnější pohled na přehled hospod, piv, která jsou v dané hospodě točena a jeho cena. 2.1 Dotazy Pro přehlednější práci s dotazy jsem vytvořil formulář F_Dotazy, který opět obsahuje řadu tlačítek napojených na makra a na konkrétní dotazy. Z obrázku formuláře je patrné, jaké dotazy jsem vytvořil. Jedná se jak o dotazy akční (vytvořit, aktualizovat, odstranit), tak o dotazy křížové a nechybí ani dotaz parametrický. Vytvořit tabulku přehled: akční dotaz, který spíše pokusně vytváří tabulku Přehled. Vychází ze tří tabulek (Členové, Ucast, Akce) a dotazu Vek. Výsledná tabulka Přehled vypíše přezdívku člena, jeho funkci, věk, který spočítá dle data narození, sečte počet piv z tabulky akce pro každého člena a vypíše počet akcí, na kterých se každý člen účastnil. Povýšení člena: akční dotaz, který aktualizuje jeden údaj v tabulce členové. Jedná se o údaj o funkci/hodnosti člena. Člena tudíž můžeme povýšit. Dotaz je zároveň i parametrický, jelikož se nás nejprve dotáže pro jakého člena chceme provést aktualizaci a pak nás poprosí o zadání nového hodnosti. 5
Přehled Piva a ceny v podnicích: vypíše všechny podniky (hlavička řádku), druhy piva (hlavička sloupce) a ceny piv (hodnota). Vybavení v podnicích: křížový dotaz, který vypíše jednotlivé podniky, druhy vybavení a hodnotu 1 v poli, pokud dané vybavení v daném podniku nalezneme. Pivo (jaké a nakolik): asi nejužitečnější parametrický dotaz, který lze vyvolat nad touto databází;) Pokud chce uživatel zjistit podniky, kde točí jeho oblíbenou značku piva a zároveň má hluboko do kapsy, může zadat max. cenu piva. Výsledek dotazu tedy budou podniky s oblíbenou značkou a definovaným limitem ceny. Odstranit hospodu: jedná se o akční dotaz, který umožní díky zapnuté volbě u relací databáze - odstranění souvisejících polí v kaskádě odstranit hospůdku, která byla např. uzavřena. 3 Sestavy Jelikož se u této databáze předpokládá spíše práce s formuláři, vytvořil jsem jen několik základních sestav. S_Hospody Tato sestava přehledně shrnuje veškeré důležité informace o hospůdkách. Najdeme zde údaje jako adresa, kontaktní Inko, MHD, poznámku, herní vybavení a točená piva včetně cen. 6
S_Členové_sloupce: sestava, která ve dvou sloupcích vypíše informace o všech členech S_Vybavení_bez_duplicit: sestava, která využívá řazení a seskupování. Vypisuje vždy název podniku a všechny druhy vybavení. Pokud podnik žádné vybavení nemá, objeví se smutný Smajlík. To je zajištěno příkazem IFF. Syntaxe je následující: =IIf([Druh_vybaveni] Is Null;":(";[Druh_vybaveni]) S_Relace: automatizovaně vypíše relace databáze. 4 Makra Pro jednodušší práci s formuláři jsem využil řadu maker, která pracují na pozadí databáze. Většinou se jednalo o makra sloužící pro přechod mezi formuláři, zavíraní oken, vyvolání dotazu atd. V dalším popisu se zaměřím spíše na významnější či rozsáhlejší makra. Marko M_Menu Toto makro slouží především pro hlavní formulář F_Menu. Tzn. slouží k otvírání formulářů, sestav a dotazů. Nechybí tady i makro pro tlačítko Exit z databáze Makro M_navigace Toto makro obsluhuje navigační tlačítka na každém formuláři. Makro M_Adresa Toto makro je zajímavé v tom, že řeší zadání adresy podniku po stisku tlačítka Zadej adresu ve formuláři Editace hospůdek.marko nejprve provede přechod na další záznam, poté přechod na předchozí záznam a tím zajistí uložení nových informací o hospůdce, poté otevře formulář a předá parametr - Název podniku. Díky tomu pak mohu editovat adresu pro konkrétní podnik. Syntaxe (Podmínka Where v makru): *Nazev+=*Formuláře+!*f_Hospody_zadávání+!*Nazev+ 7