UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY __________________________________________________ Přírodovědecká fakulta
TVORBA APLIKACÍ V ORACLE FORMS I. (DISTANČNÍ VÝUKOVÁ OPORA)
Zdeňka Telnarová
2006 _____________________________________________ Ostravská univerzita
Úvod a cíle výukové opory ........................................................................................................ 4 1 Výkladová část ........................................................................................................................ 5 1.1 Forms Builder - Komponenty .......................................................................................... 5 1.1.1 Komponenty Forms Builderu.................................................................................... 5 1.1.2 Začátek práce s Forms Builderem............................................................................. 7 1.2 Komponenty formuláře .................................................................................................... 8 1.2.1 Datové bloky ............................................................................................................. 9 1.2.2 Řídící bloky ............................................................................................................... 9 1.3 Tvorba jednoduchého modulu formuláře....................................................................... 10 1.4 Tvorba Master - Detail formuláře .................................................................................. 13 1.5 Vizuální atributy............................................................................................................. 16 1.6 Řízení chování datového bloku ...................................................................................... 18 1.6.1 Navigace.................................................................................................................. 18 1.7 Tvorba řídících bloků ..................................................................................................... 19 1.8 Práce s textovými položkami ......................................................................................... 19 1.9 Práce s LOV objekty ...................................................................................................... 22 1.10 Práce s editorem ........................................................................................................... 23 1.11 Přehled dalších vstupních položek ............................................................................... 23 1.12 Vytvoření nevstupních položek.................................................................................... 24 1.13 Úvod do formulářových triggerů.................................................................................. 27 1.13.1 Triggery se obvykle používají pro: ....................................................................... 27 1.13.2 Komponenty triggeru ............................................................................................ 27 1.13.3 Tvorba jednoduchých triggerů .............................................................................. 28 1.13.4 Struktura PL/SQL bloku........................................................................................ 30 2 Část příkladů ......................................................................................................................... 33 Příklad č. 1 – Jednoduchý formulář na jednu tabulku.......................................................... 33 Příklad č. 2 – Formulář s podformulářem s vazebním polem .............................................. 34 Příklad č. 3 – Kontrolní blok................................................................................................ 36 Příklad č. 4 – Formulář s LOV objektem ............................................................................. 37 Příklad č. 5 – Formulář s editorem pro položku typu CLOB ............................................... 39 Příklad č. 6 – Skupina přepínačů.......................................................................................... 40 Příklad č. 7 – Formulář se zaškrtávacím políčkem .............................................................. 41 Příklad č. 8 – Položka zobrazení .......................................................................................... 43 Příklad č. 9 – Položka typu obrázek..................................................................................... 46 Příklad č. 10 – Prvky seznamu ............................................................................................. 48
2
Korespondenční úkol................................................................................................................ 50 Použitá literatura ...................................................................................................................... 51
3
ÚVOD A CÍLE VÝUKOVÉ OPORY Výuková opora Tvorba aplikací v Oracle Forms I. je určena studentům, kteří začínají vytvářet aplikace ve vývojovém prostředí Oracle Forms Developer 10g. Před studiem problematiky, obsažené v této výukové opoře, by měl student znát: •
Základní příkazy jazyka SQL (DDL, DML, DQL, DCL).
•
Příkazy a konstrukce jazyka PL/SQL včetně procedur, funkcí a databázových triggerů.
Dále by student před zahájením studia této opory měl být schopen: •
Vytvořit schéma relační databáze v SŘBD Oracle jako množinu relací a integritních omezení.
•
Na základní úrovni administrovat databázi Oracle.
Po prostudování výukové opory by měl být student schopen vytvořit jednoduchou interaktivní aplikaci pracující v grafickém uživatelském prostředí (GUI) založenou na uživatelských formulářích se vstupními položkami jako jsou textová pole, zaškrtávací políčka, přepínače, seznamy, položky zobrazení, příkazová tlačítka, atd. Dále by měl student zvládnout tvorbu událostmi řízených triggerů, tvorbu vložených formulářů, používání oken a canvasů. Výuková opora je rozdělena do dvou základních částí. První z nich je část výkladová. I tato část je doplněna příklady a názornými ukázkami. Druhá část je pak výhradně věnována příkladům.
4
1 VÝKLADOVÁ ČÁST 1.1 Forms Builder - Komponenty Forms Builder je komponentou Oracle Forms Developer, která je využívána k rychlé tvorbě aplikací založených na formuláři pro prezentaci dat a manipulaci s nimi. Uživatelé Forms Builder mohou: •
Vkládat, aktualizovat a mazat data, dotazovat se na data (získávat informace z databáze).
•
Prezentovat data s využitím textů, obrázků a uživatelských objektů.
•
Přecházet mezi jednotlivými formuláři a okny.
•
Využívat integrované menu.
•
Odesílat data do Oraclovských reportů.
1.1.1 Komponenty Forms Builderu Navigátor objektů
5
Navigátor objektů lze využít k umísťování a manipulaci s objekty. Základními objekty jsou: •
Formulář
•
Nabídka
•
Knihovny PL/SQL
•
Vestavěné balíky
•
Databázové objekty
Navigátor objektů je doplněn lištou (toolbar) pro: •
vytvoření nového objektu,
•
otevření existujícího objektu,
•
editaci objektu,
•
uložení objektu,
•
spuštění formuláře,
•
atd.
U každého objektu je možné zobrazit paletu jeho vlastností.
6
Všechny objekty v modulu, včetně modulu samotného, mají své vlastnosti. Pro umísťování objektů do formuláře slouží editor rozložení (layout). Editor rozložení má grafické rozhraní a umožňuje vkládat do formuláře grafické objekty.
1.1.2 Začátek práce s Forms Builderem Pro práci s databázovými objekty s využitím Forms Builderu je třeba se připojit k databázi. Připojení k databázi je nutné pro: •
kompilaci kódu,
•
přístup k databázovým objektům prostřednictví navigátoru objektů,
•
vytvoření objektu formuláře, založeném na databázovém objektu.
7
Pojmy k zapamatování Navigátor objektů Paleta vlastností Editor rozložení Formulář Nabídka Knihovny PL/SQL Vestavěné balíky Databázové objekty
1.2 Komponenty formuláře Formulář se může skládat z několika modulů. Hlavními objekty modulu formuláře jsou: Položky: jsou objekty formuláře, které odkazují na hodnoty atributů v databázových tabulkách. Na formuláři se mohou vyskytovat různé typy položek. Položky jsou logicky seskupeny do bloků a visuálně jsou umístěny na canvasech. Bloky: Každý formulář se skládá z jednoho nebo více bloků. Každá položka, umístěná na formuláři, musí logicky náležet nějakému bloku. Existují dva základní typy bloků: datové bloky a řídící bloky. Jeden datový blok představuje jednu databázovou tabulku. Canvasy: jsou plochy, na kterých jsou vizualizovaný grafické objekty a položky jednotlivých bloků. Formulář může mít několik canvasů (podobně jako papírový formulář může mít několik stránek). Canvas může zobrazovat položky z jednoho nebo více bloků. Každý canvas je nutné zobrazit v nějakém okně. Implicitně jsou všechny canvasy zobrazeny v jednom okně (tzn. najednou lze vidět pouze jeden canvas), ale je možné navrhnout více oken a každý canvas umístit do jiného okna.
8
Canvas 1
Canvas 2
Položky
Položky
Blok A
Blok B
1.2.1 Datové bloky Datové bloky jsou spojovány s databázovými tabulkami nebo pohledy, mohou být rovněž spojovány s uloženými procedurami, s dotazy nebo transakčními triggery. Spojení datových bloků s databází umožňuje uživateli automatický přístup k zobrazení dat a jejich manipulaci.
1.2.2 Řídící bloky Řídící bloky nejsou spojovány s databází, jejich položky se nevztahují k žádným sloupcům tabulek. Řídící bloky mohou obsahovat např. tlačítka, která inicializují nějakou akci.
Pojmy k zapamatování Položka Blok Canvas Datový blok Řídící blok
9
1.3 Tvorba jednoduchého modulu formuláře Nový modul formulář lze vytvořit s využitím průvodce (průvodce datovými bloky a průvodce rozložením) nebo můžeme vytvořit nový formulář manuálně.
Datový blok může být založen na tabulce, resp. pohledu nebo na uložené proceduře. Vybereme-li datový blok, založený na tabulce, je třeba vybrat tabulku/pohled z databáze. Pro tuto činnost je nezbytné, abychom byli připojeni k existující databázi Oracle. Pokud nejsme, průvodce nás provede procedurou přihlášení.
10
Po výběru tabulky lze vybírat jednotlivé sloupce (atributy tabulky) a umísťovat je jako položky formuláře. Po výběru položek se spustí průvodce rozložením, který umístí jednotlivé položky na canvas (lze vybrat typ canvasu – o tom později). Průvodce rozložením umožní každou položku umístit na canvas.
11
Každý datový blok modulu může být dvojího typu (formulářový a tabulkový)
Následuje specifikace rámu, ve kterém je datový blok na canvasu zobrazován a specifikace počtu záznamů, které se mají v rámu zobrazit. Je možno využít posuvník.
12
Po vytvoření modulu formuláře je třeba modul uložit (Soubor/Uložit jako), zkompilovat (Program/Kompilovat) a event. spustit (Program/Spustit formulář).
Pojmy k zapamatování Modul Průvodce datovými bloky Průvodce rozložením Atributy tabulky Položky formuláře Posuvník
1.4 Tvorba Master - Detail formuláře Master-Detail formulář se využívá k vytváření vztahů mezi datovými bloky založenými na databázových tabulkách, resp. pohledech. Takovýto formulář může obsahovat dva nebo více datových bloků. Každý datový blok může být buď samostatný nebo spojený s jiným datovým blokem. Master-Detal vztah je spojen se dvěma datovými bloky a odkazuje na primární klíč nadřazené tabulky a cizí klíč podřízené tabulky, na kterých jsou tyto datové bloky založeny. Detail blok může pak vystupovat v roli Master bloku v jiném vztahu (dle schématu databáze).
Příklad: Mějme dva datové bloky Pacient a Pojišťovna. Datový blok Pacient je spojen s databázovou tabulkou Pacient, datový blok Pojišťovna je spojen s tabulkou Pojišťovna. Tabulka Pacient je závislá na tabulce Pojišťovna. Vytvořte Master_detail formulář, kdy vazebním prvkem (PK v nadřazené tabulce a FK v podřízené tabulce) bude Kod_pojistovny.
13
Při vytváření datového bloku na tabulku Pacient se můžeme rozhodnout, zda vytvořit vztah.
Po rozvržení a umístění datového bloku na canvas (stejný nebo jiný) se zobrazí návrh.
14
Po spuštění formuláře se pak zobrazí následující okno.
Pojmy k zapamatování Master – detail formulář Položka Master Položka Detail Vztah
15
1.5 Vizuální atributy Vizuální atributy slouží k definování fontů, barev a dalších vlastností, které lze nastavit pro formulářové objekty a objekty menu. Vizuální atributy lze použít pro titulky, nápovědy, popisky rámů, atd.. Každý objekt formuláře či menu může využívat implicitního nastavení (vizuální atribut NULL) nebo může využívat explicitního vizuálního atributu.
Příklad dokumentuje existenci explicitního vizuálního atributu VA1.
Vlastnosti atributu VA1 zobrazuje následující tabulka (paleta vlastností).
16
Pro použití vizuálního atributu je třeba dodržovat následující kroky: 1. Vytvořit vizuální atribut 2. Nastavit vlastnosti tohoto nového vizuálního atributu 3. Spustit formulář Pro každý atribut datového bloku je možno nastavit, jaký využívá vizuální atribut.
Pojmy k zapamatování Vizuální atribut Titulky Nápovědy Popisky Rámy
17
1.6 Řízení chování datového bloku 1.6.1 Navigace Implicitně je v Oracle Forms navigace nastavena tak, že po zpřístupnění poslední položky záznamu se navigace přesune na první položku stejného záznamu. Explicitně lze tuto navigaci změnit např. tak, že se po poslední položce záznamu navigace přesune na první položku následujícího záznamu nebo datového bloku. Styl navigace tedy může být: •
stejný záznam (implicitně),
•
změnit záznam,
•
změnit datový blok.
Styl navigace lze nastavit pro daný datový blok.
Pojmy k zapamatování Explicitní navigace Implicitní navigace Styl navigace
18
1.7 Tvorba řídících bloků Řídící blok je blok, který není asociován s žádnou databází, jeho položky nesouvisí s žádnými položkami (sloupci) tabulky. Řídící bloky jsou využívány pro příkazová tlačítka, která obsahují funkcionality, definované pomocí tzv. formulářových triggerů.
Příklad Následující obrázek dokumentuje definici řídícího bloku.
1.8 Práce s textovými položkami textová položka je položka formuláře, prostřednictvím které se můžeme dotazovat, vkládat data, mazat či modifikovat data v databázové položce. Textovou položku můžeme vytvořit několik různými způsoby:
19
Převodem již existující položky na textovou. Použitím „Textové položky“ v editoru rozložení. Použitím ikony „Vytvořit“ v navigátoru objektů. Použitím průvodce.
Příklad: Vytvořte textovou položku ve formuláři na tabulku Pojišťovna. Textová položka bude spojena s názvem sloupce Kod_pojistovny databázové tabulky Pojistovna . V navigátoru objektů nastavíme Položky datového bloku Pojišťovna a zmáčkneme ikonu „+“. Nastavíme vlastnosti textové položky, zejména název sloupce v části Databáze.
Zde se vytvoří nová textová položka (implicitní jméno ITEM9)
20
Zde se napíše název položky (Kód_pojišťovny)
Zde se spojí textová položka se sloupcem databáze (tabulky Pojistovna).
Zde se umístí textová položka na canvas.
21
Ve fyzické části palety vlastností nastavujeme kromě canvasu rovněž polohu textové položky (poloha X, Poloha Y) a velikost (Šířka, Výška).
Pojmy k zapamatování Řídící blok Trigger Textová položka Poloha a velikost položky
1.9 Práce s LOV objekty LOV objekty jsou objekty formuláře, které představují seznam hodnot (List Of Value) některé databázové položky. Tento seznam se nabízí při vkládání hodnoty do textové položky. Seznam hodnot se konstruuje na základě dotazu a zobrazuje se jako pop-up okno. Postup při vytváření a využité LOV objektu je následující: •
Nový formulář.
•
Přidat datový blok pomocí průvodce na tabulku, ze které budeme vytvářet seznam do LOV objektu, styl – formulářový.
•
Vytvořit LOV včetně nové skupiny záznamů, založené na dotazu, který vybere všechny položky ze specifikované tabulky.
•
Nastavit šířky sloupců a vložit návratovou hodnotu.
•
V paletě nástrojů daného LOV nastavit automatické zobrazení.
Vlastnosti LOV objektů Dynamika: Seznam hodnot se automaticky mění podle stavu databáze.
22
Nezávislost: LOV objekt může být použit pro různé textové položky (vyvolán z různých textových položek). Flexibilita: LOV může být využit mnohonásobně.
Pojmy k zapamatování LOV objekt Dynamika Nezávislost Flexibilita
1.10 Práce s editorem Pokud uživatel potřebuje složitější editor pro vkládání hodnot do např. textových polí datového typu BLOB a LONG RAW, může jej návrhář vytvořit. Takovému editoru se říká uživatelský editor. Jeho tvorba je snadná. V navigátoru objektů vybereme Editor na zmáčkneme ikonu „+“. Takto vytvořenému editoru nastavíme vlastnosti pomocí palety vlastností.. Vytvořený editor je pak třeba asociovat s konkrétní textovou položkou.
1.11 Přehled dalších vstupních položek K dalším vstupním položkám můžeme přiřadit: •
Zaškrtávací políčko
•
Přepínač
•
Položka graf
•
Kontejner OLE
•
Položka seznam
•
Zvuková položka
Tyto položky mohou být spojeny se sloupcem databázového pole a mohou být editovány, tzn. prostřednictvím formuláře může být zadávána či modifikována hodnota do pole databázové tabulky.
23
1.12 Vytvoření nevstupních položek Nevstupními položkami se rozumí takové položky, které nepřipouštějí zadávání vstupních hodnot uživatelem. Patří mezi ně: •
Zobrazované položky
•
Obrazové položky
•
Tlačítka
•
Vypočítávané položky
•
Hierarchické stromy
•
Bean Area položky
Kromě tlačítka, všechny ostatní položky mohou data zobrazovat. Tlačítko je spojeno s událostí a triggerem, který na tuto událost reaguje. Zobrazovaná položka může zobrazovat odvozené hodnoty z databáze, eventuálně nedatabázové informace. Vytvoření zobrazované položky pomocí editoru rozložení •
Vyvolejte editor rozložení.
•
Zobrazte potřebný canvas.
•
Vyberte tlačítko zobrazované položky.
•
Umístěte položku na canvas.
•
Zobrazte dvojklikem paletu vlastností.
•
Specifikujte potřebné vlastnosti zobrazované položky.
Vytvoření vypočítávané položky Vypočítávaná položka bůže být vyjádřena formulí (vzorcem výpočtu) nebo souhrnem všech položek v bloku. Výsledkem výpočtu vzorce je horizontální hodnota, tzn. výpočet je proveden v rámci jednoho záznamu databázové tabulky. Naproti tomu souhrny jsou vertikální výpočty, které zohledňují všechny hodnoty jedné položky v rámci bloku. Vypočítávaná položka není editovatelná, může se pouze zobrazit. Je to tedy speciální typ zobrazované položky.
24
Souhrnné funkce Průměr Počet Maximum Minimum Odchylka Součet Vypočítávaná položka založená na formuli (vzorci) Při nastavení režimu výpočtu na vzorec je třeba zadat PL/SQL výraz, který formuli definuje. Před jmény objektů formuláře je třeba v PL/SQL výrazu uvést dvojtečku (:).
Příklad Vytvořte položku zobrazení (Jmneo_Prijmeni), do které se zobrazí zřetězení položek Jmeno_p a Prijmeni_p. Ve vzorci použijte správné označení položek formuláře (s dvojtečkou).
25
Pojmy k zapamatování Zaškrtávací políčko Přepínač Položka graf Kontejner OLE Položka seznam Zvuková položka Zobrazované položky Obrazové položky Tlačítka Vypočítávané položky Souhrnné funkce
26
1.13 Úvod do formulářových triggerů Triggery jsou programové bloky, které píšeme pro zvýšení funkčnosti implicitně vytvořené aplikace. Každý trigger má jméno a obsahuje jeden nebo více PL/SQL příkazů. Jméno triggeru zajišťuje spojení mezi programem triggeru a událostí, která způsobí jeho spuštění. Trigger se spouští, když proběhne příslušná událost. Existuje mnoho různých typů triggerů a mnoho způsobů jejich využití. Kompletní definice typů triggerů lze nalézt v manuálu Oracle Forms Designer‘s Reference.
1.13.1 Triggery se obvykle používají pro: •
Naplňování zobrazovaných položek daty.
•
Provádění validace (kontroly prostřednictvím definic položek.
•
Kontrolování referenční integrity pro databázové tabulky (tzv. databázové triggery).
•
Aktivováná tlačítek a obrazů.
•
Manipulování s ovládacími boxy a skupinami přepínačů.
platnosti
dat),
která
nemůže
být
zajištěna
1.13.2 Komponenty triggeru Trigger se skládá ze tří částí. Typ triggeru, úroveň platnosti a text. Typ triggeru se vztahuje k příslušné události, která může nastat při běhu aplikace. Jedná se o události: When, On, Pre, Post, Key. When trigger When události označují okamžiky, ve kterých můžeme rozšířit zpracování Oracle Forms dalšími úlohami nebo operacemi. Např.: Když se provádí validace položky, tak proveď … On trigger On události označují okamžiky, ve kterých můžeme nahradit implicitní zpracování jinými úlohami. Např. Při vzniku chyby pošli tuto zprávu Pre trigger Pre události označují okamžiky těsně před vznikem buď When nebo On události. Např. Před vstupem do bloku inicializuj tyto proměnné. Post triggery Post události označují okamžiky těsně po vzniku buď When nebo On události. Můžeme napsat triggery, které provádějí validaci objektů nebo dat po vykonání některé úlohy. 27
Key triggery Jedná se především pro triggery funkčních kláves. Mají vzájemně jednoznačný vztah k určité klávese. Jména triggerů Jména triggerů korespondují s událostmi Oracle Forms. Pomocí zadání jména spojíme tento trigger s událostí, pro kterou chceme vykonat PL/SQL blok.Tyto události jsou předdefinované. Např. trigger Whe-Button-Pressed (když je stisknuto tlačítko) koresponduje s událostí stisknutí tlačítka. Uživatel může tyto události vyvolat buď stisknutím klávesy nebo kliknutím tlačítka myši, vykonáním transakce ve formuláři, změnou v položce či záznamu, bloku nebo ve formuláři. Úroveň platnosti triggeru Každý trigger je spojen s položkou, blokem nebo celým formulářem. Nastavení úrovně platnosti triggeru buď na úroveň formuláře, bloku nebo položky je závislé na úrovni dosahu působení, kterou od triggeru očekáváme. Text triggeru Text triggeru specifikuje PL/SQL program, který má Oracle Forms vykonat, když se trigger spustí. Triggery zvyšují takové schopnosti zpracování, jako je provádění výpočtů. Pomocí jazyka PL/SQL můžeme definovat složité procedurální předpisy, které obsahují všechny standardní příkazy jazyka SQL včetně speciálních rutin Oracle Forms, které se nazývají vestavěné (bulit-in) rutiny. Text triggeru může být: •
Jakýkoli PL/SQL příkaz.
•
Vestavěné rutiny, což jsou pojmenované procedury nebo funkce, které jsou k dispozici k Oracle Forms, existuje jich přes 100 a můžeme je volat z triggerů.
1.13.3 Tvorba jednoduchých triggerů Při tvorbě triggeru musíme nejdříve vybrat úroveň platnosti triggeru. V navigátoru objektů můžeme vybrat tvorbu triggeru na úrovni formuláře, bloku nebo položky.
28
Po výběru úrovně zobrazíme seznam triggerů (nejsnadnější způsob je použití SmartTrigger volby.
Po výběru jména triggeru se dostaneme do PL/SQL editoru, ve kterém můžeme zadat kód PL/SQL programu.
29
Po zapsání kódu triggeru je třeba trigger zkompilovat. Po kompilaci je možné nastavit vlastnosti triggeru (pomocí Palety vlastností).
1.13.4 Struktura PL/SQL bloku Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk PL/SQL (Processing Language/Structured Query Language). Jazyk PL/SQL umožňuje deklarovat konstanty, proměnné a kurzory, podporuje transakční zpracování, řeší chybové stavy pomocí výjimek. PL/SQL podporuje modularitu. Typická struktura programového bloku se skládá ze tří částí: •
deklarační část
•
výkonná část
•
část pro zpracování výjimek (ošetření chyb a nestandardních stavů)
Deklarační část obsahuje deklarace proměnných, konstant, kurzorů, atd. Výkonná část funkční logiku (algoritmus programového bloku), část výjimek řeší vzniklé chyby. Povinná je pouze část výkonná.
Declare
Begin
Exception
Deklarace proměnných, konstant a kurzorů
Výkonné příkazy
Ošetření nestandardních stavů
30
Deklarace proměnných a konstant DECLARE Jméno1
constant
datový typ1:=hodnota1;
Jméno2
datový typ2;
Jméno3
datový typ3;
. . . Jménon
datový typn;
Příklad deklarace konstanty a proměnných DECLARE p_nasob
constant
p_plat
number(7,2);
p_bonus
number(9,2);
number(3,2) :=1.15;
Deklarace kurzoru DECLARE CURSOR jméno1 IS SELECT seznam FROM tabulka;
Příklad: DECLARE CURSOR k1 IS SELECT jmeno FROM zamestanec; Výkonná část BEGIN Příkaz1; Příkaz2; .
31
. . Příkaz n; END;
Příklad DECLARE p_jmeno
char(15);
CURSOR k1 IS
deklarace proměnné pro načítání jmen deklarace kurzoru na základě selectu
SELECT upper(jmeno) FROM zamestanec; BEGIN
začátek výkonné části
OPEN k1;
otevření kurzoru
LOOP
začátek cyklu FETCH k1 INTO p_jmeno;
načtení řádku tabulky zamestnanec a uložení jmena do prom.
dbms_output.put_line (p_jmeno);
výpis jména na konzolu
EXIT WHEN k1% NOTFOUND;
test na konec tabulky
END LOOP;
konec cyklu
CLOSE k1;
uzavření kurzoru
END;
konec výkonné části
Pojmy k zapamatování Typ triggeru Úroveň platnosti triggeru Text triggeru Události: When, On, Pre, Post, Key SmartTrigger PL/SQL editor Struktura PL/SQL bloku
32
2 ČÁST PŘÍKLADŮ
Příklad č. 1 – Jednoduchý formulář na jednu tabulku
Vytvořte jednoduchý formulář, který bude splňovat následující podmínky: •
Vytvořte formulář na tabulku Pojišťovna.
•
Vložte na formulář všechny položky tabulky Pojišťovna.
•
Vytvořte si vizuální atribut VA1 a veškeré položky na formuláři zobrazte pomocí tohoto vizuálního atributu.
33
Po spuštění
Modul přejmenujte na Ordinace1 a rovněž formulář uložte pod jménem Ordinace1.
Příklad č. 2 – Formulář s podformulářem s vazebním polem
Otevřete formulář Ordinace1, přejmenujte modul na Ordinace2 a uložte formulář pod jménem Ordinace2. Dále proveďte následující úpravy ve formuláři Ordinace2: •
Změňte vizuální atribut VA1.
•
Zkontrolujte, jak se to odrazilo na podobě položek na formuláři.
•
Vložte do modulu Ordinace2 další datový blok, použijte průvodce.
•
Vytvořte vztah, kdy vztahovou položkou bude kod_pojistovny.
•
Datový blok vložte na stejný canvas.
•
Na formulář vložte všechny položky.
•
Zvolte styl tabulkový.
•
Nadpis rámu zvolte seznam pacientů.
•
Počet zobrazovaných záznamů bude 5.
•
Nechte zobrazovat posuvník.
•
Upravte velikost canvasu tak, aby se vám na něj vešly všechny položky.
•
Spusťte modul.
•
Vytvořte vizuální atribut VA2 a všechny položky vnořeného datového bloku zobrazte pomocí vizuálního atributu VA2. 34
•
Upravte popisky.
Po spuštění
Zobrazte data v tabulkách (dotaz/provést)
35
Příklad č. 3 – Kontrolní blok
Vytvořte kontrolní blok. Kontrolní blok je zvláštní typ datového bloku, který neobsahuje žádné položky. •
Klikněte na datový blok a vytvořte nový blok ručně.
•
Otevřete paletu vlastností a změňte jméno bloku.
•
Do tohoto bloku budeme později vkládat objekty.
•
Vytvořte rám a spojte jej s řídícím blokem.
•
Dále nastavte texty pomocných dolních řádků pro položky datum_navstevy (zadejte datum návštěvy) a pro dávkování (zvolte editor pro dávkování).
36
Příklad č. 4 – Formulář s LOV objektem
Pro zadávání nových pacientů do tabulky Pacient vytvořte formulář, který bude položku Kód Pojišťovny vyplňovat pomocí LOV a skupiny záznamů založených na dotazu. Modul, který bude řešit tento úkol pojmenujte Ordinace4. Formulář uložte do souboru Ordinace4. •
Nový formulář.
•
Přidat datový blok pomocí průvodce na tabulku Pacient, styl – formulářový.
•
Vytvořte LOV včetně nové skupiny záznamů, založené na dotazu, který vybere všechny položky z tabulky Pojišťovna.
•
Nastavte šířky sloupců a vložte návratovou hodnotu Pacient.Kod_Pojistovny.
•
V paletě nástrojů daného LOV nastavte automatické zobrazení.
•
Vyzkoušejte editování tabulky Pacient pomocí tohoto formuláře.
37
Nástin řešení
38
Příklad č. 5 – Formulář s editorem pro položku typu CLOB
Vytvořte formulář Ordinace5, který bude umožňovat zadávat data do tabulky recept. Datum_navstevy, ICO a Rodne_cislo bude brát z tabulky Navsteva, Davkovani a mnozstvi se bude zadávat, přičemž pro položku Davkovani, která je typu clob vytvořte editor. •
Nový datový blok (tabulka recept).
•
LOV pro položky Datum_navstevy, ICO a Rodne_cislo.
•
V paletě nástrojů daného LOV nastavte automatické zobrazení.
•
Vyzkoušejte editování tabulky Recept pomocí tohoto formuláře.
•
Přidejte editor
39
Příklad č. 6 – Skupina přepínačů
Změňte položku množství z textové položky na skupinu přepínačů tak, že v nabídce bude 1, 2, 3 a 4.
40
Po spuštění
Příklad č. 7 – Formulář se zaškrtávacím políčkem
Do formuláře Ordinace6 vložte zaškrtávací políčko, které bude spojeno s položkou tabulky Recept s názvem „platny“. Tuto položku nejdříve přidejte do struktury tabulky s datovým typem Integer). Pamatujte na nastavení hodnot pro zatrženo a nezatrženo. Editujte datové vlastnosti položky podle aktuální struktury tabulky Recept. Formulář uložte do souboru Ordinace7 a modul taky přejmenujte na Ordinace7. Nezapomeňte položku umístit na CANVAS.
41
Obecné vlastnosti položky Platny:
Funkční vlastnosti:
Datové vlastnosti:
42
Fyzické vlastnosti:
Po spuštění
Příklad č. 8 – Položka zobrazení
Do formuláře Ordinace7 vložte položku zobrazení: dnešní_datum a položku s výpočtem dnešní_datum – datum_navstevy pro každý zadávaný recept a tyto položky zároveň doplňte popisky.
43
Vlastnosti položky DNESNI_DATUM:
Vlastnosti položky POČET_DNU:
44
Okno pro zadávání vzorce
Všimněte si, že položka formuláře musí být vždy uvedena znakem „:“. Po spuštění
Modul přejmenujte na Ordinace8 a uložte do souboru Ordinace8.
45
Příklad č. 9 – Položka typu obrázek
Tabulku Pacient databáze rozšiřte o atribut FOTO datového typu LONG RAW. Vytvořte nový modul ve formsech s názvem ORDINACE9. Datový blok bude na tabulku Pacient a vložte veškeré atributy do bloku jako textové položky kromě atributu FOTO, který bude obrázek. Nastavte vlastnosti
46
Pro plnění dat je třeba vytvořit trigger
READ_IMAGE_FILE('jmeno_souboru','typ_souboru','polozka'); Např. READ_IMAGE_FILE('H:\Vyuka\Forms\logo.jpg','JPEG','FOTO'); Pro obecnější volbu jména souboru lze použít: READ_IMAGE_FILE(‚:RODNE_CISLO||‘.jpg','JPEG','FOTO'); Po spuštění
47
Příklad č. 10 – Prvky seznamu
Ve formuláři Ordinace9 proveďte následující změnu: Změňte typ položky Pojišťovna na položka seznamu a nastavte v prvcích seznamu hodnoty kódů pojišťoven z tabulky Pojišťovna.
48
Pro každý prvek seznamu je nutné uvést hodnotu, která se bude zapisovat do tabulky.
Pozměněný formulář přejmenujte na Ordinace10 a uložte pod jménem Ordinace10 na disk.
49
KORESPONDENČNÍ ÚKOL
Navrhněte jednoduchý datový model skládající se ze dvou relací (Kniha a Exemplář). Zvolte vhodně atributy, primární klíče a cizí klíč (Exemplář je existenčně závislý na Knize). Vygenerujte schéma do Oracle. V prostředí Oracle Forms Builder vytvořte formulář, který bude sloužit k vkládání, mazání a aktualizaci dat o knihách a exemplářích. Bude obsahovat textové položky, zobrazované položky a další typy položek dle vlastního výběru. Navrhněte vhodně datové bloky, event. bloky řídící, vizuální atributy a dále navrhněte aspoň jeden trigger When a jeden trigger On.
50
POUŽITÁ LITERATURA Pam Gamer: Oracle Form Developer 10g: Student Guide, Volume 1 Pam Gamer: Oracle Form Developer 10g: Student Guide, Volume 2 Luboslav Lacko: Oracle: Správa, programování a použití databázového systému, Computer Press, Brno 2003, ISBN 80-7226-669-3 Kevin Loney, Marlene Theriault: Mistrovství v Oracle, Computer Press, Praha 2002, ISBN 80-7226-635-7
51