Documente Academic
Documente Profesional
Documente Cultură
Generaliti
Oracle Application Express (APEX) este o platform software destinat dezvoltrii rapide
a aplicaiilor care acceseaz baze de date Oracle. Conceput ca o aplicaie web, APEX nu necesit
instalarea unor componente software suplimentare, lucrul cu platforma APEX realizndu-se din
fereastra unei aplicaii de navigare n Internet (Internet Explorer, Mozilla Firefox, Google Chrome
etc.).
Platforma Oracle APEX este integrat n Oracle XE. O soluie alternativ pentru testarea
platformei este conectarea la serviciol oferit de Oracle online accesnd adresa
http://apex.oracle.com.
Accesul la platform n Windows se poate realiza selectnd succesiv Start / All Programs /
Oracle Database 11g Express Edition / Get Started:
Not: Administratorul platformei nu poate crea aplicaii. El poate doar defini spaii de
lucru (eng. workspaces).
INFORMATIC*I*
Noul spaiu de lucru se va numi PERSONAL. n cazul selectrii opiunii Use Existing, ca n
imagine, numele se selecteaz folosind caseta combinat Database User i va coincide cu numele
schemei (bazei de date) pe care se vor baza aplicaiile create ulterior n cadrul noului spaiu de
lucru.
Numele administratorului spaiului de lucru din exemplul dat va fi PERS iar ultimele dou
cmpuri vor servi la impunerea parolei care va fi utilizat de administratorul noului spaiu de lucru.
Not: Setrile minimale pentru utilizatorul PERSONAL trebuie s permit platformei
APEX conectarea. Pentru a le impune se va folosi Oracle SQL Developer, astfel:
-
User... :
Opiunile contului PERSONAL se vor seta folosind opiunile din fereastra de dialog afiat,
astfel:
-3
-
INFORMATIC*I*
-4
-
INFORMATIC*I*
Pentru a se realiza conectarea la noul spaiu de lucru creat, n fereastra afiat dup intrarea
n Application Express (ca system) se va selecta butonul Already have an acount?
-5
-
INFORMATIC*I*
-6
-
INFORMATIC*I*
Dezvoltatorii pot crea i apoi accesa aplicaiile din cadrul spaiului lor de lucru dar nu se
pot conecta la alte spaii de lucru.
Pentru dezvoltarea unei noi aplicaii se va realiza conectarea la spaiul de lucru
PERSONAL ca dezvoltator folosind noul cont.
-7
-
INFORMATIC*I*
Procesul de creare va fi realizat n cadrul unei aplicaii-expert (wizard), n mai muli pai.
n primul pas se selecteaz tipul aplicaiei care va fi creat. Principial aplicaia expret poate
crea dou tipuri de aplicaii.
Tipul Database se refer la aplicaii obinuite, de tip "desktop". Acestea presupun
definirea unui ansamblu de formulare i rapoarte care pot fi accesate n urma unui
proces de autentificare.
Tipul Websheet se refer la aplicaii web. Acestea constau dintr-un numr de pagini
web, unele dintre acestea coninnd regiuni create folosind date din baza de date. De
regul accesarea informaiei se realizeaz fr a fi necesar crearea n prealabil a
unui cont, cu excepia unor pagini de administrare a bazei de date.
-8 -
INFORMATIC*I*
-9
-
INFORMATIC*I*
n pasul urmtor se vor putea aduga paginile (formulare i rapoarte) care formeaz
aplicaia. Deoarece acestea pot fi adugate i ulterior, pe msura dezvoltrii aplicaiei, n aceast
etap se poate aduga doar prima pagin. Din multitudinea de variante oferit de interfaa aplicaiei
expert se alege "Blank". O astfel de pagin const din unul sau mai multe blocuri html statice
coninnd informaii generale despre aplicaie i autorii ei.
Paginii adugate i se d i un nume ("Home" n exemplul considerat). Apoi se selectaz
butonul "Add Page".
- 10
-
INFORMATIC*I*
- 11
-
INFORMATIC*I*
- 12
-
INFORMATIC*I*
Observaie: Aplicaia conine dou formulare, cel creat, "Home", avnd codul 1 i "Login",
avnd codul 101. Formularul "Login" a fost inclus deoarece am restricionat accesul la aplicaie la
utilizatorii declarai n cadrul spaiului de lucru. Dac nu s-ar fi restricionat accesul aplicaia ar fi
avut doar formularul creat, "Home".
n acest moment aplicaia poate fi executat (butonul "Run Application").
- 13
-
INFORMATIC*I*
La prima ncercare de executare din APEX se va afia formularul "Login". Datele care
trebuie introduse sunt cele ale unui cont din cadrul spaiului de lucru.
Dinafara APEX, pentru a executa aplicaia se va tasta n fereastra unui browser adresa:
http://127.0.0.1:8080/apex/f?p=101:1 (sau http://localhost:8080/apex/f?p=101:1)
Evident dac serverul Oracle XE ruleaz pe un calculator din reeaua Internet, adresele
trebuie adaptate. n locul adresei 127.0.0.1 se va folosi adresa IP a calculatorului respectiv.
Observaie: Dac utilizatorul a crui nume i parol sunt furnizate este administratorul
spaiului de lucru sau este un dezvoltator, n partea inferioar a ferestrei afiate va fi automat inclus
o bar cu butoane care permit printre altele revenirea la aplicaia selectat sau editarea paginii
curente.
- 14
-
INFORMATIC*I*
dublu clic
Rezultat:
dublu clic
- 15
-
INFORMATIC*I*
putea astfel accesa seciunea "Security". Pentru a face pagina accesibil fr autentificare se va
modifica "Authentication" n "Page Is Public".
Dup modificarea modului de acces se va selecta "Apply Changes" din partea de sus a
paginii cu proprieti afiate.
dublu clic
- 16
-
INFORMATIC*I*
Rezultat:
- 17
-
INFORMATIC*I*
- 18
-
INFORMATIC*I*
Breadcrumb
- 19
-
INFORMATIC*I*
n urmtorii doi pai se indic cheia primar a tabelului respectiv modul de generare a
valorilor acesteia ("Existing trigger"). Pentru ca opiunea selectat s fie operaional s-au adugat
- 20
-
INFORMATIC*I*
folosind Oracle SQL Developer dou obiecte "sequence" i dou trigger-e care genereaz valorile
consecutive ale cheilor primare pentru tabelul "Angajai" respectiv "Copii" (vezi cap. 4).
- 21
-
INFORMATIC*I*
n continuare se va afia o fereastr care permite impunerea ferestrei la care se merge dup
apsarea butoanelor. Indiferent de buton, prin configurarea realizat se va merge la pagina 1
("Home").
- 22
-
INFORMATIC*I*
Rezultat:
Observaie: Dac se iniiaz editarea paginii (selectare cu dublu clic n lista de pagini) se
pot accesa i reconfigura controalele Windows folosite la introducerea datelor.
dublu clic
- 23 -
INFORMATIC*I*
dublu clic
Fereastra afiat permite modificarea tuturor parametrilor legai de controlul selectat, dou
dintre acestea fiind prezentate n continuare.
-
Observaie: Dac sunt necesare modificri la toate controalele afiate se poate selecta n
arborele din zona "Page Rendering" opiunea "Items / Edit All". Rezultatul este afiarea succint, n
format tabelar, a principalelor caracteristici ale controalelor formularului.
- 24
-
INFORMATIC*I*
- 25
-
INFORMATIC*I*
Pentru a uura introducerea corect a codului procedurii acesta este reluat n continuare:
create or replace
PROCEDURE "AD_ANGAJAT"
(
numeang in varchar2 ,
prenang in varchar2
) as
begin
insert into angajati (nume, prenume)
values (numeang, prenang);
end ad_angajat;
Procedura realizeaz adugarea unui angajat n tabelul "Angajai" i a fost creat folosind
Oracle SQL Developer.
- 26
-
INFORMATIC*I*
- 27
-
INFORMATIC*I*
- 28
-
INFORMATIC*I*
- 29
-
INFORMATIC*I*
INFORMATIC*I*
acestuia ("ID_ANGAJAT"), aceasta fiind explicaia prezenei n comanda "SELECT" cu care s-a
populat lista a dou cmpuri, al doilea fiind chiar "ID_ANGAJAT".
Demararea crerii formularului va fi cea cunoscut: "Form" / "Form on a Table or View",
selectare domeniu ("PERSONAL"), selectare tabel ("COPII"). Numele formularului i conectarea
lui n lista de legturi sunt prezentate n figura de mai jos.
- 31
-
INFORMATIC*I*
Rezultat:
- 32
-
INFORMATIC*I*
Pentru utilizarea listei de valori "Angajati" n noul formular se iniiaz editarea noii pagini
i se selecteaz cu un dublu clic n "Page Rendering" controlul "P3_ID_ANGAJAT".
INFORMATIC*I*
Rezultat:
- 34
-
INFORMATIC*I*
n continuare se va defini tabelul "Master" i se vor selecta cmpurile din acesta care vor fi
afiate n panoul corespunztor acestuia.
- 35
-
INFORMATIC*I*
n continuare se indic modul de obinere a cheilor primare pentru cele dou tabele:
- 36
-
INFORMATIC*I*
- 37
-
INFORMATIC*I*
Rezultat:
La selectarea tabului "Copii angajailor" se afieaz o fereastr care permite selectarea
dintr-o list a unui angajat.
- 38
-
INFORMATIC*I*
Dup selectarea pictogramei din dreptul unui angajat, fereastra aplicaiei va afia
formularul propriuzis, avnd cele dou panouri.
n prima pagin afiat se poate impune ordonarea angajailor dup nume. Pentru aceasta
se editeaz pagina 4. Se selecteaz cu butonul drept al mouse-ului intrarea Angajati i n meniul
contextual se selecteaz "Edit Report Attributes".
- 39
-
INFORMATIC*I*
Aplicaia va afia ntr-un tabel cmpurile selectate, putnd fi impuse diverse modificri.
Pentru impunerea sortrii dup nume se va selecta caseta de validare "Sort" i se va indica faptul c
"NUME" este prima cheie de sortare.
Rezultat:
- 40
-
INFORMATIC*I*
- 41
-
INFORMATIC*I*
- 42
-
INFORMATIC*I*
Rezultatul este realizarea raportului pe baza comenzii SQL date. n partea inferioar a
paginii apare referina "Imprima" a crei selectare provoac crearea fiierului "angajati.csv" care
poate fi deschis i prelucrat n continuare n Excel.
- 43
-
INFORMATIC*I*
Dup adugarea paginii se va aduga o prim regiune. Pentru a opera mai uor
modificrile impuse pagina se va afia selectnd butonul "Component View".
Component View
- 44
-
INFORMATIC*I*
Pentru a aduga controale Windows unei regiuni se va selecta "Create" din zon "Items". n
exemplul dat se va crea un control de tip "Select List" care se va aduga regiunii "Selectare
Angajat". Numele dat controlului va fi "P33_selectare".
- 45
-
INFORMATIC*I*
- 46
-
INFORMATIC*I*
Pentru a provoca refacerea coninutului raportului care va fi adugat paginii, Pentru "Page
Action when Value Changed" se selecteaz "Submit Page".
- 47
-
INFORMATIC*I*
- 48
-
INFORMATIC*I*
- 49
-
INFORMATIC*I*
Rezultat:
- 50
-
INFORMATIC*I*
- 51
-
INFORMATIC*I*
- 52
-
INFORMATIC*I*
- 53
-
INFORMATIC*I*
declare
CURSOR c1 IS SELECT * FROM angajati order by nume;
ang angajati%ROWTYPE; -- var. structurata de tip record
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO ang; -- preia linia curenta in ANG
if c1%NOTFOUND THEN
exit;
else
if ang.id_angajat = :P33_selectare THEN FETCH
c1 INTO ang; -- preiau linia urmatoare
if c1%NOTFOUND THEN
exit;
else
:P33_selectare :=
ang.id_angajat; exit;
end if;
end if;
end if;
END LOOP;
CLOSE c1;
end;
Secvena de cod este un bloc anonim PL/SQL care creaz i parcurge un cursor avnd un
coninut similar listei de valori ANGAJATI. Dup gsirea angajatului selectat n lista ANGAJATI se
mai citete o linie din cursor i se impune noua valoare ca valoare curent n controlul cu list.
Dup crearea procesului acesta trebuie editat deoarece execuia sa trebuie condiionat de
apsarea butonului creat anterior.
- 54
-
INFORMATIC*I*
Pentru butonul care realizeaz parcurgerea listei de angajai n sens invers, de la poziia curent spre
napoi, codul PL/SQL poate fi urmtorul:
declare
CURSOR c1 IS SELECT * FROM angajati order by nume;
ang angajati%ROWTYPE; -- var. structurata de tip record
angurm angajati%ROWTYPE; -- var. structurata de tip record
BEGIN
OPEN c1;
FETCH c1 INTO ang; -- preia linia curenta in ANG
IF ang.id_angajat != :P33_selectare THEN
LOOP
FETCH c1 INTO angurm; -- preia linia curenta in ANGURM
if c1%NOTFOUND THEN
exit;
else
if angurm.id_angajat = :P33_selectare THEN
:P33_selectare := ang.id_angajat;
exit;
else
ang :=
angurm; end if;
end if;
END LOOP;
end if; CLOSE
c1;
end;
IA.05.5. Aplicaii
1. Verificai folosind SQL Developer dac la Dv. utilizatorul BIBLIO are drepturile de acces
corect impuse i creai n APEX spaiul de lucru BIBLIO cu parola biblio definit peste
schema BIBLIO.
- 55 -
INFORMATIC*I*
- 56
-