Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a...

63
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

Transcript of Adatbázis rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/oa/apex_gyak.pdf · 2. megoldás: a...

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