Sie sind auf Seite 1von 3

Aplicaii profesionale n baze de date orientate obiect

Anul 1 Master Baze de date i tehnologii web


Laborator 1 (Oracle Forms Developer)
1. Analizai diagrama exemplu HR (Human Resources), observnd cheile primare i
externe ale tabelelor, precum i relaiile dintre tabele.
2. Iniiai o conexiune la baza de date indicat la laborator. Analizai structura tabelelor
din schema HR i listai coninutul acestor tabele.
Exemplu:
DESC employees
SELECT * FROM employees;
3. Dac lucrai ntr-un cont de grup, s se creeze cte o copie a tabelelor
EMPLOYEES, DEPARTMENTS, JOBS i JOB_HISTORY. Noile tabele se vor numi
EMPLOYEES_PNU, DEPARTMENTS_PNU, JOBS_PNU, JOB_HISTORY_PNU,
unde sufixul PNU este format astfel: P = prima liter din prenumele dumneavoastr,
NU = primele dou litere din nume.
4. S se creeze o form, numit F_EMP, care s conin informaii referitoare la
angajai i joburile lor precedente.
a) Creai cu ajutorul Data Block Wizard cte un bloc de date pe baza tabelelor
EMPLOYEES si JOB_HISTORY.
Blocurile se vor numi BL_EMP,
BL_HISTORY.
b) Blocul BL_EMP va fi blocul master al lui BL_HISTORY.
c) BL_HISTORY va avea layout tabelar. n editorul Layout, repoziionati
elementele n mod convenabil (mai nti redimensionai canvas-ul i frame-ul).
d) Informaiile vor fi afiate pe un canvas numit CV_EMP.
e) Salvai forma ntr-un fiier numit F_EMP.fmb.
5. - Executati modulul creat anterior.
- Executai o cerere nerestrictionat.
- Executai o cerere restricionat pentru a gsi informaii referitoare la angajaii
avnd codul job-ului SA_REP.
- Executai o cerere restricionat pentru a gsi informaii referitoare la angajaii al
cror job_id incepe cu litera S i al cror salariu este mai mare dect 2500.
- Executai o cerere restricionat pentru determinarea angajailor al cror salariu se
afl n intervalul 4500-5000 sau care au a treia liter din nume A.
Indicaie: n item-urile corespunztoare cmpurilor salary, respectiv last_name se
scrie :a, :b. La execuia cererii va aprea o fereastr n care se poate introduce
condiia:
:a between 4500 and 5000 or lower(:b) like __a%
Ce observai?
6. - Adugai o nou nregistrare n blocul corespunztor lui EMPLOYEES. Vizualizai,
n SQL*Plus, coninutul tabelului. Apare i noua nregistrare?
- Salvai nregistrarea introdus i vizualizai din nou coninutul tabelului..
- Actualizai data angajrii pentru nregistrarea introdus anterior i salvati.

2
7. - Creai un nou modul de tip form.
- Creai un bloc singular, folosind Data Block Wizard, pe baza nregistrrilor din
DEPARTMENTS i includeti toate coloanele. Blocul se va numi BL_DEP. Afiati blocul
pe un canvas nou, numit CV_DEP; se va afia cte o singur nregistrare. Titlul frameului va fi departamente.
- Salvai noul modul ntr-un fiier numit F_DEP.
- Rulai modulul si executai o cerere (s se gseasc departamentele al cror nume
ncepe cu litera M).
- In Object Navigator, schimbati numele modulului in F_DEP.
8. - Creati manual un bloc nou i redenumii acest bloc Control. Setai proprietile
Database Data Block, Query Allowed, Insert Allowed, Update Allowed i Delete
Allowed la valoarea No. Setai proprietatea Query Data Resource Type la None.
Celelalte proprieti se vor lsa cu valorile lor implicite. Mutai blocul Control dup
blocul DEPARTMENTS (drag&drop n Object Navigator).
- Asigurai-v c nregistrrile corespunztoare blocului DEPARTMENTS sunt
sortate dup codul departamentului. (ORDER BY department_id n Properties Palette)
- Setai proprietile frame-ului pentru blocul DEPARTMENTS astfel: tergeti titlul
frame-ului i setai proprietatea Update Layout la Manually.
- Salvai i rulai forma.
9. n forma (modulul) F_DEP, creai un LOV (list of values) pentru a afia codurile
locaiilor i oraele corespunztoare. Setai proprietatea Name la ID_lov, proprietii
Title dai-i valoarea Locaii, proprietile X=30, Y=30, Width=200, Height=250. Pentru
coloana location_id setai, ca element de ntoarcere, departments.location_id.
Obs: Cu excepia numelui formei, toate celelalte proprieti se seteaz cu ajutorul lui
LOV Wizard.
10.
Creai un buton n blocul de control al formei F_DEP; numii acest buton
ID_lov_button. Modificai-i proprietatea Label = Locatii i setai canvas-ul, iar apoi
poziionai corespunztor butonul n Layout Editor.
Obs: Pentru crearea butonului se poate proceda astfel: prin click pe nodul Items al
blocului Control se creeaz un element nou, iar apoi, prin Property Palette se
stabilete tipul elementului (Push Button), numele i label-ul.
11. n forma F_DEP, scriei un trigger pentru a afia ID_lov cnd este apsat butonul
ID_lov_button.
Indicaie:
Trigger WHEN-BUTTON-PRESSED la nivelul butonului ID_lov_button
IF show_lov('ID_lov') THEN null;
end if;

12. Creai un trigger When-Window-Closed la nivel de form pentru a iei din aceasta.
Indicaie:
WHEN-WINDOW-CLOSED la nivelul formei
exit_form;

13. Creai un bloc de control n forma F_EMP, n care adugai un buton numit
exit_button. Scriei un trigger care determin ieirea din form cnd este selectat
exit_button. Textul butonului va fi Ieire. Unde trebuie plasat blocul de control?
Indicaie:

3
WHEN-BUTTON-PRESSED la nivelul butonului "exit_button"
exit_form;

14. Modificai fereastra din forma F_EMP. Schimbai-i numele n WIN_EMP i titlul n
Informatii angajati. Verificai dac dimensiunea i poziia sunt corespunztoare.
Salvai, compilai i executai forma pentru a testa modificrile.
15. Creai un nou bloc, numit BL_JOBS bazat pe tabelul JOBS (fr a crea relaii cu
celelalte blocuri), pentru a fi afiat coninutul acestuia pe un canvas diferit, de tip
content, numit CV_JOB. Se vor afia cte 4 linii i se va folosi un layout tabelar, n
care se va include i un scrollbar. Titlul frame-ului va fi functii.
16. n forma F_EMP, creai o nou fereastr numit WIN_JOB. Dimensionai
fereastra corespunztor. Titlul ferestrei va fi JOB, iar proprietatea Hide on Exit va fi
setata Yes. Plasai noua fereastr ntr-o poziie potrivit relativ la WIN_EMP. Asociai
ferestrei WIN_JOB canvas-ul CV_JOB.
17. n forma EMP, creai un canvas de tip toolbar orizontal, numit Toolbar, n fereastra
WIN_EMP. (proprietatea Window)
18. Creai cele 3 butoane de mai jos n blocul de control i plasai-le pe canvas-ul
Toolbar. Exit_button a fost creat anterior, este nevoie doar s i modificm
proprietile. Toate proprietile, cu excepia lui Label i a numelor butoanelor, pot fi
setate simultan, printr-o selecie multipl.
Buton
Detalii
Label: JOB;
Job_button
Mouse Navigate: No;
Keyboard Navigable: No;
Canvas: Toolbar
Label: Show Help;
Show_help_button
Mouse Navigate: No;
Keyboard Navigable: No;
Canvas: Toolbar
Label: Exit;
Exit_button
Mouse Navigate: No;
Keyboard Navigable: No;
Canvas: Toolbar
19. Creai un canvas de tip stacked numit CV_HELP pentru a afia help-ul n
fereastra WIN_EMP a formei F_EMP. Dimensiunile vizibile recomandate sunt
Viewport Width 270, Viewport Height 215 (pt). Adugai un text corespunztor n acest
canvas.
20. Pozitionai canvas-ul precedent n aa fel nct s apar n centrul ferestrei
WIN_EMP; organizai CV_HELP astfel nct s fie ultimul canvas din secven.
21. Comutai pe No proprietatea Visible a lui CV_HELP i apoi creai un buton n
blocul de control pentru a ascunde informaia din Help atunci cnd nu mai este
necesar. Afiai acest buton pe CV_HELP. Butonul se va numi Hide_Help_Button
(Label: Ascunde Help; Canvas: CV_HELP).

Das könnte Ihnen auch gefallen