Sunteți pe pagina 1din 17

PROIECT

La Baze de date
Evidena activitii pentru o firm IT

ndrumtor: . l. dr. ing. Mirela Danubianu


Suceava 2011

Efectuat de: Grigoriev Sergiu gr. 1131B

Cuprins

1. DESCRIERE 2. MODELAREA CONCEPTUAL (DER) 3. MODELAREA FIZIC 4. INTERFA I FUNCIONALITATE 4.1. FORMULARUL PRINCIPAL 4.2. FORMULARUL PENTRU PROIECTE 4.3. FORMULARUL PENTRU ANGAJAI 4.4. FORMULARUL PENTRU CLIENI 4.5. FORMULARUL PENTRU DEPARTAMENTE, FUNCII I TEHNICI 5. RAPOARTE 5.1. RAPORT PENTRU ANGAJAI 5.2. RAPORT PENTRU PROIECTE 5.3. RAPORT PENTRU TEHNICI 6. CONCLUZII 7. BIBLIOGRAFIE 3 4 5 6 6 6 9 11 11 12 13 13 14 16 17

1. Descriere

Acest proiect are ca scop gestionarea activitii unei firme IT. Pe lng faptul c se face evidena angajailor firmei, proiectul mai servete drept Manager de proiecte. Datorit acestui fapt se duce evidena mai ampl a firmei. Se monitorizeaz att ceea ce ine de rolul unui angajat n firm, ct i activitatea lui n cadrul diferitelor proiecte. Se mai pune n eviden i faptul c se ofert o statistic i sortare dup anumite criterii. Unele din principalele funcionaliti ale aplicaiei sunt: Afiarea numprului total de angajai Durata angajrii unei persoane n firm Experiena angajailor Extragerea celei mai cunoscute tehnici de ctre angajai Extragerea celei mai folosite tehnici la proiecte Afiarea proiectelor finalizate Afiarea proiectelor penalizate Afiarea proiectelor ce au un anumit procentaj finalizat Afiarea angajailor care sunt implicai n cele mai multe proiecte Afiarea angajailor care nu sunt implicai n niciun proiect Afiarea angajailor pe departamente/funcii/tehnici Afiarea proiectelor unui anumit client Afiarea proiectelor la care activeaz/a activat un anumit angajat Etc.

2. Modelarea conceptual (DER)



Figura 1 - Modelul entitate-ralaie

3. Modelarea fizic

Pentru implementarea funcionalitaii s-a creat baza de date proiect n mediul de dezvoltare Microsoft Visual FoxPro 9.0. Dup care s-a trecut la crearea tabelelor i structurarea acestora. Dup cum se observ n Figura 1, sunt 6 entiti fizice care necesit abstractizate n baza de date: Angajat Proiect Client Departament Funcie Tehnica Conform acestor date, i relaiei dintre ele (cum este prezentat n diagrama entitate-relae) a rezultat urmtoarea structur a bazei de date:


Figura 2 - Structura bazei de date

4. Interfa i funcionalitate

n cadrul aplicaiei sunt realizate 5 formulare pentru accesul uor la datele din baza de date i gestionarea lor ct mai comod. n cele ce urmeaz se vor descrie fiecare formular n parte.

4.1. Formularul principal


Acest formular este punctul de start al programului. De aici se trece uor la administrarea activitii firmei (pentru administratori) sau la gestionarea proiectelor. De menionat c tot de aici se pot afia i raproartele privind agnjaii, proiectele i tehnicile folosite n firm. n figura 3 este reprezentat acest formular.

Figura 3 - Formular principal

4.2. Formularul pentru proiecte


Umrtorul formular este folosit pentru gestiunea proiectelor. De aici se poate aduga proiecte, terge proiecte, implicarea anumitor angajai n proiecte, etc. La fel, aici se pot sorta proiectele, se pot afia anumite proiecte ce corespund diferitelor condiii. Acest formular este prezentat n figura 4. 6

Figura 4 - Formularul de proiecte

Ceea ce privete partea din spate a funcionalitii mai jos este prezentat o parte din cod care adaug un proiect nou.
&& Validari IF EMPTY(thisform.txtTitlu.Value) MESSAGEBOX("Introduceti titlu proiect") RETURN ENDIF IF EMPTY(thisform.cmbClient.Value) MESSAGEBOX("Selectati clientul proiectului") RETURN ENDIF IF thisform.txtTimp.Value <= 0 MESSAGEBOX("Timpul alocat proiectului este invalid") RETURN ENDIF IF thisform.txtBuget.Value <= 0 MESSAGEBOX("Bugetul proiectului este invalid") RETURN ENDIF IF EMPTY(thisform.txtDataInceput.Value) MESSAGEBOX("Introduceti data de inceput a proiectului") RETURN ENDIF IF thisform.cmbProgres.ListIndex <= 0 MESSAGEBOX("Selectati progresul proiectului") RETURN ENDIF IF thisform.lstTehnici.ListIndex <= 0 MESSAGEBOX("Selectati tehnicile aplicate la proiect") RETURN ENDIF

IF thisform.lstAngajati.ListIndex <= 0 MESSAGEBOX("Selectati angajatii implicati la proiect") RETURN ENDIF && Extragem idClient din tabela clienti SELECT clienti GO TOP SKIP thisform.cmbClient.ListIndex - 1 idC = idClient && Introducere date despre proiect in tabela proiecte SELECT proiecte progresValue = INT(VAL(thisform.cmbProgres.Value)) INSERT INTO proiecte (denumire, timp_alocat, progres, data_inceput, data_finisat, buget, comentarii, client) VALUES (thisform.txtTitlu.Value, thisform.txtTimp.Value, progresValue, thisform.txtDATAINCEPUT.Value, thisform.txtDataFinisat.Value, thisform.txtBuget.Value, thisform.txtComentarii.Value, idC) GO BOTTOM idP = idProiect && Introducere date in proiecte_tehnici SELECT proiecte_tehnici DELETE FROM proiecte_tehnici WHERE idProiect = idP PACK With Thisform .lstTehnici.Value = "" For ln = 1 To .lstTehnici.ListCount If .lstTehnici.Selected(ln) SELECT tehnici GO TOP SKIP ln-1 idTeh = idTehnica SELECT proiecte_tehnici APPEND BLANK REPLACE idProiect WITH idP, idTehnica WITH idTeh Endif Next ln EndWith && Itroducere date in tabela lucreaza SELECT lucreaza DELETE FROM lucreaza WHERE idProiect = idP PACK With Thisform .lstAngajati.Value = "" For ln = 1 To .lstAngajati.ListCount If .lstAngajati.Selected(ln) SELECT angajati GO TOP SKIP ln-1 idA = idAngajat SELECT lucreaza APPEND BLANK REPLACE idProiect WITH idP, idAngajat WITH idA Endif Next ln EndWith MESSAGEBOX("Proiect inserat cu succes!") thisform.gridProiecte.Refresh && Curatare formular

4.3. Formularul pentru angajai


Cu ajutorul acestui formular se face evidena tuturor angajailor firmei. De aici se adaug angajai, se specific caracteristicile fiecrui angajat. La fel, aici se face i statistica angajailor conform tehnicilor cunoscute, proiectelor n care sunt implicate, departamentul la care lucreaz etc. Acest formular este prezentat n figura 5.

Figura 5 - Formularul pentru angajai Mai jos este exemplificat secvena de cod ce efecuteaz editarea unui angajat n cadrul firmei.
&& Validari IF EMPTY(thisform.txtNume.Value) MESSAGEBOX("Introduceti nume angajat") RETURN ENDIF .

&& Editarea angajatului daca a trecut de toate validarile var = "M" IF thisform.optionSex.option2.Value = 1 var = "F" ENDIF && Adaugare inregistrare in tabela angajati SELECT angajati REPLACE nume WITH thisform.txtNume.Value, prenume WITH thisform.txtPrenume.Value, vechime WITH thisform.txtVechime.Value, sex WITH var idA = idAngajat && Adaugare inregistrare in tabela functii_angajat SELECT departamente idDep = idDepartament SELECT functii idFunc = idFunctie SELECT functii_angajat COUNT FOR idAngajat = idA TO este IF este = 0 INSERT INTO functii_angajat (idAngajat, idDepartament, idFunctie, data_angajarii, data_eliberarii) VALUES (idA, idDep, idFunc, thisform.txtDataAngajarii.Value, thisform.txtDataEliberarii.Value) ELSE LOCATE FOR idAngajat = idA REPLACE idDepartament WITH idDep, idFunctie WITH idFunc, data_angajarii WITH thisform.txtDataAngajarii.Value, data_eliberarii WITH thisform.txtDataEliberarii.Value ENDIF && Adaugare inregistrare in tabela angajati_tehnici SELECT angajati_tehnici DELETE FROM angajati_tehnici WHERE idAngajat = idA PACK With Thisform .lstTehnici.Value = "" For ln = 1 To .lstTehnici.ListCount If .lstTehnici.Selected(ln) SELECT tehnici GO TOP SKIP ln-1 idTeh = idTehnica SELECT angajati_tehnici APPEND BLANK REPLACE idAngajat WITH idA, idTehnica WITH idTeh Endif Next ln EndWith thisform.gridAngajati.Refresh

10

4.4. Formularul pentru clieni


n cadrul acestui formular se adaug, se editeaz i se terg clienii care au comandat proiecte la firm. Interfaa lui este prezentat n figura 6.

Mai jos este prezentat secvena de cod pentru adugarea unui client.
&& Adaugarea unui client nou IF EMPTY(thisform.txtNume.Value) MESSAGEBOX("Introduceti nume client") RETURN ENDIF IF EMPTY(thisform.txtCodFiscal.Value) MESSAGEBOX("Introduceti cod fiscal client") RETURN ENDIF SELECT clienti APPEND BLANK REPLACE nume WITH thisform.txtNume.Value REPLACE cod_fiscal WITH thisform.txtCodFiscal.Value MESSAGEBOX("Client adaugat cu succces!") thisform.txtNume.Value = "" thisform.txtCodFiscal.Value = "" thisform.lstClienti.Requery

Figura 6 - Formularul pentru clieni

4.5. Formularul pentru departamente, funcii i tehnici


Acest formular servete pentru administrarea departamentelor, funciilor i tehnicilor care sunt prezente n cadrul firmei. Figura 7 reprezit interfaa utilizator pentru administrare. 11

Figura 7 - Formularul pentru departamente, funcii i tehnici

5. Rapoarte
n cadrul aplicaiei au fost realizate i cteva rapoarte care pot fi accesate din formularul principal al aplicaiei. Aceste rapoarte sunt exemplificate n cele ce urmeaz.


12

5.1. Raport pentru angajai


Aici se enumr toi angajaii firmei specificnd numele, prenumiele, vechimea i sexul fiecrui dintre ei.

Figura 8 - Raport angajai

5.2. Raport pentru proiecte


Acest raport extrage i afieaz datele despre proiectele la care se lucreaz sau s-a lucrat n cadrul firmei, precum i care este clientul fiecrui proiect.

13

Figura 9 - Raport proiecte

5.3. Raport pentru tehnici


Acest raport pur i simplu enumer toate tehnicile cunoscute de angajai i aplicate n proiecte din toat firma.

14

Figura 10 - Raport pentru tehnici

15

6. Concluzii

n urma realizarii acestui proiect s-a dorit simplificarea ct mai bun a modului de gestionarea a activitii unei firme IT fr a trunchia sau elimina anumite funcionaliti utile n administrare. Pornind de la acest concept, pe lng faptul c se gestioneaz activitatea angajailor, aplicaia mai servete drept un manager de proiecte destul de util n cadrul evidenei activitii. Cu toate acestea, desigur c aplicaia poate fi mbuntit. La formular de gestiune a proiectelor se pot aduga mai multe sortri. Se pot face mai multe statistici. S-ar putea de mai adugat durata de lucru a unui angajat asupra unui proiect.

16

7. Bibliografie
http://www.tomorrowssolutionsllc.com/Materials/arrays.html http://msdn.microsoft.com/en-us/library/ms950411.aspx Microsoft Visual FoxPro 9 Help Laboratoare la Baze de date

17