Upload
cristinadruta875190
View
328
Download
2
Embed Size (px)
Citation preview
ACADEMIA DE STUDII ECONOMICE BUCURESTI FACULTATEA DE CIBERNETICA, STATISTICA SI INFORMATICA ECONOMICA
CREAREA UNEI APLICATII WEB IN JDEVELOPER
PENTRU
GESTIUNEA UNEI RETELE DE FARMACII
REALIZATOR: DRUTA CRISTINA
GRUPA 1063
BUCURESTI 2011
CREAREA UNEI APLICATII WEB IN JDEVELOPER PENTRU GESTIUNEA UNEI RETELE DE FARMACII
In conditiile actuale de dezvoltare a noii economii digitale si, implicit, a nevoii de cunoastere si
de lucru cu volum mare de informatii ne vedem pusi in situatia de a crea sisteme care sa ne ajute in gestionarea datelor si usurarea muncii.
In gestiunea unei retele de farmacii se lucreaza cu o multitudine de date care trebuie organizate in vederea usurarii muncii. In acest sens am creat 6 tabele (FILIALE, FARMACISTI, SALARII, MEDICAMENTE, APROVIZIONARI si VANZARI) cu urmatoarea structura: FILIALE
CODFARM
DENFARM ADRESAFARM TELFARM LOCALITATE ZONA NRFARM
Unde: CODFARM-reprezinta codul farmaciei(va fi un numar unic pentru fiecare farmacie din retea) DENFARM-reprezinta denumirea farmaciei ADRESAFARM-reprezinta adresa farmaciei TELFARM-reprezinta telefonul farmaciei LOCALITATE-reprezinta localiattea in care se afla farmacia ZONA-reprezinta zona din tara in care se afla farmacia (est,vest,sud,nod) NRFARM-reprezinta numarul de farmacisti angajati la farmacia respectiva FARMACISTI
CODF NUME PRENUME DATA_ANG ADRESAF
TELF FUNCTIE CODFARM
Unde: CODF-reprezinta codul farmacistului(va fi un numar unic pentru fiecare farmacist angajat) NUME-reprezinta numele de familie al farmacistului PRENUME-reprezinta prenumele farmacistului DATA_ANG-reprezinta data angajarii farmacistului ADRESAF-reprezinta adresa farmacistului TELF-reprezinta telefonul farmacistului FUNCTIE-reprezinta functia detinuta de farmacist in cadrul farmaciei CODFARM-reprezinta codul farmaciei(va avea aceleasi valori ca si in tabela FILIALE) SALARII
CODSALARIU
CODF SAL_INIT IMPOZIT BONUSURI
Unde: CODSALARIU-reprezinta codul salariului(va fi un numar unic pentru fiecare salariu al fiecarui farmacist) CODF-reprezinta codul farmacistului pentru care s-a stocat salariul (va avea aceleasi valori ca si in tabela FARMACISTI) SAL_INIT-reprezinta salariul initial al farmacistului IMPOZIT-reprezinta impozitul aplicat salariului initial si bonusurilor(va fi dat in procente) BONUSURI-reprezinta suplimentele primate la salariul initial pentru activitati deosebite desfasurate in cadrul farmaciei,specializari etc. MEDICAMENTE CODMED
DEN TRATAM AMBALAJ
Unde: CODMED-reprezinta codul medicamentelor care sunt stocate in magazia farmaciei (va fi un numar unic pentru fiecare medicament) DEN-reprezinta denumirea pentru fiecare medicament TRATAM-reprezinta boala care este tratata cu ajutorul medicamentului respective AMBALAJ-reprezinta modul de ambalare al medicamentelor APROVIZIONARI CODAPROV
CODMED NR_UNIT CODFARM DATA_EXP PRET
CODAPROV-reprezinta codul zprovizionarii(va fi un numar unic pentru fiecare adaugare de noi produse) CODMED-reprezinta codul medicamentului cu care s-a realizat aprovizionarea NR_UNIT-reprezinta cantitatea de medicamente stocata PRET-reprezinta pretul la care medicamentele sunt comercializate CODFARM-reprezinta codul farmaciei in care se gaseste medicamentul(va avea aceleasi valori ca si in tabela FILIALE) DATA_EXP-reprezinta data expirarii medicamentului VANZARI
CODVANZ CODMED CODF
CODFARM NR_BUC DATA_VANZ
Unde: CODVANZ-reprezinta codul vanzarii de medicamente(va fi un numar unic pentru fiecare vanzare de medicament) CODMED-reprezinta codul medicamentului vandut(va avea aceleasi valori ca si in tabela MEDICAMENTE) CODF-reprezinta codul farmacistului care a efectuat vanzarea(va avea aceleasi valori ca si in tabela FARMACISTI) CODFARM-reprezinta codul farmaciei in care a avut loc vanzarea(va avea aceleasi valori ca si in tabela FILIALE) NR_BUC-reprezinta cantitatea de medicamente vandute DATA_VANZ-reprezinta data vanzarii de medicamente
Etapa de implementare incepe odata cu activitatea de programare si construire efectiva a aplicatiei. Pentru a construi logica aplicatiei se creeaza, pornind de la baza de date, componentele ADF Business Components, care au rolul de a usura munca programatorului in ceea ce priveste gestionarea interactiunii aplicatiei cu baza de date. Dupa instalarea mediului Oracle JDeveloper si apelul produsului putem trece la crearea unei noi aplicatii: Se creează o nouă aplicaţie de tip Java EE Web Application:
Se aleg următoarele tehnologii pentru partea de interfaţă (Farmacii):
Se aleg următoarele tehnologii pentru partea de modelare (Informatii):
Va rezulta o aplicaţie cu 2 componente: Farmacii si Informatii.
Pentru modelare se vor introduce în proiect toate obiectele bazei de date (create anterior) cu care se doreşte să se lucreze. Click dr pe Model -> New-> Business Tier-> ADF Business Components-> Business Components from Tables.
Se va solicita conectarea la o baza de date
După ce se dau parametrii conexiunii fereastra de creare a componentelor din tabele va arăta astfel:
Se solicită apoi alegerea tabelelor de lucru din baza de date. Pentru vizualizarea obiectelor se bifează opţiunea Auto-Query şi apoi se aleg tabelele dorite. Pentru tabelele selectate anterior se crează tabelele virtuale şi legăturile din proiect.
După crearea componentelor din tabelele BD se vor observa următoarele elemente în modelul aplicaţiei: pentru fiecare tabelă obiectul corespunzător aplicaţiei, tabela virtuală şi legăturile cu alte tabele, dacă e cazul:
De asemenea în tabul Data Controls se vor putea vizualiza următoarele componente:
Se pot schimba etichetele asociate atributelor (tab-ul Attributes -> ControlHints -> LabelText) sau se pot pune condiţii (tab-ul Query->Edit->clauza WHERE) şi diverse ordonări (tab-ul Query->Edit->clauza ORDER BY).
Pentru partea de interfaţă se vor crea 3 pagini JSP (pg1, pg2, pg3). Pentru prima pagină se dă click dr pe Farmacii->New->Web Tier->JSF->JSF Page
Se redenumeşte pagina şi se lasă setările implicite:
Pentru a crea în această pagină un tabel de tip MaterDetail pentru tabelele Filiale şi Farmacisti se va pune cu drag and drop pe această pagină obiectul FarmacistiView2 (continut de obiectul FilialeView1) din DataControls. Se alege optiunea MasterDetail->ADF Master Form, Detail Table. Înainte au fost create 2 butoane “INFORMATII 2” şi “INFORMATII 3” prin care ulterior se vor crea legăturile către paginile 2 şi 3.
Pentru a crea celelalte pagini şi legăturile dintre ele (la nivel logic) se deschide fişierul faces-config.xml din cadrul interfeţei şi se adaugă în mod vizual (drag and drop) paginile info2.jsp şi info3.jsp, respectiv legăturile dintre ele denumite conform figurii următoare:
Pentru crearea propriu-zisă (fizică) a paginii2 se dă dublu click pe ea din faces-config. Se adauga doua butoane “INFORMATII 1” si “INFORMATII 3”. Pe pagina info2.jsp se doreşte să se afişeze rezultatul unui select predefinit de utilizator. Prin urmare este nevoie de crearea unei noi viziuni care să conţină rezultatul acestui select. Click dr pe Model şi apoi se alege ViewObject din ADF Business Components.
Se aleg pentru interogare tabelele FILIALE, FARMACISTI. Se doresti afisarea farmacistilor sefi din fiecare filiala.
Atributele alese sunt următoarele:
Suplimentar la interogare se pot adăga condiţii şi sortări:
Odată ce tabela virtuală este creată în proiect, ea se poate vizualiza printre obiectele modelului:
Pentru a obţine şi obiectul de tip DataControl corespunzător viziunii tocmai create se va adăga acesta manual astfel: click dr pe AppModule->Open->DataModel->se adaugă instanţa nou creată în DataModel.
Vizualizarea rezultatelor returnate de interogarea creată se poate obţine prin adăugarea obiectului respectiv de tip DataControl în pagina info2.jsp. Se alege ADF Form, apoi se bifează opţiunea Include Navigation Controls pentru a include în pagina jsp şi butoanele de navigare în formular. Pagina va arata astfel:
In pagina 3 se va include obiectul corespunzător tabelei, pentru a putea include opţiunile de adăugare, modificare, ştergere. Se alege un formular simplu de tip ADF Form şi butoanele de navigare în formular.
Pentru operaţiile actualizare se aleg următoarele operaţii corespunzătoare tabelei Produse: CreateInsert şi Execute pentru Insert, Execute pentru Update şi Delete pentru Delete. Prin apăsarea butoanelor asociate acestor operaţii se vor efectua actualizări la nivel logic. info3.jsp arată astfel: