Příklad č - Ostravská univerzita

Transkript

Příklad č - Ostravská univerzita
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

Podobné dokumenty

LCD 2-WAY

LCD 2-WAY Vypnutí dálkově nastartovaného motoru: Stlačte 2x tlačítko Vypnutí motoru je potvrzené 2x zvukovým signálem. Podmínky pro dálkový start: Všechny snímané vstupy musí byt v klidovém stavu (všechny dv...

Více

Úvod do databází ado Accessu

Úvod do databází ado Accessu Aby bylo možné tabulky propojovat, musí obsahovat pole nebo skupinu polí), která zaručuje jednoznačnou identifikaci každého záznamu = Primární klíč. Toto pole zajistí, že v tabulce neexistují dva s...

Více

pdf ke stažení - Katedra mediálních studií a žurnalistiky

pdf ke stažení - Katedra mediálních studií a žurnalistiky Ženské postavy i v těchto kontextech vybízejí k jinému způsobu hraní. V případě Resident Evil se tak zdá být Chris Redfield rovnocenným partnerem Jill Valentine, přesto je to právě on, který je dom...

Více

WebExpo Startup Campu

WebExpo Startup Campu Kapacita Startup Campu je 20 účastníků rozdělených do 4 týmů. Ke každému týmu bude patřit jeden produktový manažer. Pokud obdržíme více než 20 přihlášek, vybereme účastníky po osobních nebo telefon...

Více

Lean Canvas - Ashoka CEE

Lean Canvas - Ashoka CEE Unikátní nabídka hodnoty Čím upoutáte pozornost? V čem jste jiní? Jaká je výsledná hodnota pro zákazníka?

Více

Newsletter 03/15 - Reklama Polygraf

Newsletter 03/15 - Reklama Polygraf na webu. O správnosti takového rozhodnutí lze vést spory a  dokonce s  ním i  souhlasit, ale já osobně neznám střední firmu bez monopolního postavení, která by tohoto později nelitovala. Zákazník s...

Více

Diplomová práce Veroniky Černohorské

Diplomová práce Veroniky Černohorské Vzhled hlavní scény . . . . . . . . . . . Editor databáze nábytku . . . . . . . . Komunikace se servery . . . . . . . . .

Více

Západočeská univerzita FAKULTA APLIKOVANÝCH VĚD

Západočeská univerzita FAKULTA APLIKOVANÝCH VĚD T[ISBN, INV. Č.] Spojení Výsledkem v relační algebře není nikdy číslo, ale přinejmenším tabulka s jedním sloupcem a jedním řádkem Nalezení ISBN všech vypůjčených knih: [Exemplář (ZEMĚ VYDÁNÍ=’GB’)]...

Více