Top Banner
Adatbázis rendszerek II. Alkalmazásfejlesztés Oracle APEX alatt Összeállította: Dr. Baksáné dr. Varga Erika, adjunktus ME, Általános Informatikai Intézeti Tanszék
63

Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

Jan 10, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

Adatbázis rendszerek II.

Alkalmazásfejlesztés Oracle APEX alatt

Összeállította: Dr. Baksáné dr. Varga Erika, adjunktusME, Általános Informatikai Intézeti Tanszék

Page 2: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

2

Oracle APEX – Application Builder

Az Oracle Application Express (APEX) grafikus felülettel rendelkező integrált alkalmazásfejlesztő eszköz, melynek segítségével Oracle adatbázist használó webes alkalmazások fejleszthetők. Ez a fejlesztőeszköz ingyenesen elérhető; web böngészőt és némi programozási ismeretet igényel.

Fejlesztőkörnyezet:

– Oracle Database 11g adatbázis

– Oracle Application Express Release 4.2

Page 3: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

3

Komponens-alapú programozás

● Az alkalmazás előre definiált komponensekből épül fel → gyors fejlesztés, az implementációs részletek rejtve maradnak

● Alulról felfelé építkező (bottom up), deklaratív programfejlesztés: feladatunk a komponensek jellemzőinek beállítása

● Oracle APEX alkalmazás komponensek (page types):

– Jelentés (report): lekérdezés megjelenítése táblázatban– Chart (diagram): lekérdezés grafikus megjelenítése– Űrlap (form / tabular form): DML műv. végrehajtásához– Report and form: egy táblára vonatkozó DQL és DML műv.– Master Detail: kapcsolódó táblák együttes kezeléséhez; a

főtábla report, a részletező tábla módosítható (form)– Adatfeltöltő lap (Data Loading)

Page 4: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

4

Komponens-alapú programozás

● Oracle APEX képernyő komponensek (aktív kezelőszervek):

– Szövegmező (text field): alapértelmezés szerint módosítható a tartalma, de beállítható csak olvashatóra

– Választógombok (radio button): egymást kizáró választási lehetőségek

– Kapcsoló / jelölőnégyzet (checkbox): kétállapotú kapcsoló (kikapcsolt vagy bekapcsolt)

– Lista (list of values, LOV): lehet egy ill. többválasztós; inline vagy popup (külön ablakban megjelenő); statikus vagy dinamikus (lekérdezés eredménye)

Page 5: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

5

Feladatleírás

Készítsünk adatbázist kezelő webes alkalmazást az Oracle APEX eszközzel.

Adatbázisunk 5 táblát tartalmaz: tanszékek, oktatók, tantárgyak, hallgatók és vizsgabejegyzések. Minden oktató egy tanszékhez tartozik és minden tanszéknek van vezetője, aki egyébként a tanszék oktatója. Ez elvileg a következőt jelenti, ami a gyakorlatban nem kivitelezhető:CREATE TABLE tanszek (… vezeto references oktato …);CREATE TABLE oktato (… tsz references tanszek ...);

A két szabály közül csak az egyik adható meg az adattáblák létrehozásakor. A másik szabály teljesülését az alkalmazásnak kell megoldania.

Page 6: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

6

ER modell

Tantárgy Vizsga

kód név

kredit

félévdátum terem

lezárásmódja

Oktató

kódnév beosztás

Tanszék

kódnév

Vezetőoktató

Page 7: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

7

Relációs modell

OKTATÓkódnév

beosztástsz

TANSZÉK

kódnév

vezetőoktató

TANTÁRGYkódnév

kreditfélév

lezárásoktatja

VIZSGA

tárgydátumterem

Page 8: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

8

Előkészületek

1. A szükséges táblák létrehozása (create.sql).

SQL Workshop – SQL Commands

2. A táblák feltöltése egyenként.

SQL Workshop – Utilities – Data Workshop – Data Load: text data

Load to: existing tableLoad from: upload file

Page 9: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

9

Előkészületek

A feltöltendő szövegfájl (txt vagy csv) kiválasztása. A megadott fájlok ,-vel tagoltak és tartalmazzák az oszlopneveket.

Page 10: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

10

Előkészületek

Össze kell rendelni a létező tábla mezőit a feltöltendő adatokkal. A feltöltendő oszlopoknál: Upload – Yes.

Page 11: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

11

Előkészületek

Figyelem! A vizsga.csv feltöltésekor a dátum mező formátumát is meg kell adni.

A feltöltésről visszajelzést kapunk, de ellenőrizhetjük az SQL Workshop – SQL Commands ablakban is.

Page 12: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

12

Új alkalmazás létrehozása

Application Builder – Database applications – Create

1. Adjunk nevet és egyedi azonosítót az alkalmazásnak.

Page 13: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

13

Új alkalmazás létrehozása

2. Az oktatók listája tanszékenként legyen elérhető. Az űrlapok mögötti táblákat listából lehet kiválasztani: Főtábla – Tanszék; Részletező tábla - Oktató

Page 14: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

14

Új alkalmazás létrehozása

3. A tantárgy űrlapot listázásra és módosításra is fogjuk használni.

Page 15: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

15

Új alkalmazás létrehozása

4. Az alkalmazáshoz rendelt űrlapok:

Report:jelentés, lista

Form:módosíthatóűrlap

Master Detail:csoportosított lista

5. Most nincsenek megosztott komponensek.

Page 16: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

16

Új alkalmazás létrehozása

6. Alkalmazás beállításai (bejelentkezés ellenőrzése, űrlap szintek száma, nyelv, dátum / idő formátum).

Page 17: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

17

Új alkalmazás létrehozása

7. Alkalmazás stíluslapjának kiválasztása.

Page 18: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

18

Új alkalmazás létrehozása

8. A létrehozandó alkalmazás jellemzőinek összefoglalása.Ha elfogadjuk, kattintsunk a Create gombra.

Page 19: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

19

Új alkalmazás létrehozása

9. Létrejött az alkalmazás az alábbi űrlapokkal.

Page 20: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

20

Alkalmazás futtatása

1. Run Application

2. Bejelentkezés

Page 21: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

21

Alkalmazás futtatása

Az alkalmazásnak két fő űrlapja van. A Tanszék-et kiválasztva, a tanszékek listája látható.

A sorok előtti Szerkesztés ikonra kattintva jelenik meg a részletező, Oktató űrlap.

Page 22: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

22

Alkalmazás futtatása

Feladat: rendeljünk a tanszékhez vezető oktatót.

Page 23: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

23

Űrlap módosítása

1. megoldás: a részletező tábla elsődleges kulcsa nem látszik (Hidden). Tegyük láthatóvá. Az alkalmazás alsó menüsorában válasszuk ki: Edit Page.

Page 24: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

24

Űrlap módosítása

Az Oktató tábla Kód mezőjére jobb egérgombbal kattintva a popup menüből válasszuk: Edit. A mező jellemzőknél állítsuk be, hogy látható legyen az oktató kódja (Show Column) és a mező típusa Text Field.

Page 25: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

25

Űrlap módosítása

A látható oktató kódok közül válasszunk egyet, és írjuk be a tanszékvezető beviteli mezőbe. Mentsük a módosítást.

Page 26: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

26

Űrlap módosítása

Feladat: a tanszék kódja legyen látható, de ne lehessen módosítani.

Megoldás: a tanszék űrlap alján válasszuk az Edit Page 2 menüpontot. Az Edit tanszék listából válasszuk a P2_KOD mezőt. Itt a Display as attribútumot állítsuk át Hidden-ről Display Only-ra. Tesztelés: Apply Changes - Run

Page 27: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

27

DML műveletek

A Tanszék űrlap főlapján elérhető művelet:

● Új rekord felvitele a főtáblába (tanszék)

A Tanszék űrlaphoz tartozó részletező lapon (szerkesztő lapon) elvégezhető műveletek:

● Főtábla (tanszék) mezőértékeinek módosítása● Főtábla (tanszék) szerkesztés alatt álló rekordjának törlése● Főtábla (tanszék) rekordjai között léptetés (< ill. >)● Új rekord felvitele a részletező (oktató) táblába● A részletező (oktató) tábla kijelölt rekordjainak törlése● A részletező (oktató) tábla mezőértékeinek módosítása

Page 28: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

28

DML műveletek

Feladat:a) Vigyünk fel új oktatót és módosítsuk Szűcs M. beosztását.b) Az oktatók listájánál a név és a beosztás oszlopot cseréljük fel és név szerint állítsuk sorrendbe az oktatókat.

Mezősorrend megváltoztatása:Az űrlap alján válasszuk az Edit Page menüpontot. Itt az egérrel jelöljük ki a beosztás mezőt és mozgassuk a név utáni pozícióba.Vagy a mezőket kiválasztva, Edit–User Interface–Sequence. Mentsük a változtatást.

Page 29: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

29

DML műveletek

Új oktató felvitele:Az oktató űrlapon kattintsunk az Add Row gombra és adjuk meg az adatokat.

Oktató adatainak módosítása:A mezőértékek átírhatók.

Rendezés:Kattintsunk a név oszlopcímkére (Sort by this column).

Page 30: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

30

Egyválasztós lista

Feladat: tanszékvezető kijelölése. 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen kiválasztani. A lista ne az oktatók kódját, hanem a nevüket tartalmazza.

Figyelem! Az adatbázis táblát (a vezető mező hosszát) nem kell módosítani, mert a táblában továbbra is a vezető oktató kódja lesz eltárolva.

Ezt majd ellenőrizzék (APEX – SQL Workshop – SQL Commands)!

Page 31: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

31

Egyválasztós lista

1. lépés:Edit Page 2 -vezető mezőjellemzőinekmódosítása(dupla kattintása mező nevérevagy jobb egérkattintás és Edit)

Page 32: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

32

Egyválasztós lista

2. lépés: mező típusának módosítása

Ha Popup List of Values típust választunk, a lista külön ablakban jelenik meg.

Page 33: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

33

Egyválasztós lista

3. lépés: LOV beállításai. Ha a Display Extra Values nincs letiltva, akkor az aktuális vezető kódja is a listába kerül.

Gazdanyelvi változó

Page 34: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

34

Egyválasztós lista

4. lépés: alapértelmezés szerint a Source Used mindigre van állítva. Ennek az a hatása, hogy a vezető mezőben mindig a névsor szerinti első oktató látható a listából. Módosítsuk ezt úgy, hogy az aktuális tanszékvezetőt lássuk.

Page 35: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

35

Egyválasztós lista

Megjegyzések:

● A LOV definíciós utasítás a Create Dynamic List of Values varázslóval is elkészíthető.

● Ugyanezt a listát az alkalmazáson belül máshol is használni fogjuk majd, ezért adjunk neki nevet és mentsük el. Edit Page – Tasks (jobb oldalon) – Convert LOV (Create Shared LOV)

● Többválasztós lista: Edit Page – Settings – Allow Multi Selection

● Mezőhöz alapértelmezett érték rendelése: Edit Page – Default – Default value

● A listában a megjelenített érték és a visszatérési érték lehet ugyanaz.

Page 36: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

36

Jelentés (report) módosítása

Tekintsük a Tantárgy űrlapot. A jelentéslap a Tantárgy tábla összes adatát (rekordok és mezők) mutatja.

Feladat: a tantárgy jelentéslapon (report) az oktatja mező értéke ne az oktató kódja, hanem az oktató neve legyen.

Megoldás: 1. A jelentéslap alján válasszuk az Edit menüpontot.2. A hierarchikus listában (tree view) kattintsunk duplán a Tantárgy lapra, vagy jobb egérgombbal egyszer és a popup menüből válasszuk az Edit menüpontot.3. A Source fülön látható a jelentést előállító SQL lekérdezés. Módosítsuk ezt.

Page 37: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

37

Jelentés (report) módosítása

Eredeti: Módosított forrás:

Apply Changes – Run → A jelentésből eltűnt a módosított mező.Actions – Reset → A jelentés újra generálódott.

Page 38: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

38

Jelentés műveletei● A jelentésen elvégezhető műveletek az Actions

menüpontból érhetők el (formázás, rendezés, csoportosítás, számítások, aggregációk, grafikonos megjelenítés).

● A jelentéshez új sor hozzáadása: Create.

Page 39: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

39

Numerikus értékbeállítások

Feladat: a Tantárgy szerkesztő űrlapon (edit form) a kredit mezőnek adjunk alapértelmezett értéket (5) és kössünk hozzá értékellenőrzést (1 < kredit < 8).

Megoldás:1. A Tantárgy jelentéslapon válasszuk ki az egyik sort és kattintsunk az elején található szerkesztés ikonra (Edit Tantargy).2. A szerkesztőlap (edit form) alján kattintsunk az Edit Page 4 menüpontra.3. Itt a listából válasszuk ki a P4_KREDIT mezőt.4. Edit – Default – Default value: 5.

Page 40: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

40

Numerikus értékbeállítások

Settings:

Page 41: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

41

Radio button

Feladat: a Tantárgy szerkesztő űrlapon (edit form) a félév értéke “tavasz” vagy “ősz” közül az egyik lehet. Az egyválasztós listát most Radio button formájában jelenítsük meg.

Megoldás: 1. A Tantárgy jelentéslapon válasszuk ki az egyik sort és kattintsunk az elején található szerkesztés ikonra (Edit Tantargy).2. A szerkesztőlap (edit form) alján kattintsunk az Edit Page 4 menüpontra.3. Itt a listából válasszuk ki a P4_FELEV mezőt.4. A Display as attribútuma legyen Radio group.5. A megjelenített értékek listája most statikus.

Page 42: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

42

Radio button

Static list of values varázslóval:

Így a LOV definíciója: A LOV definícióját magunk is előállíthatjuk. Ha a megjelenített érték és a visszatérési érték ugyanaz, akkor:

STATIC:tavasz,ősz

Page 43: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

43

Radio button

Beállítási lehetőségek:

● Source – Source usedalapértelmezés szerint Always …; állítsuk Only when current value … is null. Így az aktuális értéket mindig mutatni fogja.

● Default – Default valueAlapértelmezett érték: ősz.

● Settings – Display OrientationAlapértelmezés szerint Vertical. Most állítsuk Horizontal, vízszintes elrendezésre.

● Settings – Number of Radio ColumnsAlapértelmezés szerint 1. Itt azt adjuk meg, hogy a felsorolt lehetőségek hány oszlopba rendezve jelenjenek meg. Állítsuk most 2-re.

Alapértelmezett:

Beállított:

Page 44: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

44

Osztott lista felhasználása

Az oktatók egyválasztós listát (LOV) már a Tanszék űrlap részletező lapján (Page 2) létrehoztunk és elmentettük. Most használjuk fel.

Feladat: a Tantárgy szerkesztő űrlapon (edit form) az oktatja mező értékét listából lehessen kiválasztani.

Megoldás:1. A Tantárgy jelentéslapon válasszuk ki az egyik sort és kattintsunk az elején található szerkesztés ikonra (Edit Tantargy).2. A szerkesztőlap (edit form) alján kattintsunk az Edit Page 4 menüpontra.3. Itt a listából válasszuk ki a P4_OKTATJA mezőt.4. A Display as attribútuma legyen Select List.

Page 45: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

45

Osztott lista felhasználása

A List of Values fülön válasszuk ki az elmentett oktatók listáját.

A Source fülön ne feledjük a Source used attribútumot átállítani Only when current value in session state is null-ra!

Page 46: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

46

Jelölőnégyzet (checkbox)

Feladat: a Tantárgy szerkesztő űrlapon (edit form) a lezárás lehetséges értékei: aláírás + gyakorlati jegy, aláírás + kollokvium, kollokvium, gyakorlati jegy, aláírás, szigorlat. Alkalmazzunk jelölőnégyzeteket a megoldáshoz.

Megoldás:1. A Tantárgy jelentéslapon válasszuk ki az egyik sort és kattintsunk az elején található szerkesztés ikonra (Edit Tantargy).2. A szerkesztőlap (edit form) alján kattintsunk az Edit Page 4 menüpontra.3. Itt a listából válasszuk ki a P4_LEZARAS mezőt.4. A Display as attribútuma legyen Checkbox.

Page 47: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

47

Jelölőnégyzet (checkbox)

LOV definíció:

Beállítások:

● Default - Default value: aláírás.

● Source - Source used: Only when current value in session state is null

● Settings – Number of checkbox columns: 2

Figyelem! Ez így többválasztós lista. A kiválasztott értékek ellenőrzését külön kell megoldani.

Page 48: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

48

Vizsgaidőpontok hozzáadása

Feladat: Módosítsuk az alkalmazást! Adjunk hozzá egy új lapot, ami Naptáron mutatja a vizsgaidőpontokat. A vizsgák adatai ezen keresztül lesznek módosíthatók.

Megoldás: Application Builder – Application 1 – Create Page – Calendar – Easy Calendar.

Page 49: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

49

Naptár létrehozása

A Tanszék és Tantárgy lapok mellett legyen egy új, Vizsga lap.

Page 50: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

50

Naptár létrehozása

A naptár mögötti tábla megadása:

Meg kell adni a táblábana dátum típusú mezőt, ésa naptárban megjelenítendőmező nevét:

Page 51: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

51

Naptár létrehozása

A naptárban láthatómezőérték egy link.Rákattintva megjele-nik egy szerkesztőablak, ahol a vizsgatábla adatai módo-síthatók.Végezzük el enneka lapnak a beállí-tásait.

Hozzuk létre anaptár lapot.

Page 52: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

52

Naptár létrehozása

Így néz ki a Vizsga lap:

A jobb felső sor gombjai a naptárban való keresést segítik.

Page 53: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

53

Naptár létrehozása

Egy naptárbejegyzésre kattintva megjelenik a kapcsolódó adattábla rekord szerkesztő lapja:

Page 54: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

54

Egyszerű értékellenőrzés

Feladat: hozzunk létre értékellenőrzést (validation) a vizsgadátumhoz. Biztosítsuk, hogy új vizsga felvitelekor, ill. módosításkor az új dátum ne legyen a mai napnál régebbi.

Megoldás:1. A Vizsga lapon válasszuk ki az egyik naptárbejegyzést. 2. A szerkesztőlap (edit form) alján kattintsunk az Edit Page 6 menüpontra.3. A Page Processing területen jobb egérgombbal kattintsunk a Validating - Validations lehetőségre, majd Create Validation.4. Adatérvényesítés szintje (mező szint): Page Item.5. Válasszuk ki az ellenőrizendő mezőt: P6_DATUM.

Page 55: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

55

Egyszerű értékellenőrzés

Adjunk nevet az adatérvényesítésnek:

Adatérvényesítés típusa (validation type): SQL – SQL Expression.

Page 56: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

56

Egyszerű értékellenőrzés

Adjuk meg az ellenőrzésSQL kódját és a megjelenítendőhibaüzenetet.

Page 57: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

57

Egyszerű értékellenőrzés

Az ellenőrzés csak a CREATE és az APPLY CHANGES (SAVE) gombok lenyomásakor hajtódjon végre.

A Create gomb hatására létrejön az adatérvényesítés, mint tárolt adatbázis objektum.

Page 58: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

58

Összetett értékellenőrzés

Feladat: a Tantárgy szerkesztő lapon a lezárás módja négyféle lehet: aláírás, aláírás+kollokvium, aláírás+gyakjegy, vagy szigorlat. Ha csak egy mezőre vonatkozik az ellenőrzési feltétel, akkor mező szintű validálásról beszélünk. Most legyen összetett (több mezőt érintő, oldal szintű) az értékellenőrzés. A kreditpont és a tárgy lezárás módja között legyen adott a következő szabályrendszer:

Tárgy lezárás módja Kreditpont

aláírás 2, 3

aláírás+gyakjegy 4

aláírás+kollokvium 5, 6

szigorlat 7

Page 59: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

59

Összetett értékellenőrzés

Megoldás:1. A Tantárgy főlapon kattintsunk az egyik tantárgy előtti szerkesztés ikonra. 2. A szerkesztőlap (edit form) alján kattintsunk az Edit Page 4 menüpontra.3. A Page Processing területen jobb egérgombbal kattintsunk a Validating - Validations lehetőségre, majd Create Validation.4. Adatérvényesítés szintje (oldal szint): Page.

Page 60: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

60

Összetett értékellenőrzés

Adjunk nevet az adatérvényesítésnek.

Adatérvényesítés típusa (validation type): PL/SQL – Function returning boolean.

Page 61: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

61

Összetett értékellenőrzés

Írjunk PL/SQL függvényt, ami akkor ad vissza igaz értéket, ha az űrlapon megadott adatok elfogadhatók.Egyébként hamis értékkel tér vissza és hibaüzenetet kapunk. A megjelenítendő hibaüzenet megadása kötelező.

Page 62: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

62

Összetett értékellenőrzés

Az ellenőrzés csak a CREATE és az APPLY CHANGES (SAVE) gombok lenyomásakor hajtódjon végre. A Conditions rész beállításai:

A Create gomb hatására létrejön az adatérvényesítés. A Run gombra kattintva tesztelhetjük.

Page 63: Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a tanszékvezető mező értékét legördülő listából (LOV, List Of Values) lehessen

63

Felhasznált irodalom

● Building an Application using Oracle Application Express: Part 1

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/devdays2012/apexp1_lab/apexp1_lab.html

● Oracle Help Center: Database Application Express User's Guide – 4. Using Application Builder

http://docs.oracle.com/cd/B28359_01/appdev.111/b32258/bldr.htm#BABHEGEA

● Oracle Help Center: Application Express Application Builder User's Guide

https://docs.oracle.com/cd/E14373_01/appdev.32/e11838/toc.htm