Documente Academic
Documente Profesional
Documente Cultură
La
Baze
de
date
Evidena
activitii
pentru
o
firm
IT
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.
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.
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
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
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
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
13
14
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