FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI [619327]

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI

LUCRARE DE LICENȚĂ

CONDUCĂTOR ȘTIINȚIFIC
Prof. Univ. Dr. Ing. Titus Slavici

ABSOLVENT: [anonimizat] 2015 –

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI

STRUCTURAREA CURSURILOR
DE PREGĂTIRE A PERSONALULUI
ÎN CADRUL UNEI COMPANII DE
TRANSPORT

CONDUCĂTOR ȘTIINȚIFIC
Prof. Univ. Dr . Ing. Titus Slavici

ABSOLVENT: [anonimizat]

2015

CUPRINS

Introducere ………………………….. ………………………….. ………………………….. …………………. 1
Capitolul 1. Baze de date ………………………….. ………………………….. ………………………….. 3
1.1. Ȋnregistrările –elemente de teorie ………………………….. ………………………….. …. 4
1.2. Organizarea și clasificarea bazelor de date ………………………….. ………………. 4
1.3. Entitate, atribut, valoare ………………………….. ………………………….. …………….. 6
1.4. Sistemele de gestiune a bazelor de date ………………………….. ……………………. 7
Capitolul 2. Tool -uri și tehnici ………………………….. ………………………….. ………………….. 8
2.1.Visual Studio 2010 ………………………….. ………………………….. ………………………….. . 8
2.1.1. Prezentare generală ………………………….. ………………………….. ……………….. 8
2.1.2. NET.Framework ………………………….. ………………………….. …………………….. 9
2.2. Microsoft Visual Basic ………………………….. ………………………….. …………………… 12
2.2.1. Prezentare generală ………………………….. ………………………….. ……………… 12
2.2.2. Concepte din Microsoft Visual Basic ………………………….. …………………… 12
2.3. Microsoft Acces 2010 ………………………….. ………………………….. …………………….. 13
2.4. Tehnologiile OLEDB ………………………….. ………………………….. ……………………… 13
2.5. Sisteme de gestiune a bazelor de date MySQL ………………………….. ……………….. 14
2.5.1. Prezentare generală ………………………….. ………………………….. ……………… 14
2.5.2. Comenzi MySQL ………………………….. ………………………….. …………………… 15

Capitolul 3. Studiu de caz – Gestiune training by Radu Simon ………………………….. 19
3.1. Arhitectura aplicației ………………………….. ………………………….. ……………………. 19
3.2. Descrierea modulelor componente ………………………….. ………………………….. …. 19
3.2.1.Descriere modul Login ………………………….. ………………………….. ………….. 19
3.2.2. Descriere Meniu_Cursuri ………………………….. ………………………….. …….. 21
3.2.3. Descriere Meniu_Tipuri_Cursuri ………………………….. ………………………. 26
3.2.4. Descriere Meniu_Ins tructori ………………………….. ………………………….. …. 26
3.2.5. Descriere Meniu_Personal ………………………….. ………………………….. …… 29
3.2.6. Descriere Meniu_Departamente ………………………….. ………………………… 31
3.2.7. Descriere Meniu_Functii ………………………….. ………………………….. ……… 32
3.2.8. Descriere Meniu_Sali_curs ………………………….. ………………………….. …… 32
3.2.9. Descriere Meniu_Instrumente ………………………….. ………………………….. .. 33
3.2.10. Descriere Meniu_Judete ………………………….. ………………………….. …….. 34
3.2.11. Descriere Meniu_Mod_prezentare_curs ………………………….. ……………. 35
3.2.12. Descriere modele de raportare ………………………….. ………………………… 36
3.3. Arhitectura bazei de date a aplicației ………………………….. ………………………….. 40
3.3.1.Descriere Tabele ………………………….. ………………………….. ………………….. 40
3.3.2.Tabele și relații între tabele ………………………….. ………………………….. …… 44
3.4. Utilizarea aplicației ………………………….. ………………………….. ………………………. 45
3.4.1.Modul de utilizare al programului ………………………….. ………………………. 45
3.4.2. Descrierea meniurilor și opțiunilor programului ………………………….. …. 47
3.5. Detaliile de proiectare, implementare și operare ………………………….. ………….. 50
3.5.1. Detaliile de proiectare ale aplicației ………………………….. ………………….. 50
3.5.2. Pașii de dezvoltare ai aplicației ………………………….. …………………………. 50
3.5.3. Gestiunea controalelor utilizate în aplicație ………………………….. ………… 50
3.5.4. Testarea programului ………………………….. ………………………….. …………… 52
Concluzii și perspective ………………………….. ………………………….. ………………………….. . 54
Bibliografie ………………………….. ………………………….. ………………………….. ………………… 56

1

Introducere

Pornind de la o bazã teoreticã acumulatã pe parcu rsul ani lor de
studiu, precum și de la o experiențã complexã ca trainer într -o companie
multinaț ionalã, ca proaspãt angajat într -o companie de transport aerian am
observat o carențã impre sionantã în structurarea ș i implementarea cursurilor
de pregãtire dedicate noilor angajaț i.
Acest aspect trã it pe propria piele, m -a determinat sã gândesc și sã
trasez o aplicație care sã reuneascã toate informațiile importante, atât la
nivel general, cât și la nivel detaliat, privind gestionarea cursurilor de
pregãtire a noilor angajaț i.
Astfel, î n această lucrare voi prezenta modul de concepere a unui
sistem informatic de gesti une pornind de la cea mai simplã noțiune, cea de
bazã, și treptat ajungând la c umulul de metode și tehnici care ne ajutã la
organizarea informațiilor din momentul î n care a u fost create, apoi
modificate/șterse și ajungând î n final la posibilitatea de a cãuta cu ușurințã o
anumitã informație sau, dacã e cazul, de a genera diverse rapo arte care sã ne
permitã vizualizar ea unui anumit calup de informații într -un timp câ t mai
scurt.
Pentru a crea aceastã structurã , am apelat la bazele de date abordâ nd
astfel sisteme de gestiune a le acestora , Visual Basic, My Sql si Microsoft
Access.
Visua l Basic este un limbaj de programa re creat de compania
Microsoft ș i pemite, prin intermediul interfeței grafice pe care o foloseș te, o
utilizare user friendly, accesibilã și plãcutã .
MySQL a fost alegerea perfectă deoarece am utiliz at baze de date
relaționale. “MySQL este un sistem de baze de date cu performanțe ridicate,
dar relativ simplu, a cărui configurare și administrare sunt mult mai simple
decât în cazul sistemelor mai mari.” [1]
“În Visual Studio .NET lucrul cu baze de date se poate realiza
utiliz ând tehnologiile OLEDB sau ADO. OLEDB (Object Linking and
Embedding, Database) este un set de interfețe proiectat de Microsoft pentru
accesarea a diferite tipuri de date stocate într -o manieră uniformă. A fost
proiectată ca un înlocuitor de un nivel mai în alt, fiind de fapt succesorul lui
ODBC, extinzându -i caracteristicile. ADO (ActiveX Data Objects)
reprezintă un set de obiecte utilizate pentru accesarea surselor de date. ADO
furnizează un nivel de abstractizare între client și interfețele OLEDB. ADO

1 http://www.robotics.u cv.ro/flexform/craiova_cursuri/C2_1/MySQL/L1.pdf
2 http://www.aut.upt.ro/~rraul/MTP/2013 -2014/Laborator5_MTP.pdf

2
permite dezvoltatorului să scrie programe care accesează datele fără să știe
cum este implementată baza de date.” [2]
Datorita cursurilor de Baze de date evoluate, am descoperit
Microsoft Access 2010. „ Microsoft Access este un program pentru crearea
și admin istrarea unei baze de date relaționale , produs de Microsoft , care face
parte din suita de programe Microsoft Office . Conceptul original de Access
a fost pentru utilizatorii finali să poat ă să "acceseze" date din orice sursă.
Alte caracteristici includ: importul și exportul de date de mai multe formate,
cum ar fi Excel , Outlook , ASCII , dBase , Paradox , FoxPro , SQL Server ,
Oracle , ODBC , etc.” [3]
Compania la care lucrez este una de transport aerian iar în cadrul
acesteia activitatea de pregă tire a angajaților este una deosebit de
importantă, fiind subiectul a numeroase audituri și inspecții, astfel că o
implementare necorespunzătoare poate pune compania în postura de a -și
pierde licen ța de operare sau de deservire handling.
Proiectul urmăreș te realizarea unei structuri pentru cursurile d e
pregătire ale angajaților î n cadrul companiilor de transport aeri an,
utilizatorul având diverse opțiuni î n utilizarea programului.
În cadrul programu lui am urmărit realizarea acț iunilor: de navigare
printre înregistră ri, de adă ugare, de modificare, de ș tergere , de salvare
pentru fiecare î nregistrare , de renunțare a acțiunii î ntreprinse si de întoarcere
la meniul principal/de ieșire din aplicaț ie.
Struc turarea cursurilor ajută la realizarea gestiunii informațiilor atât
pentru angajaț i, cât ș i pentru instructori cu informaț ii despre datele
personale ale acestora (nume, prenume, funcț ie, e -mail, telefon, adresă ,
depart ament, dată angajare). De asemenea , se poate încărca/afiș a poza
pentru fiecare membru al companiei, aspect care se dovedeș te a fi foarte util.
Se mai poate urmări ș i gestionarea cursurilor efectuate datorită
înregistră rilor referitoare la numele și prenumele cursantului, funcț ia
cursantului, numele cursului, numele ș i prenumele instructorului, modul de
prezentare al cursului, instrumente necesare efectuă rii cursului, sala de curs .
În cadrul acestui program se gestionează ș i informaț ii referitoare la
funcțiile angajațiilor/instructorilor, la să lile de cur s, la departamentele
existente î n cadrul companiei, la instrume ntele necesare efectuării cursurilor
și la modali tățile de prezentare ale c ursurilor. Toate aceste informaț ii sunt
introduse ulterior fiind utilizate î n cadrul unor meniuri prin sele cție (e.g. î n
Meniu_personal departamentul ș i funcț ia angajatului se alege din lista prin
selecț ie).
O parte importantă a acestui proiect este posibilitatea de a realiza
rapoarte referi toare la personal, instructori ș i cursuri.
Rapoartele despre personal pe baza a trei criterii (funcț ie,
depart ament și județ) oferă informaț ii referitoare la numele, pr enumele,
adresa de e -mail, funcția, departamentul și județ ul angajaț ilor aferenț i.
Rapoartele despre cursuri pe baza a patru criterii ( functie participant,
nume curs, mod prezentare curs si sala curs ) ofera informatii referitoare la
numele, prenumele si functia participantului, numele si prenumele
instructorului, tipul, modului de prezentare, datei de incepere si datei de
sfarsit a cursului si a salii de desfas urare a cursului.

3 http://ro.wikipedia.org/wiki/Microsoft_Access

3

Capitolul 1
Baze de Date

Trăim într -o societate care se bazează pe sisteme informaționale și
pe utilizarea calculatorului î n toate domeniile d e activitate. Sistemele
informaț ionale n e permit, pe baza unor tehnici ș i meto de să organizăm
eficient informațiile. Această eficientizarea a organizării informaț iilor este
prezentă de la generare și până la ș tergerea sau stocarea acestora.
Când dorim să organizăm eficient informaț ii rec urgem la bazele de
date (BD). Când dorim să rulăm o căutare pe calculator pentru a găsi într -un
timp cât ma i scurt anumite informaț ii, baza de date este alegerea optimă .
Bazele de date pot fi aplicate pentru diverse domenii . Bazele de date sunt
tocmai mecanisme și modele care ne permit să organiză m e ficient
informațiile ș i sunt o component ă principală a sisteme lor informaț ionale.
Conform Dexonline, informaț ia este “comunicare, veste, știre care
pune pe cineva l a curent cu o situație”. [4]
Utilizăm informaț ii zilnic pentru a comunica, a relaționa. Făcâ nd o
paralelă între informație și date, informaț ia poate fi c onsiderat ă ca sensul pe
care noi, oamenii, î l atribuim datelor.
“Datele reprezintă atribute cantitative sau calitative ale unei variabile
sau mulțimi de variabile. Datele sunt în general rezultatul unor măsurători și
pot constitui o bază pentru crearea de grafice, imagini sau observații cu
privire la o mulțime de variabile.” [5]
Informaț iile au un scop bine precizat: ne ajută să diminuă m gradul
de incertitudine pentru a obț ine astfel o informaț ie calitativă .
“Calitatea este un concept care s e utilizează în toate domeniile
vieții economice și sociale, însă care prezintă caracter subiectiv și care are
semnificații particulare pentru domenii , sectoare, funcțiuni sau obiecte
specifice.” [6]
Atributul calitativ al informaț iei este influenț at de mai multe
criterii. Pri ncipalele criterii care influențează calitatea informației sunt:
precizia, relevanța, corectitudinea, acurateț ea, completitudinea, consistenț a,
costul, utili zabilitatea, conformitatea cu așteptările, accesibilitatea și
sincronizarea î n timp.
Iată mai jos o descriere succintă a fiecă rui criteriu:
 precizia – reprezintă acuratețea maximă cu care poate fi
reprezentată o informaț ie;
 relevanț a – o informație este relevantă dacă aceasta poate fi
utilizată;

4 http://dexonline.ro/definitie/informa%C8%9Bie
5 http://www.zota.ase.ro/simp/Sistem%20inform ational.pdf
6 http://ro.wikipedia.org/wiki/Calitate

4
 corect itudinea – o informaț ie este corectă dacă este
fundamentată pe date reale;
 acuratețea – măsoară gradul de apropiere față de valoarea
reală ;
 completitudinea – se referă la încorporarea tuturor
elementelor necesare pentru fundamentarea deciziei ;
 consistența – indică faptul că toate elementele care intră în
componența unei informații se bazează pe aceleaș i
presupuneri, perioade de timp etc ;
 costul – reprezintă resursele cheltuite de organizație în scopul
obținerii informaț iei.
 utilizabilitatea – reflectă ușuri nța în exploatarea informației
pentru scopul prevă zut;
 conformitatea cu așteptările – măsoară ecartul între
caracteristicile informației obținute ș i caracteristicile
previzionate;
 accesibilitatea – se referă la timpul necesar obținerii
informaț iei, cu un n ivel acceptabil de efort, din locul în care
utilizatorul se așteaptă să o regăsească pe aceasta;

1.1. Ȋnregistră rile–elemente de teorie

Ȋntr-o bază de date avem înregistrări. Aceste înregistră ri conțin
informaț ii de mai multe tipuri :
 Numerice
 Texte
 Reprezentă ri grafice.

Figura nr.1 Extras proiect BD 2015 – Exemplu bază de date

Iată un exemplu de bază de date din cadrul proiectulu i realizat pentru
cursul de Baze de date în Microsoft Access. Ȋnregistrările în baza de date
intitulată “Campanii cu promoter i in store aprilie 2015” cuprind câ mpuri de
date sau elemente de date (De exemplu: î n tabelul “Planificare campanii”
avem următoarele înregistră ri: Nr_crt; Nume_campanie; Tip_campanie;
Rețea_magazin, etc)

1.2. Organizarea ș i clasificarea bazelor de date

“Organiza rea d atelor presupune efectuarea următoarelor activităț i:
 definirea, structurarea, ordonarea ș i gruparea datelor;
 stabilirea legăturilor (relațiilor ) între da te, între elementele
unei colecții de date și între colecț ii de date;

5
 stocarea datelor pe un s uport informaț ional, prelucrabil într –
un sistem de calcul. ” [7] Utilitatea bazelor de date vine di n faptul că pot fi
stocate pe dispozitive diferite, atât online, cât ș i offline, iar accesarea l or se
poate face cu ajutorul rețelelor de informare locală (la dis tanță sau prin
intermediul Internet -ului).
Bazele de date pot fi clasificate în funcț ie de mai multe criterii:
 Structură
 Funcția îndeplinită.
Ținând cont de structură , bazele de date pot fi:
 Baze de date ierarhizate ;
 Baze de date relaț ionale.
Bazel e de date ierarhizate se bazează pe structura arborescentă
atunci câ nd vine vorba de modal itatea de reținere a informaț iei. Minusul
acestui ti p de baze de date este faptul că folosesc mult spațiu de stocare, în
mare parte datorat informaț iilor repetitive.
Pe de altă parte, bazele de date relaț ionale “se bazează pe noțiunea
de relație din matematică, care corespunde unei entități de același tip și are
o reprezentare ușor de înțeles și de manipulat, ce constă dintr -un tabel
bidimensional, compus din linii și coloane. Fiecare linie din tabel reprezintă
o entitate și este compusă din mulțimea valorilor atributelor entității
respective, fiecare atribut corespunzând unei coloane a tabelului. ” [8]
Bazele de date îndeplinesc numeroase funcții, de exemplu: pot păstr a
date numerice brute ș i administra tive; la nivel de inventar pot ține evidența
informaț iilor. Ținând cont de funcția pe care o îndeplinesc, bazele de date se
împart î n:
 Baze de date bibliografice
 Baze de date de tip sursă .
La râ ndul lor, bazel e de date de tip sursă se î mpart în:
 Full-text
 Numerice
 Hibride
 Faptice
 Baze de date pentru brevete
 Baze de date pentru rapoarte ș i proiecte de cercetare.
Bazele de date bibliografice conț in:
 Informaț ii pertinente, reale despre literatură de gen ul: date
bibliografice despre cărț i, articole din diverse perioade,
rapoarte, etc.
 Informaț ii detaliate de genul: nume autor, titlu carte, scurtă
descriere a conț inutului, etc .
Bazele de date de tip sursă full -text se referă la textul propriu -zis
dintr -o carte, artic ol, eseuri.
Bazele de date de tip numerice se referă la partea de rezultate din
diverse studii, rezultatele numerice. Pe baza acestor rezultate, se pot ulterior
crea statistici pertinente.
Bazele de date hi bride sau mixte, sunt o combinație î ntre pri mele 2
tipuri : cele full -text ș i numerice.
Bazele de date faptice conțin informaț ii primare.
Bazele de date pentru brevet presupun ca de fiecare dată conceptual
invenției să fie unul de actualitate.

7 http://ro.scribd.com/doc/243717678/Unit -1-Organizarea -datelor#scribd
8 http://www.cs.ubbcluj.ro/~vcioban/Matematica/Anul3/BD/Bd.pdf

6
Bazele de date pentru rapoarte și proiecte de cercetar e, așa cum le
spune ș i numele, fur nizează informații relevante despre rapoarte și proiecte
aflate în desfăș urare.

1.3. Entitate, atribut, valoare

“Conceptele de bază utilizate în activitatea de organizare a datelor
sunt: entitate, atribut, valoare.
Entitatea reprezintă un obiect concret sau abst ract, caracterizat de
proprietațile sale și reprezentat distinct î n baza de date.
O proprietate a unui obiect poate fi exprimată printr -o pereche
(atribut, valoare). Spre exemplu: „studentul X este în anul de studii II ”, unde
„anul de studii” rep rezintă atributul, iar „II” reprezintă valoarea. Deoare ce o
entitate este caracterizată de proprietățile sale înseamnă că ea se poate
reprezenta prin mai multe perechi (atribut, valoare).
Un atribut nu caracterizează doar o enti tate, ci poate caracteriza o
clasă de entități numită entitate grup. Un atribut este o proprietate ce descrie
un anumit aspect a l obiectului ce se înregistrează în baza de date.
Atributele mai sunt cunoscute ș i sub numele de câmpuri sau
caracteristici.
Un atribut este caracterizat de mulțimea valorilor pe care le poate
lua. Aceste valori pot fi numerice, alfanumerice (ș iruri de caractere) etc. În
general atributele au val ori elementare, dar pot exista și situaț ii de atr ibute
compuse (formate prin înlănț uirea mai multor atribute elementare).
Atributele care identifică în mod unic o anumită entitate se numesc
atribute cheie, celelalte atribute numindu -se atribute non -cheie.
Atributele pot fi de mai multe tipuri, după cum urmează :
 atribut compus (bloc). Acesta este un atribut format di n cel
puțin două alte atribut e. Valoarea sa este reprezentată de
valorile atributelor componente.
 atribut cal culat (dedus). Acesta reprezintă un atribut a cărui
valoare nu este cunoscută direct, ci se calculează pe baza
valorilor altor atribute.
 atribut simplu , atribut care nu este nici compus ș i nici
calculat. Valorile sale sunt valori atomice, adică nu mai pot fi
descompuse în elemente componente.
 atribut repetitiv multivaloare. Acesta este un atribut format
din mai multe valori care se repetă de ma i multe ori pentru
aceeaș i entitate. De exemplu: entitate a STUDENT poate fi
caracterizată de atributele simple NUME și GRUP{ precum
și de atributul repetitiv DISCIPLIN{, NOT{ care este identic
pentru toate disciplinele audiate de un stu dent.
 atribut de i dentificare(cheie). Reprezintă un atribut care se
caracterizează prin unicitatea valo rii sale pentru fiecare
instanță a entității căreia îi aparț ine.” [9]

9 https://ro.scribd.com/doc/205780393/Baze -de-Date -CIG

7

1.4. Sistemele de gestiune a bazelor de date
“Sistemele de gestiune a bazelor de date (în engleză : "database
management system"), abreviat SGBD, reprezintă totalitatea programelor
utilizate pentru crearea, interogarea și întreținerea unei baze de date .
Include două categorii de module:
 module care sunt comune cu cele ale sistemelor de
operare ale calculato arelor
 module cu funcții specifice bazei de date.
Subsistemele monitor conțin programele de control al
perifericelor și sistemul de gestiune a fișierelor. Subsistemele externe
sunt alcătuite din procesorul de definiți e și programul de
administrare. Alătu ri de acestea există programe de descriere a bazei de
date și cereri de prelucrare.
Între utilizator și sistem există două interfețe:
 definirea bazei de date
 utilizarea bazei de date.
Definirea unei baze de date se execută sub controlul procesorului
de definiție (PD), capabil să prelucreze programe de descriere, formulate
folosind limbaje specializate cunoscute sub denumirea de limbaje de
definiție a datelor (LDD).” [10]
Sistemul de gestiune al unei baze de date presupune realizarea
mai multor activit ăți:
 să definească structura bazei de date;
 să încarce baza de date;
 să permită accesul la date prin funcții de interogare ș i/sau
actualizare;
 să întrețină baza de date (de exemplu: să colecteze și să
refolosească spaț iile goale);
 să reorganizeze baza de date:
 să protejeze datele.
Pentru a putea să își îndepli nească funcț iile, sistemul de gestiune
al une i baze de date trebuie să ducă la bun sfârș it mai multe obiective:
 să asigure independenț a datelor ( ca administrator al unei
baze de date , trebuie să ai libertatea de a schimba strategia
de acces ș i/sau structura de memorare, ca ră spuns la
diverse cerinț e de genul schimbă ri de stan darde , fără a
modifica aplicaț iile existente;
 să asigure o redundanță minimă și în același timp
controlată a datelor din cadrul u nei baze de date ( în mod
normal, stocarea datelor într -o bază de date ar trebuie să
țină cont de principiul conform căruia fiecare dată să apară
înregistrată o singură dată . Ȋnsă, din dorința de a micșora
timpul de căutare al unei date și automat timpul d e
răspuns, se acceptă o anumită redundanță a datelor).

10 http://ro.wik ipedia.org/wiki/Sistem_de_gestiune_a_bazelor_de_date

8
 să asigure anumite facilităț i de utiliz are a datelor sau altfel
spus să permită un acces câ t mai si mplu al utilizatorilor la
date și ca acești utlizatori să poată folosi mai multe date în
diferite apli cații folosind un limbaj câ t mai apropiat de
limbajul natural.

Capitolul 2
Tool -uri și tehnici

2.1. Visual Studio 2010

2.1.1. Prezentare general ă

“Microsoft Visual Studio este un mediu de dezvoltare integrat
(integrated development environment – IDE) de la Microsoft. Acesta
poate fi folosit pentru a dezvolta aplicații consolă și aplicații cu interfață
grafică pentru toate platformele suportate de Microsof t Windows (ex
.NET Framework, Windows Mobile etc). ” [11]
Prima versiune a programului Visual Studio a apărut î n anul 1 995
și se numea Visu al Studio 4.0. Ȋ naintea acestei versiuni a existat Visual
Basic 3, Visual C++, Visual FoxPro, Source Safe, etc.
Iată mai jos totalitatea versiunilor acestui program:

Denumire Versiune Versiunea .Net
Framework Anul Lansarii
Visual Studio 4.0 N/A 1995
Visual Studio 97 5.0 N/A 1997
Visual Studio 6.0 6.0 N/A 1998
Visual Studio .NET (2002) 7.0 1.0 2002
Visual Studio .NET 2003 7.1 1.1 2003
Visual Studio 2005 8.0 2.0 2005
Visual Studio 2008 9.0 3.5 2007
Visual Studio 2010 10.0 4.0 2010

11 http://www.math.uaic.ro/~mapetrii/fisiere/VC/Curs1.pdf

9
Visual Studio 2013 12.0 4.5 2013
Visual Studio 2015 RC 4.6 2015
“Visual Studio 2010 are numele de cod Dev10și a fost lansat pe
12 aprilie 2010 alături de .NET Framework 4. Visual Studio 2010 are un
editor nou care utilizează WPF (Windows Presentation Foundation),
sprină interfața de tip Ribbon, suportă monitoare multipl e, Windows 7
multitouch, funcționalitatea SharePoint, instrumente de Windows Azure
și IntelliTrace, un nou produs care ajută la eradicarea bug -urilor
irepetabile. Va veni furnizată împreună cu Expression Studio, Business
& Enterprise Servers și Microsoft O ffice și în versiunile Ultimate și
Premium .”[12]

2.1.2. NET.Framework

Net.Framework a ap ărut ca o nece sitate pentru a crea sisteme
informaționale care să nu fie supuse erorilor. Apoi, datorită faptului că
existau multiple platforme și sisteme, trebuia să existe o compatibilitate
între acestea. Astfel a apă rut prima versiune de .NET FRAMEWORK –
1.0
Net.Framework poate fi definită ca o platform ă de dezvoltare a
aplicațiilor lansate de către Microsoft și oferă suport pentru instalarea și
rularea unor aplicaț ii car e nu ar fi putut fi instalate fără
NET.FRAMEWORK.

Tabelul nr. 1 Scurt istoric al versiunilor Net.Framework
corelat cu versiunile de Windows

12 http://ro.wikipedia.org/wiki/Microsoft_Visual_Studio#Visual_Studio_2010 .NET
Framework
version CLR
version Features Included
in Visual
Studio
version ✓
Included
in
+ Can be
installed
on
Windows ✓
Included
in
+ Can be
installed
on
Windows
Server
.NET 4.6 RC 4  Compilation
using .NET
Native
 ASP.NET Core 5
 Event tracing
improvements 2015 RC,
although
some .NET
libraries are
available
on NuGet . ✓ 10
+ 8.1
+ 8
+ 7
+ Vista + 2012
R2
+ 2012
+ 2008
R2 SP1
+ 2008

10
 Support for
page encodings
 More… For more
information
see, The
.NET
Framework
and Out –
of-Band
Release s. SP2
4.5.2 4  New APIs for
transactional
systems and
ASP.NET
 System DPI
resizing in
Windows Forms
controls
 Profiling
improvements
 ETW and stress
logging
improvements
 More… – + 8.1
+ 8
+ 7
+ Vista + 2012
R2
+ 2012
+ 2008
R2 SP1
+ 2008
SP2
4.5.1 4  Support for
Windows Phone
Store apps
 Automatic
binding
redirection
 Performance
and debugging
improvements
 More… 2013 ✓ 8.1
+ 8
+ 7
+ Vista ✓ 2012
R2
+ 2012
+ 2008
R2 SP1
+ 2008
SP2
4.5 4  Support for
Windows Store
apps
 WPF, WCF, WF,
ASP.NET
updates
 More… 2012 ✓ 8
+ 7
+ Vista ✓ 2012
+ 2008
R2 SP1
+ 2008
SP2
4 4  Expanded base
class libraries
 Cross -platform 2010 + 7
+ Vista + 2008
R2 SP1
+ 2008

11


T
e
h
n
o
l
o
g
i
a

.
N
E
T

p
u
n
e

l
a
o
l
a
l
t
ă

m
a
i
multe tehnologii (AS P, XML, OOP, SOAP, WDSL, UDDI) ș i limbaje
de programare (VB, C++, C#, J#) asigurând, totodată atâ t portabilitatea
codului compilat î ntre diferite ca lculatoare cu sistem W indows, cât și
reutilizarea codului în programe, indifere nt de limbajul de programare
utilizat. Pentru a fi integrate î n platforma .NET, limbajele de programare
sus amintite respectă un set de caracteristice de bază Common Language
Specification (CLS), ast fel asigurându -se interoperabilitatea între development
with Portable
Class Library
 MEF, DLR, code
contracts
 More… SP2
+ 2003
3.5 2.0  AJAX -enabled
websites
 LINQ
 Dynamic data
 More… 2008 ✓ 10 ✓
8.1*
✓ 8*
✓ 7
+ Vista ✓2008
R2 SP1*
+ 2012
R2
+ 2012
+ 2008
SP2
+ 2003
3.0 2.0  WPF, WCF, WF,
CardSpace – ✓ Vista ✓ 2008
R2 SP1*
✓ 2008
SP2*
+ 2003
2.0 2.0  Generics
 ASP.NET
additions
 More… 2005 – ✓ 2008
R2 SP1
✓ 2008
SP2
✓ 2003
1.1 1.1  ASP.NET and
ADO.NET
updates
 Side-by-side
execution
 More… 2003 – ✓ 2003
1.0 1.0 First version of the .NET
Framework . Visual
Studio .NET – –

12
aplicaț ii, indiferent de limbajul folosit pentru crearea acestora. CLS -ul
definește ș i un set de tipuri – Common Type S ystem (CTS). Ca elemente
de bază , limbajele d e programare au: clase, interfețe, delegări, tip uri
valoare și referință, iar ca mecanisme: moștenirea, polimorfismul și
tratarea excepțiilor. Limbajele au o platformă comună de executare
numit ă Common Language Runtime (CLR). Toate aceste limbaje
folosesc un a nsamblu de biblioteci necesare în realizarea aplicaț iilor
desktop sau Web, numit Framework Class Library (FCL). Ȋ n figura de
mai jos este arhitectura pentru .NET Framework.” [13]

Figura nr.2 Arhitectura pentru .NET Framework

2.2. Microsoft Visual Basic

2.2.1. Prezentare generală

“Microsof t Visual Basic reprezintă cel mai rapid și mai ușor mod
de a crea programe Windows, mediul de dezvoltare oferind un set
complet de instrumente prin care este simplificată dezvoltarea în mod
vizual a unei aplicații. Cuvântul „Visual" se referă la metoda fol osită la

13 http://www.math.uaic.ro/~mapetrii/POO/depozit/Curs7.pdf

13
crearea interfeței grafice cu utilizatorul (GUI). „Basic" vine de la
limbajul BASIC (Beginners All -Purpose Symbolic Instruction Code:
codul instrucțiunilor simbolice de uz general pentru începători)
Visual Basic s -a dezvoltat din limbajul original BASIC și conține
acum mai multe sute de instrucțiuni, funcții și cuvinte cheie, multe dintre
ele legate direct de interfața GUI din Windows.
Scopul poate fi de a crea un utilitar de mici dimensiuni pentru uz
personal sau al unui grup de lucru, un sistem l a nivelul întregii firme sau
o aplicație distribuită pe întreg globul prin intermediul Internetului; în
toate aceste cazuri Visual Basic deține u neltele de care aveți nevoie.
 Caracteristicile de acces la date vă permit crearea unor
baze de date, aplicații de tip front -end (la nivel de
utilizator final) și componente scalabile la nivel de server
pentru cele mai răspîndite tipuri de baze de date, inclusiv
Microsoft SQL Server și alte baze de date de di mensiuni
mari, precum Oracle.
 Tehnologiile ActiveX vă pe rmit să folosiți funcțiile
furnizate de către alte aplicații, precum editorul de texte
Microsoft Word, programul de calcul tabelar Microsoft
Excel, ca și de alte aplicații Windows.
 Facilitățile pentru Internet permit accesul din cadrul
aplicației dumneavo astră la documente și aplicații din
Internet sau intranet sau crearea unor apli cații de tip
client -server. 2
 O dată terminată, aplicația va fi un fișier cu adevărat
executabil, de tip .exe, care se poate distribui utilizatorilor
finali.” [14]

2.2.2. Concepte di n Microsoft Visual Basic

“Visual Basic implică trei concepte cheie: fere stre, evenimente ș i
mesaje.
Fereastra poate fi privită ca o zonă dreptunghiulară împreună cu
marginile sale. Există mai multe tipuri de ferestre: o fereastră de tip
Explorer în Windo ws 95, o fereastră document î n cadrul editorului de
texte sau o casetă de dialog.
Evenimentele pot apărea datorită acț iunilor utiliz atorilor (un click
de mouse, apăsarea unei taste), acț iunii unei alte ferestre sau datorită
controlului prin program. Ori d e câte ori survin e un eveniment, acesta
generează un mesaj care este trimis sistemului de operare . Sistemul de
operare procesează mesajul ș i-l transmite celorl alte ferestre. Fiecare
fereastră poate atunci să execute acțiunea corespunzătoare, care tratează
acel tip de mesaj, bazându -se pe instrucț iunile proprii de lucru.” [15]

14 http://www. mezza.org/credis/An%20II/Semestrul%20II/Programare%
\20vizuala/ProgramareVizuala_Curs_01.pdf
15 http://www.rasfoiesc.com/educatie/informatica/Mediul -si-limbajul -de-programa86.php

14

2.3. Microsoft Acces 2010

Access 2010 este un instrument pentru proiectarea aplicațiilor de
baze de date și implementarea acestora, instrument care poate fi utilizat
pentru a urmări inform ațiile importante.
“Conceptul original de Access a fost pentru utilizatorii finali să
poată să "acceseze" date din orice sursă. Alte caracteristici includ:
importul și exportul de date de mai multe formate, cum ar fi Excel ,
Outlook , ASCII , dBase , Parado x , FoxPro , SQL Server , Oracle ,
ODBC , etc. De asemenea, Access are și posibilitatea de a folosi baze de
date externe, neînglobate, în formatele: Microsoft Excel, Liste
SharePoint, text, XML, Microsoft Outlook, HTML, dBase, Paradox,
Lotus 1 -2-3, ODBC -conforme cu containerele de date, inclusiv:
Microsoft SQL Server, Oracle, MySQL, PostgreSQL, – având aceleași
posibilități de utilizare aceasta pentru vizualizare, interogare, editare, și
de raportare. Acest lucru permite apelarea datelor existente , cele ma i
recente date. Se pot efectua operații de join SQL între seturile de date de
diferite formate, stocate pe diferite platforme.
Access stochează toate tabelele de baze de date, interogări,
formulare, rapoarte, macrocomenzi și module în baza de date Jet Acce ss
ca un singur fișier. Microsoft Access utilizează atât formatul ACCDB,
cât și MDB.
Un fișier MDE / ACCDE este o bază de date Microsoft Access
fișier cu toate modulele compilate și tot codul sursă editabil eliminat,
care cuprinde toate componentele: tabel e, interogări, module,
macrocomenzi, formulare și rapoarte.
Utilizatorii pot crea tabele, interogări, formulare și rapoarte și
macrocomenzi . Utilizatorii avansați pot folosi Visual Basic pentru a scrie
soluții bogate cu avansate de manipulare a datelor și de control al
utilizatorului.
Există șabloane pentru baze de date, atât în cadrul programului
cât și pe site -ul oficial. Acestea permit utilizatorilor să construiască o
bază de date cu tabele, interogări , formulare, rapoarte și macrocomenzi
predefinite. Ș abloanele nu includ cod Visual Basic.” [16]

2.4. Tehnologiile OLEDB

“În Visual Studio.NET lucrul cu baze de date se poate realiza
utilizând tehnologiile OLEDB sau ADO. OLEDB (Object Linking and
Embedding, Database) este un set de interfețe proiectat de Microso ft
pentru accesarea a difierite tipuri de date stocate într -o manieră uniformă.
A fost proiectată ca un înlocuitor de un nivel mai înalt, fiind de fapt
succesorul lui ODBC, extizâ ndu-i caracteristicile. OLEDB sep ară printr –

16 http://ro.wikipedia.org/wiki/Microsoft_Access

15
un set de abstractiză ri datele de aplicația care are nevoie să le acceseze.
OLEDB este divizată la nivel conceptual între consumatori și furn izori.
Consumatorii sunt aplicaț iile care au nevoie să acceseze datele iar
furnizorul este componenta software care implementează interfața și
drept urmare care redă datele consumatorului. ADO (ActiveX Data
Objects) reprezintă un un set de obiecte utilizate pentru accesarea
surselor de date. ADO fu rnizează un nivel de abstractizare între client și
interfețele OLEDB. ADO permite dezvoltatorului să scrie programe care
accesează datele fără să știe cum este implementată BD. Sunt necesare
cunoștiințe privind BD doar pentru conectare. Nu sunt necesare
cunostințe de SQL pentru a accesa BD deși se poate folosi ADO pentru a
executa comenzi sql. ADO este bazat p e OLEDB, cele două nu sunt
separate, nu sunt tehnologii distincte. OLEDB, fiind la un nivel mai jos
decat ADO, este mai rapid. ADO pr ezintă un subset din capabilitațile
OLEDB ș i abstractizează mult din funcționarea OLEDB.” [17]

2.5. Sisteme de gestiune a baze lor de date MySQL

2.5.1. Prezentare general ă

“MySQL este un sistem de gestiune a bazelor de date relațio nale,
produs de compania suedeză MySQL AB și distribuit sub Licența
Publică Generală GNU. Este cel mai popular SGBD open -source la ora
actuală, fiind o compo nentă cheie a stivei LAMP (Linux, Apache,
MySQL, PHP).
Deși este folosit foarte des împreună cu limbajul de programare
PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există
multe scheme API disponibile pentru MySQL ce permit scrierea
aplica țiilor în numeroase limbaje de programare pentru accesarea bazelor
de date MySQL, cum are fi: C, C++, C#, Java, Perl, PHP, Python,
FreeBasic, etc., fiecare dintre acestea folosind un tip specific API. O
interfață de tip ODBC denumită MyODBC permite altor l imbaje de
programare ce folosesc această interfață, să interacționeze cu bazele de
date MySQL cum ar fi ASP sau Visual Basic. În sprijinul acestor limbaje
de programare, unele companii produc componente de tip COM/COM+
sau .NET (pentru Windows) prin
intermediul cărora respectivele limbaje să poată folosi acest SGBD mult
mai ușor decât prin intermediul sistemului ODBC. Aceste componente
pot fi gratuite (ca de exemplu MyVBQL) sau comerciale.
LAMP cuprinde și MySQL
Licența GNU GPL nu permite încorporarea MySQ L în softuri
comerciale; cei care doresc să facă acest lucru pot achiziționa, contra
cost, o licență comercială de la compania producătoare, MySQL AB.

17 http://www.aut.upt.ro/~rr aul/MTP/2008 -2009/Laborator4_MTP.pdf

16
MySQL este componentă integrată a platformelor LAMP sau
WAMP (Linux/Windows -Apache -MySQL -PHP/Perl/Python) .
Popularitatea sa ca aplicație web este strâns legată de cea a PHP -ului care
este adesea combinat cu MySQL și denumit Duo -ul Dinamic. În multe
cărți de specialitate este precizat faptul ca MySQL este mult mai ușor de
invățat și folosit decât multe din apl icațiile de gestiune a bazelor de date,
ca exemplu comanda de ieșire fiind una simplă și evidentă: „exit” sau
„quit”.
Pentru a administra bazele de date MySQL se poate folosi modul
linie de comandă sau, prin descărcare de pe internet, o interfață grafică:
MySQL Administrator și MySQL Query Browser. Un alt instrument de
management al acestor baze de date este aplicația gratuită, scrisă în PHP,
phpMyAdmin.
MySQL poate fi rulat pe multe dintre platformele software
existente: AIX, FreeBSD, GNU/Linux, Mac OS X, NetBSD, Solaris,
SunOS, Windows 9x/NT/2000/XP/Vista. ”[18]

Cele mai importante caracteristici ale MySQL sunt:
> este un SGBD – asigură gestiunea unei colecț ii structurate de baze de
date
> este un SGBD relaț ional – datele sunt o rganizate în tabele; între tabele
sunt relații și constrâ ngeri de integritate
> serverul de baze de date este separat logic și uneori fizic de programele
client care asigură interfața operațiilor cu baze de date.
> este distribuit în formula Open Source Software – această formulă permite
orică rei persoane să utilizeze și să modifice programul, care poate fi luat
gratuit de pe internet.

2.5.2. Comenzi MySQL
“Pentru a ne putea face o bază de date trebuie ca serverul MySQL
să fie pornit. Ȋn continuare va trebui să folosim o aplicație cu ajutorul
căreia să comunicăm cu serverul. Aplicația se numește mysql.exe și se
găsește în c: \mysql \bin\. Pentru a rula, din prompul MSDOS scriem:
"c:\mysql \bin\mysql.exe -p -u root" iar când ni se cere parola apăsăm
ENTER (sau scriem parola dacă am introdus la instalare vreuna). Dacă
serverul nu este pornit vom primi mesajul de eroare "Can't connect to
MySQL server on 'localhost'".

Tabel nr.2 Comenzi MySQL

18 http://ro.wikipedia.org/wiki/MySQL SHOW DATABASES; # afiseaza o lista cu numele bazelor de date
existente
USE numele_bazei_de_date # alegerea bazei d e date cu care lucram in
continuare

17
SHOW TABLES; # afiseaza tabelele existente in baza curenta
SHOW COLUMNS; # afiseaza informatii despre coloanele unui
tabel
CREATE DATABASE numele_bazei; # creeaza o baza de date cu numele
respectiv
CREATE TABLE tabel _unu (camp_a TEXT); # creeaza tabelul tabel_unu cu un camp
numit 'camp_a' al carui tip este TEXT
(vezi Tipuri de date )
CREATE TABLE tabel_unu (camp_a TEXT, camp_b
INT, camp_c TINYINT); # creeaza tabelul 'tabel_unu' cu un camp
numit 'camp_a' al carui tip este TEXT, un
camp numit 'camp_b' in care datele de pe
coloana respectiva vor fi numere intregi si
in campul 'camp_c' vor fi introduse doar
numere intre -128 si 127
DROP TABLE tabel_unu; # sterge tabelul numit 'tabel_unu'
DROP DATABASE numele_bazei; # sterge baza de date cu numele
'numele_bazei'
INSERT INTRO tabel (camp1, camp2, camp3)
VALUES (valoarea1, valoarea2, valoarea3); # introduce in tabelul cu numele 'tabel ', in
'campul1' 'valoarea1', in 'campul2'
'valoarea2' si in 'campul3' 'valoarea3'. Iata
cum ar arata in format tabelar:
campul1 campul2 campul3
valoarea1 valoarea2 valoarea3

INSERT INTRO tabel (camp1, camp2) VALUES
(valoarea1, valoarea2); # Se poate om ite una din coloane, daca
avem 5 coloane, dar vrem sa introducem
numai in 3, specificam campul si valoarea
doar pentru cele pe care le vrem, restul le
ignoram.
campul1 campul2 campul3
valoarea1 valoarea2

INSERT INTRO tabel VALUES (valoarea1,
valoarea 2, valoarea3); # o varianta simplificata care se poate
aplica doar cand introducem valori in toate
campurile tabelului (nu se poate omite)
INSERT INTRO tabel VALUES (valoarea1,
valoarea2, „); # identica ca cea dinainte, doar ca in lipsa
unei valori se pu n ghilimele.
SELECT * FROM tabel; # Afiseaza tot (*) ce exista in tabelul cu
numele 'tabel'
SELECT campul1 FROM tabel; # afiseaza continutul campului 'campul1'
din tabelul 'tabel'
SELECT campul1, campul2 FROM tabel # afiseaza continutul campurilor 'camp ul1'
si 'campul2' din tabelul 'tabel'
SELECT * FROM tabel WHERE campul1 =
'valoare1'; # afiseaza campurile a caror continut este
la fel cu 'valoare1'
SELECT campul1, campul2 FROM tabel WHERE
campul2 LIKE 'valoare2'; # cauta si afiseaza toate inregistrari le in
care 'campul2' este asemanator cu
'valoare2'
SELECT campul1, campul2 FROM tabel WHERE
campul2 LIKE 'valoare2%'; # cauta si afiseaza toate inregistrarile in
care 'campul2' incepe cu 'valoare2'
SELECT campul1, campul2 FROM tabel WHERE # cauta si afiseaza toate inregistrarile in

18

Desi MySQL are suport pentru diacritice și setul de caractere
8859 -2, este preferabil să nu folosiți diacritice în numele bazelor de date,
tabelelor sau câmpurilor. De asemenea, nu puteți folosi ca nume de tabel
sau de câmp cuvinte rezervate (nume de funcț ii, tipuri de caractere din
MySQL precum create, drop sau column). Se pot folosi nume de tabele
care conțin spații dar în practică trebuie să încadrați numele între back –
ticks ` (semnul ` îl găsiți pe tasta aflată imediat sub Escape și înainte de
1). campul2 LIKE '% valoare2'; care 'campul2' se termina cu 'valoare2'
SELECT campul1, campul2 FROM tabel WHERE
campul2 LIKE '%valoare2%'; # cauta si afiseaza toate inregistrarile in
care 'campul2' se aseamana cu 'valoare2'
oriunde in cadrul textului.
SELECT * FROM tabel WHERE campul1=valoare1
AND campul2 LIKE '%valoare2%'; # afiseaza toate campurile care contin
'valoarea1' si se asemanana cu 'valoare2'
SELECT campul1, campul2 FROM tabel WHERE
campul1 != valoarea3; # cauta si afis eaza toate campurile care
difera de 'valoarea3'
SELECT campul1, campul2 FROM tabel WHERE
campul2 NOT LIKE 'valoarea3%'; # cauta si afiseaza toate campurile care nu
incep cu 'valoare3'
SELECT campul1 FROM tabel ORDER BY campul1
ASC; # afiseaza continutul campului 'campul1' in
ordine crescatoare
SELECT campul1, campul2 FROM tabel ORDER BY
campul1 ASC, campul2 DESC; # afiseaza continutul campului 1 in ordine
crescatoare si campul 2 in ordine
descrescatoare.
SELECT count(*) FROM tabel; # afiseaza cate inreg istrari sunt in total in
tabel
SELECT count (*) FROM tabel WHERE
campul1=variabila1; # cate inregistrari sunt in tabel al caror
'camp1' este 'variabila1'
SELECT camp1 FROM tabel GROUP BY camp1
ORDER BY camp1 ASC; # afiseaza continutul campului 1 grupat
dupa 'camp1' ascendent
SELECT * FROM tabel LIMIT 0,3; # afiseaza din tabel incepand de la prima
inregistrare inca 3.
SELECT * FROM tabel LIMIT 10,5; # afiseaza incepand de la inregistrarea 10
inca 5 inregistrari din tabel
DELETE FROM tabel WHERE conditii ; # sterge inregistrarea din tabel. Sintaxa este
la fel ca la comanda SELECT.
UPDATE tabel SET coloana1='noua valoare a
coloanei 1', coloana2='noua valoare a coloanei 2'
WHERE conditii; # pentru actuaizarea continutului unei
inregistrari din tabel. Sintax a este la fel ca
la comanda SELECT.
ALTER TABLE tabel ADD dat TEXT; # adaugare la tabelul existent a unei
coloane numita 'dat' de tip text.
ALTER TABLE tabel CHANGE dat data TEXT; # redenumeste coloana numita 'dat' cu
numele 'data'
ALTER TABLE tabel CHA NGE data data DATE; # modifica tipul coloanei 'data' din 'TEXT'
in coloana de tip 'DATE'
ALTER TABLE tabel ADD nr MEDIUMINT
UNSIGNED AFTER coloana1; # adauga o coloana numita 'nr' dupa
'coloana1' in tabelul 'tabel'
INDECSI # vezi descrierea mai jos

19
Exemp lu:
CREATE TABLE `tabel al carui nume are spatii` (`camp 1`,
TEXT);
SHOW COLUMNS FROM `tabel al carui nume are spatii`;
Semnul * este definit în MySQL ca însemnând tot/toate.
Semnul % este folosit în interogările MySQL dacă vrem să găsim
cuvântul oriunde î n cadrul textului. Mai exact:
%cuvant_cautat – daca vrem să afișeze toate cuvintele care se
termină cu 'cuvantul_cautat' (pot fi și câteva litere)
cuvant_cautat% – afișează toate cuvintele care încep cu
'cuvantul_cautat'
%cuvant_cautat% – afișează toate cu vintele care conțin
'cuvantul_cautat' oriunde în text.
Putem afla câte înregistrări sunt pentru un criteriu de selecție cu
ajutorul lui count().Putem afla astfel câte înregistrări sunt în total în tabel
sau câte înregistrări sunt în tabel al căror câmp est e cel căutat…
Cu ajutorul instrucțiunii GROUP BY putem "grupa" rezultatele
astfel încât să nu vedem duplicatele și să vedem doar valorile unice.
Pentru a limita numărul de rezultate folosim instrucțiunea LIMIT. Dacă
avem 10000 de înregistrări și nu dorim să vedem decât primele 3, folosim
LIMIT 0,3 (adică de la prima înregistrare afișeaăa 3 înregistrări) sau
LIMIT 10,5 (afișează începând de la înregistrarea 10 încă 5 înregistrări).
Pentru ștergerea înregistrărilor dintr -un tabel se folosește
comanda DELETE . Pentru ștergerea unui tabel sau a unei baze de date
comanda este DROP.
Comanda UPDATE se folosește când vrem să modificăm
conținutul unei înregistrări fără a o șterge.
Dacă dorim să schimbăm structura unui tabel existent sau să
adăugăm alte coloane folos im comanda ALTER TABLE.
INDECSI – Cel mai folosit tip de index este id -ul. Id -ul este un
număr unic de identificare pentru un element distinct (un rând) al unui
tabel. Un exemplu de id din viața reală este numerotarea cd -urilor. Cand
aveti un cd nou il num erotați și îl puneți în raft la sfârșit iar în catalog
puteți să îl puneți sortat după titlu sau după numărul de ordine. La fel și
într-o bază de date, puteți crea un câmp care să introducă automat un nr
pentru fiecare rând nou adăugat în baza de date și l a afișare puteți să îl
folosiți (de exemplu la vizualizarea ultimilor 10 vizitatori folosiți id -ul –
vezi secțiunea de monitorizare a traficului de pe acest site).
Pentru a crea un index avem următoarele comenzi:
Să zicem că avem o bază de date numită list a cu un câmp casetă și
adăugăm câmpul id_casete – comanda este următoarea:
ALTER TABLE `caseta` ADD `id_caseta` INT;
ALTER TABLE `caseta` CHANGE `id_caseta` `id_caseta`
INT(11) UNSIGNED NOT NULL;
ALTER TABLE `caseta` ADD PRIMARY KEY (id_caseta);

20
ALTER TABL E `caseta` CHANGE `id_caseta` `id_caseta`
INT(11) UNSIGNED DEFAULT "0" NOT NULL
AUTO_INCREMENT;
Și din acest moment, orice casetă nou introdusă va avea automat
un nr de ordine. Este posibil ca toată inșiruirea de comenzi de mai sus să
se poată face printr -o singură linie de cod, dar este mai sigur să faceți
câte o modificare în parte decât toate odată, pentru a detecta eventualele
erori. Este bine să creați un id la începutul tabelului, când nu aveți intrări
în baza de date, pentru a face incrementarea auto mat, altfel e posibil să vă
dea erori. Cu ajutorul id -ului puteți afișa de exemplu noutățile, cu o
comandă de genul – afișează ultimele 10 intrări sortate după id…, știind că
întotdeauna ultima intrare are numărul cel mai mare…
MySQL stochează fizic da tele unui tabel într -un fișier pe hard
disc și cu cât tabelul e mai mare, cu atât mărimea acestui fișier crește.
Versiunea 3.22 a MySQL are o limită de 4 GB pentru mărimea unui
tabel. Ȋn versiunile superioare această limită este extinsă până la 8
milioane TB pentru tipul de tabel MyISAM. Cu toate acestea, sistemele
de operare pot avea propriile limitări ale mărimii fișierelor. Mărimea
impicită a tabelelor MySQL este de aproximativ 4 GB. Se poate verifica
mărimea maximă pentru un tabel cu ajutorul comenzilor SHOW TABLE
STATUS sau myisamchk -dv table_name. Pe platforma Windows se va
folosi sistemul de fișiere NTFS pentru tabele mai mari de 4 GB.”

21

Capitolul 3
Studiu de caz – Gestiune training by Radu Simon
Aplicaț ia creată ne permi te gestionarea unei baz e de date ce
cuprinde informaț ii cu privire la structurarea cursurilor de pregă tire a le
angajaților î ntr-o companie de transport aerian .
Un aspect la fel de important ca și realizarea aplicaț iei este
modalitatea de organizare a datel or pentru prelucrarea lor ulterioară .
Astfel, vom putea : gestiona datele și legă turile dintre ele în vederea
regăsirii rapide prin intermediul sistemului de acces, memora datel e pe
suport extern prin sistemul d e gestiune a fiș ierelor, introduce ș i extrage
datel e din/spre exterior în forma cerută .
3.1. Arhitectura aplicaț iei
Arhitectura aplicaț iei de structurare a cursurilor de pregă tire a le
angajaț ilor conține: schema cu modulele + descriere modul login,
instru ctori, meniu personal modif icat pus po ză, as cuns fun cții,
depart ament, verific buton ștergere – opțiunea C ANCEL, rapoarte, tipuri
cursuri.
O singura persoană va putea g estiona baz a de date referitoare la
pregătirea angajaților având acces în aplicaț ie pe baz a unui modul de
login ce va conține “user name” ș i “password”.

3.2. Descrierea modulelor component e

3.2.1. Descriere modul Login

22

Modulul Login conține următoarele :
– TextBox1 pentru introducere User name
– TextBox2 pentru introducere Password ( s-a setat
proprietatea PasswordChar:”*” )
– Button1_ok pentru a accesa meniul principal al aplic atiei
(s-a setat proprietatea Text:ok si evenimentul Click:Button1_Ok_click )
– Button2_cancel pentru a renunț a la accesarea aplica ției (s-
a setat proprietatea Text:Cancel ș i evenimentul
Click:Button2_cancel _click )
În continuare un sc reen shot cu programarea ferestrei de Login a
aplicației:

System.EventArgs) Handles Button1_ok.Click
If TextBox1.Text = "Admin" And TextBox2.Text =
"1234" Then
'la acceptarea butonului ok se trece in
form1
Dim a As New Meni u_Principal
a.Show()
Me.Close()
' MessageBox.Show("ok")
Else : MessageBox.Show("Eroare")

End If
End Sub

După ce utilizatorul s -a logat, poate accesa meniul principal, un
form ce conține butoanele de activare a 13 meniuri ș i un buton pentru
delogare :

23

Din meniul principal, utilizatorul poate accesa oricare din
meniuri le existente printr -un simplu click de mouse.
În continuare un screen shot cu acc esarea meniului
Tipuri_Cursuri din Meniu_Principal al aplicației.

Private Sub Button2_tipuricursuri_Click( ByVal sender As
System.Object, ByVal e As System.EventArgs ) Handles
Button2_tipuricursuri.Click

Dim g As New Meniu_Tipuri_Cursuri
g.Show()
End Sub
Pentru părăsirea aplicației se execută codul:

Sub Button12_exit_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button12_exit.Click
Application.Exit()
End Sub

3.2.2. Descriere Meniu_Cursuri

La accesarea meniului “Meniu_Cursuri” va apă rea:

24

Ȋn cadrul meniului “Cursuri” utilizatorul poate să:
– navig heze prin înregistră rile exi stente utilizâ nd

– adauge noi inregistră ri utilizând

– modific e datel e unei inregistră ri utilizând

– stearga date utilizând

– salveze date utilizând

– renunț e la acțiunea începută utilizând

– se întoarcă la meniul principal

La intrarea î n meniul “Meniu_ Cursuri”, în afară de butonul de
salvare și butonul de renunț are, toate butoanele prezentate mai sus sunt
active.
Ȋn cazul î n care utilizatorul d orește să adauge sau să modifice o
înregistrare, singurele but oane active sunt salvare, renunțare sau
întoarcere la meniul principal.
Ȋn cazul în care utilizatorul dorește să șteargă o î nregi strare, ca o
măsură de siguranță , i se v a cere o co nfirmare suplimentară prin
interogarea urmă toare:

Ȋn crea rea meniului “Meniu_Cursuri” s -au folosit urmă toarele:
 Label (e.g. ID curs, Nume partici pant, Prenume
participant, Funcț ie participant, Nu me instructor, Prenume
instructor, Nume curs, Dată începere, Data sfârș it, Mod

25
prezentare curs, Sală curs, Instrumente curs și Căutare
nume părț i) cu scopul de a defini câ mpurile aferente bazei
de date.
 TextBox cu scopul de a defini câ mpuril e folosite în
gestionarea informaț iilor de spre ID curs
(TextBox1_idcurs), Nume participa nt
(TextBox2_numeparticipant),Prenume participant
(Text Box3_prenumeparticipant), funcț ie
(TextBox4_functie), Nume instructor
(TextBox5_numeinstructor), Prenume instructor
(TextBox6_p renumeinstructor), Să li curs
(TextBox7_salicurs), instrumente curs
(TextBox8_instrumente_curs), Nume curs
(TextBox9_nunecurs) ș i Mod prezentare curs
(TextBox10_modprezentarecurs)
 Combo Box cu scopul de a putea selecta o înregistrar e
dintr -o listă de înreg istrări. Sunt f olosite pentru sel ectarea
câmpurilor Funcț ie participant (cmbfunctie), Sala curs
(cmbsalicurs), Instrumente curs (cmbinstrumentecurs),
Nume curs (cmbnumecurs) ș i Mod prezentare curs
(cmbmodprezentarecurs)
 DateTimePicker cu scopul de a defini câmpurile Dată
începere (DataTimePicker1_dataincepere) ș i Dată sfârș it
(DataTimePicker_datasfarsit). Aceste controale sunt
folosite pentru definirea duratei diverselor cursuri
gestionate prin acest meniu.
 DataGridView1 va afiș a inițial toate înregistrările din
baza de date, iar în urma completării câmpului txtcautare
doar î nregistrările care respectă condiț iile precizate.
 BindingSource încapsulează date din baza de date
conectat ă (“Cursuri”) și ofer ă funcț ii pentru manipularea
acestora.
 BindingNavigator pemite o serie de comenzi pentru
parcurgerea înregistrărilor î n baza de d ate. Acesta va
naviga print re datele sin BindingSource, iar controalele
(e.g. TextBox, ComboBox, etc…) vor fi legate la acest
BindingSource.
Ȋn continuare sunt prezentate extrase de cod cu referire la diferite
acțiuni întreprinse î n cadrul Meniu_ Cursuri care se aplică în mod similar
și în celelalte meniuri ale aplicaț iei.
 Pentru ca aplicația să aibă 2 stări de funcț ionare ( prima
stare – butonul de Adă ugare va fi activ, iar cele de Salvare
și Renunț are vor f i inactive. Butoanele Editare, Ștergere și
Căutare vor fi active doar dacă există înregistrări î n baza
de date; a doua stare – se instaurează atunci când se
apasă Adă ugare sau Editare. Se vor dez activa controalele

26
de navigare și comenzil e Adăugare, Editare, Ștergere,
Căutare singurele acț iuni posibile fii nd Salvare sau
Renunț are)
Screen shot cu codul pentru setarea stărilor de
activare/dezactivare pentru butoanele de navigare:

Private Sub stari_butoane_navigare(ByVal s As Boolean)
BindingNavigatorMoveFirstItem.Enabled = s

BindingNavigatorMoveLastItem.Enabled = s
BindingNavigatorMovePreviousItem.Enabled = s
BindingNavigatorMoveNextItem.Enabled = s
End Sub

Screen shot cu codul pentru setarea stă rilor de activ are/dezactivare
pentru c omponentele meniului:

Private Sub stari(ByVal s As Boolean)

BindingNavigatorAddNewItem.Enabled = s
BindingNavigatorDeleteItem.Enabled = s

ButtonModificare.Enabled = s
SaveButton.Enabled = Not s
ButtonRenuntare.Ena bled = Not s

TextBox1_idcurs.Enabled = Not s
TextBox2_numeparticipant.Enabled = Not s
TextBox3_prenumeparticipant.Enabled = Not s
TextBox4_functie.Enabled = Not s
TextBox5_numeinstructor.Enabled = Not s
cmbfunctie.Enabled = Not s
cmbinstrumentecurs.Enabled = Not s
cmbmodprezentarecurs.Enabled = Not s
cmbnumecurs.Enabled = Not s
cmbsalicurs.Enabled = Not s
TextBox6_prenumeinstructor.Enabled = Not s
TextBox7_salic urs.Enabled = Not s
TextBox8_instrumentecurs.Enabled = Not s
TextBox9_nunecurs.Enabled = Not s
TextBox10_modprezentarecurs.Enabled = Not s
txtCautare.Enabled = s
DateTimePicker1_dataincepere.Enabled = Not s
DateTimePicker_datasfarsit.Enabled = Not s

End Sub
 Rutina de mai jos (încărcare ComboBox) s-a creat pentru
categoriile de informaț ii care se int roduc prin selectare
(e.g. funcț ie participant, sa lă curs, etc ):
Private Sub incarcare_combo(ByVal sql As St ring, ByVal tabel
As String, ByVal
cmb As ComboBox)
adaptor = New OleDbDataAdapter(sql, conexiune)
adaptor.Fill(ds.Tables(tabel))
adaptor.Dispose()

27
For Each dr As DataRow In ds.Tables(tabel).Rows
'MessageBox.Show(dr(0).ToString().ToUpper())
cmb.Item s.Add(New ptrCombo(dr(0).ToString().ToUpper(),
dr(1).ToString().ToUpper()))
Next
cmb.DropDownStyle = ComboBoxStyle.DropDownList
End Sub
Screen shot -ul de mai jos prezintă modalitatea de actualizare a
câmpurilor adă ugate:
Private Sub actualizare_campuri_adaugate_dt(ByVal coloana_noua
As String, ByVal tabel As String, ByVal coloana_leg As String)
'Try
For Each dr_i As DataRow In ds.Tables("c ursuri").Row
'MessageBox.Show(dr_i(3))
For Each dr_leg As DataRow In ds.Tables(tabel).Rows
'MessageBox.Show(dr(0).ToString().ToUpper())
If (dr_leg(0) = dr_i(coloana_leg)) Then
dr_i(coloana_noua) = dr_leg(1)
End If
Next
'Catch ex As Exception
'End Try
End Sub

Ulterior, p rocedura de tip încărcare combo va fi folosită pentru
selectarea datelor efective făcâ nd referire la tabelul aferent di n baza de
date și actualizarea acestora după cum urmează (extrase din aplicaț ie –
încărcarea datelor din baza de date î n meniul Meniu_Cursuri ):
Private Sub Meniu_Cursuri_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load )
incarcare_combo("select * from tipuri_cursuri",
"tipuri_cursuri", cmbnumecurs)
incarcare_combo("select * from mod_prezentare_curs",
"mod_prezentare_c urs", cmbmodprezentarecurs)
incarcare_combo("select * from Functii", "functii",
cmbfunctie)
incarcare_combo("select * from sali_curs", "sali_curs",
cmbsalicurs)
incarcare_combo("select * from instrumente", "instrumente",
cmbinstrumentecurs)
actualizare_ campuri_adaugate_dt("tip_curs", "tipuri_cursuri",
"nume_curs")
actualizare_campuri_adaugate_dt("prezentare_curs","mod_prezent
are_curs","mod_instruire")
actualizare_campuri_adaugate_dt("functia", "functii",
"functie_participant")
actualizare_campuri_adau gate_dt("sala", "sali_curs",
"sala_curs")
actualizare_campuri_adaugate_dt("instrument", "instrumente",
"instrumente_curs")
Pentru încă rcarea datelor dorit e a fi afișate î n DataGridView
[extrase din Private Sub Meniu_Cursuri_Load( ByVal sender As
System. Object , ByVal e As System. EventArgs ) Handles MyBase .Load ]:
DataGridView1.DataSource = BindingSource1
DataGridView1.ReadOnly = True
DataGridView1.MultiSelect = False
DataGridView1.Columns("functie_participant").Visible = False

28
DataGridView1.Columns("sala_curs").Visible = False
DataGridView1.Columns("Nume_curs").Visible = False
DataGridView1.Columns("instrumente_curs").Visible = False
DataGridView1.Columns("mod_instruire").Visible = False
DataGridView1.Columns("functia").DisplayIndex = 10
DataGridView1.Columns("sala").DisplayIndex = 10
DataGridView1.Columns("tip_curs").DisplayIndex = 10
DataGridView1.Columns("instrument").D isplayIndex = 10
DataGridView1.Columns("prezentare_curs").DisplayIndex = 10
 Mai jos screen shot cu rutina aferentă butonul ui de
salvare:
Private Sub SaveButton_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles SaveButton.Click
stari(True)
BindingSource1.EndEdit()
adaptor.Update(ds.Tables("Cursuri"))
actualizare_campuri_adaugate_dt("tip_curs", "tipuri_cursuri",
"nume_curs")
actualizare_campuri_adaugate_dt("prezentare_curs",
"mod_prezentare_curs", "mod_instruire")
actualizare_c ampuri_adaugate_dt("functia", "functii",
"functie_participant")
actualizare_campuri_adaugate_dt("sala", "sali_curs",
"sala_curs")
actualizare_campuri_adaugate_dt("instrument", "instrumente",
"instrumente_curs")
End Sub

 Datele care sunt cuprinse î n m eniul Meniu_ Cursuri
(similar și în celelalte meniuri ale aplicaț iei) sunt
introduse de către utilizator de la nivelul tastaturii ,
respectiv prin selectare în cadrul acțiunii de modificare a
unei înregistră ri sunt descrise 2 rut ine una de schimbare in
Combo Box și una de schimbare în TextBox .

Private Sub schimbare_item_combo(ByVal cmb As ComboBox, ByVal
txt As TextBox)
Dim randulSelectat As ptrCombo = CType(cmb.SelectedItem,
ptrCombo)
txt.Text = randulSelectat.Valoarea
'MessageBox.Show(randulSelectat.Valoar ea + "|" +
randulSelectat.descrierea)
End Sub

Private Sub schimbare_textbox(ByVal cmb As ComboBox, ByVal
txt As TextBox)
Dim i As Integer = 0
Dim gasit As Boolean = False
For Each c As ptrCombo In cmb.Items

29
'MessageBox.Show(cmb.Valoarea + "|" +
TextBox5_departament.Text)
If (c.Valoarea = txt.Text) Then
'MessageBox.Show("intra")
'cmbDepartamente.SelectedItem = cmb
cmb.SelectedIndex = I
gasit = True
Exit For
End If
i += 1
Next
If gasit = False Then
cmb.SelectedIndex = cmb.Items.Count – 1
End If
End Sub

Rutinele descrise mai jos sunt apelate pentru fiecare Text Box ș i
ComboBox descris in Meniu_ Cursuri .

Iată un exemplu pentru un TextBox:
Private Sub TextBox8_instrumentecurs_TextChanged(ByVal sender
As System.Object, ByVal e As System.EventA rgs) Handles
TextBox8_instrumentecurs.TextChanged
schimbare_textbox(cmbinstrumentecurs,
TextBox8_instrumentecurs)
End Sub

Iată un exemplu pentru un ComboBox:
Private Sub cmbinstrumentecurs_SelectedIndexChanged(ByVal
sender As System.Object, ByVal e A s System.EventArgs) Handles
cmbinstrumentecurs.SelectedIndexChanged
schimbare_item_combo(cmbinstrumentecurs,
TextBox8_instrumentecurs)
End Sub
Iată mai jos r utina de că utare numele participantului :
Private Sub txtCautare_TextChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
txtCautare.TextChanged
BindingSource1.Filter = "nume_participant like '" +
txtCautare.Text + "%'"
End Sub

3.2.3. Descriere Meniu_Tipuri_Cursuri

Odat ă revenit la meniul principal se poate accesa urm ătorul
meniu: Tipuri_ Cursuri

30

Ȋn cadrul meniului
“Meniu_Tipuri_cursuri” ut ilizatorul poate efectua aceleaș i operaț iuni
descrise pentru Meniul “Meniu_Cursuri”, similar ă fiind și funcț ionarea
stărilor de activare/dezactivare a butoanelor de gestiune a înregistr ărilor
(salvare, modificare, adăugare, ștergere , renun țare și întoarcere la meniul
principal .
Modulul Meniu_Tipuri_cursuri cuprinde urm ătoarele:
 TextBox1_idtipuricursuri permite gestionarea
informa țiilor legate de ID unic al fiec ărui tip de curs
 TextBox2_tipuricursuri permite gestionarea
informa țiilor legate de numele fiec ărui curs
 txtCautare permite afișarea în Data Grid View a tuturor
înregistr ărilor din tabelul “Tipuri cursuri” a c ăror nume
începe cu litera introdus ă
 DataGridView1 pentru afi șarea inițială a tuturor
înregistr ărilor din tabelul “Tipuri cursuri” iar în urma
complet ării c âmpului txtcautare doar înregistr ările care
respect ă condi țiile precizate.
Codul de prog ram pentru ac țiunile întrep rinse în cadrul meniului
Tipuri_ Cursuri este simila r cu cel prezentat anterior în cadrul
Meniu_ Cursuri neav ând func ții suplimentare.

3.2.4. Descriere Meniu_Instructori

31

Din
meniul principal se
poate accesa și
meniu l:
Meniu_Instructori

Ȋn cadrul meniului “Meniu Instructori” util izatorul poate efectua
acelaș i opera țiuni descrise pentru cele dou ă meniuri anterioare , Meniul
“Meniu_ Cursuri” si Meniul “Tipuri_cursuri” , similar ă fiind și
funcționarea
stărilor de activare/dezactivare a butoanelor de gestiune a înregistr ărilor
(salvare, modificare, ad ăugare, ștergere, renun țare, și întoarcere la meniul
principal.
Modulul “Meniu_ Instructori” cuprinde urm ătoarele:
 TextBox1_id permite gestionarea informa țiilor legate de
ID-ul unic al fiec ărui instructor ;

32
 TextBox2_nume permite gestionarea inf orma țiilor legate
de numele fiec ărui instructor ;
 TextBox3_prenume permite gestionarea informa țiilor
legate de prenumele fiec ărui instructor ;
 cmbFunctii permite selectarea înregistr ării aferente din
înregistr ările existente în tabelul “Func ții” ;
 TextBox4_f unctie permite gestionarea informa țiilor
legate de func ția fiec ărui instructor ;
 cmbDepartamente permite selectarea înregistr ării
aferente din înregistr ările existente în tabelul
“Departamente” ;
 TextBox6_strada permite gestionarea informa țiilor legate
de nu mele str ăzii;
 TextBox7_numarul permite gestionarea informa țiilor
legate de num ărul imobilului ;
 TextBox8_bloc permite gestionarea informa țiilor legate
de num ărul blocului ;
 TextBox9_etaj permite gestionarea informa țiilor legate
de num ărul etajului ;
 TextBox1 0_apartament permite gestionarea
informa țiilor legate de num ărul apartamentului ;
 TextBox11_localitate permite gestionarea informa țiilor
legate de numele localit ății;
 txtPoza permite afișarea î n PictureBox1 a imaginii
aferente instructorului înregistrat ;
 PictureBox1 permite încărcarea pozei prin evenimentul
PictureBox1_Click ;
 cmbJudete permite selectarea înregistr ării aferente din
înregistr ările existente în tabelul “Departamente”
 Textbox13_telefon permite gestionarea informa țiilor
legate de num ărul de telef on al instructorului
 TextBox14_email permite gestionarea informa țiilor
legate de adresa de e-mail a instructorului
 DateTimePicker1_dataangajarii permite selectarea datei
de angajare a instructorului
 txtCautare permite afișarea în Data Grid View a tuturor
înregistr ărilor din tabelul “Instructori” a c ăror nume
începe cu litera introdusă
 DataGridView1 permite afișarea inițială a tuturor
înregistră rilor din tabelul “Instructori” iar în urma
completării câmpului txtcautare doar înregistrările care
respectă condițiile precizate.
Ȋn cadrul acestui meniu s-a introdus opț iunea de încă rcare a pozei
pentru fiecare instructor .

33
Pentru stabilirea poziț iei poze lor s-a folosit structura de mai jos
[din cadrul Private Sub Meniu__Instructori_Load( ByVal sender As
System.Obje ct, ByVal e As System.EventArgs) Handles MyBase .Load] :

PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Rutina pentru încă rcarea pozei presupune un click de mous e pe
fereastra aferentă descrisă mai jos:

Private Sub BindingSource1_CurrentChanged(ByV al sender As
System.Object, ByVal e As System.EventArgs) Handles
BindingSource1.CurrentChanged
Try
If (IsDBNull(BindingSource1(BindingSource1.Position)("poza"))
= False) Then
'MessageBox.Show(BindingSource1(BindingSource1.Position)("poza
"))
PictureBox1. Image =
System.Drawing.Image.FromFile(Application.StartupPath +
"\poze\" + BindingSource1(BindingSource1.Position)("poza"))
Else
PictureBox1.Image = Nothing
End If
Catch ex As Exception
End Try
End Sub
Iată mai jos codul pentru încărcarea pozei.
Private Sub PictureBox1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PictureBox1.Click
Dim f As New OpenFileDialog
f.InitialDirectory = "c: \"
f.Filter = "JPG files (*.jpg)|*.jpg|Bi tmaps (*.bmp)|*.bmp|Gif
(*.gif)|*.gif"
f.FilterIndex = 1
If f.ShowDialog = DialogResult.OK Then
f (TextBox1_id.Text = "") Then
MessageBox.Show("Introduceti id -ul intai")
Else
If (Not PictureBox1.Image Is Nothing) Then Dim tmp As Image
tmp = PictureB ox1.Image
PictureBox1.Image = Nothing
tmp.Dispose()
End If
PictureBox1.Image = System.Drawing.Image.FromFile(f.FileName)
My.Computer.FileSystem.CopyFile(f.FileName,
Application.StartupPath + " \poze\"+ TextBox1_id.Text + ".jpg",
True)
txtPoza.Text = Te xtBox1_id.Text + ".jpg"
End If
End If
End Sub

3.2.5. Descriere Meniu_Personal

Odată revenit la meniul principal se poate acces a urmă torul
meniu: “Meniu_Personal”

34

Ȋn cadrul meniului “Meniu_Personal” utilizatorul poate efectua
aceleași operaț iuni descrise p entru Meniul “Meniu_Cursuri”, similară
fiind și funcționarea stă rilor de activare/dezactiv are a butoanelor de
gestiune a înregistrărilor (salvare, modificare, adăugare, ș tergere,
renunțare, și î ntoarcere la meniul principal.

Modul ul “Meniu_Personal” cuprinde urmă toarele:

 TextBox1_id permite gestionarea informațiilor legate de
ID unic al fiecă rui angajat ;
 TextBox2_nume permite gestionarea informațiilor legate
de numele fiecă rui angajat ;
 TextBox3_prenume permite gestionarea info rmațiilor
legate de prenumele fiecă rui angajat ;
 cmbFunctii permite selectarea înregistrării aferente din
înregistrările existente în tabelul “Funcț ii” ;
 TextBox4_functie permite gestionarea informațiilor
legate de funcția fiecă rui angajat ;
 cmbDepartamentul permite selectarea înregistrării
aferente din înregistrările existente î n tabelul
“Departamente” ;

35
 TextBox5_departamentul permite gestionarea
informaț iei referit oare departamentul de care aparț ine
angajatul respectiv ;
 TextBox6_strada permite gestionarea i nform ațiilor legate
de numele stră zii;
 TextBox7_numarul permite gestionarea informațiilor
legate de numă rul imobilului ;
 TextBox8_bloc permite gestionarea informațiilor legate
de numărul blocului;
 TextBox9_etaj permite gestionarea informațiilor legate
de număr ul etajului;
 TextBox10_apartament permite gestionarea
informațiilor legate de numărul apartamentului;
 TextBox11_localitate permite gestionarea informațiilor
legate de numele localității;
 txtPoza permite afișarea in PictureBox1 a imaginii
aferente instructo rului înregistrat;
 PictureBox2 permite încărcarea pozei prin evenimentul
PictureBox2_Click;
 cmbJudete permite selectarea înregistrării aferente din
înregistrările existente în tabelul “Județe”;
 TextBox12_judete permite gestionarea informațiilor
referitoare la numele județului;
 Textbox13_telefon permite gestionarea informațiilor
legate de numărul de telefon al instructorului;
 TextBox14_email permite gestionarea informațiilor
legate de adresa de e -mail a instructorului;
 DateTimePicker1_dataangajarii permi te selectarea datei
de angajare a instructorului ;
 txtCautare permite afișarea în Data Grid View a tuturor
înregistrărilor din tabelul “Personal” a căror nume începe
cu litera introdusă;
 DataGridView1 permite afișarea inițială a tuturor
înregistrărilor din tabelul “Personal” iar în urma
completării câmpului txtcautare doar înregistrările care
respectă condițiile precizate.

Codul de program pentru acțiunile î ntreprinse î n cadrul meniului
Meniu_ Persona este sim ilar cu cel prezentat anterior î n cadrul
Meniu_C ursuri neavând funcț ii suplimentare.

36

3.2.6. Descriere Meniu_Departamente

Din meniul principal se poate accesa și meniu l:
“Meniu_Departamente”
Ȋn cadrul meniului “Meniu_Departamente” utilizatorul poate
efectua aceleaș i operaț iuni descrise pentru Meniul “Meniu_Cursuri”,
similară fiind și funcționarea stă rilor de activare/dezactiv are a butoanelor
de gestiune a înregistrărilor (salvare, modificare, adăugare, ș tergere,
renunțare, și î ntoarcere la meniul principal.

Modulul Meniu_Departamente cuprinde urmă toarele :
 TextBox1_iddepartament permite gestionarea
informațiilor legate de ID unic al fiecă rui depart ament;
 TextBox2_departamentul permite gestionarea
informațiilor legate de numele fiecă rui department;

37
 txtCautare permite afișarea în Data Grid View a tuturor
înregistră rilor din tabelul “Departamente” a căror nume
începe cu litera introdusă ;
 DataGridView1 permite afișarea inițială a tuturor
înregistră rilor din tabelul “Departamente” iar în urma
completării câ mpului txtcautar e doar înregistrările care
respectă condiț iile precizate.
Deoarece meniu l Meniu_Departamente nu prezintă funcțiuni
suplimentare față de meniurile prezentate anterior nu se va detalia prin
extrase de cod.

3.2.7. Descriere Meniu_Functii

Din meniul principal se poate accesa și meniu l: “Meniu_Funcț ii”

38

Ȋn cadrul meniului “Meniu_Funcț ii” utilizatorul poate efectua
aceleași operaț iuni descrise pentru Meniul “Meniu_Cursuri”, similară
fiind și funcționarea stă rilor de activare/dezactiv are a buto anelor de
gestiune a înregistrărilor (salvare, modificare, adăugare, ș tergere,
renunțare, și î ntoarcere la meniul principal.
Modulul “Meniu_Funcții” cuprinde urmă toarele:
 TextBox1_id permite gestionarea informaț iilor le gate de
ID unic al fiecărei funcț ii
 TextBox2_functie permite gestionarea informațiilor
legate de numele fiecărei funcț ii
 txtCautare permite afișarea în Data Grid View a tuturor
înregistrărilor din tabelul “Funcții” a căror nume începe cu
litera introdusă.
 DataGridView1 permite afișarea iniția lă a tuturor
înregistrărilor din tabelul “Funcții” iar în urma completării
câmpului txtcautare doar înregistrările care respectă
condiț iile precizate.
Deoarece meniul Meniu_Funcții nu prezintă funcțiuni
suplimentare față de meniurile prezentate anterior nu se va detalia prin
extrase de cod.

3.2.8. Descriere Meniu_Sali_curs

Din meniul principal se poate accesa și meniu l:
“Meniu_Sali_Curs”

39

Ȋn cadrul meniului “Meniu_Să li_Curs” utilizatorul p oate efectua
aceleași operaț iuni descrise pentru Meniul “Meniu_Cursuri ”, similară
fiind și funcționarea stă rilor de activare/dezactiv are a butoanelor de
gestiune a înregistrărilor (salvare, modificare, adăugare, ș tergere,
renunțare, și î ntoarcere la meniul principal.
Modulul “Meniu_Săli_curs” cuprinde urmă toarele:
 TextBox1_i dsala permite gestionarea informațiilor legate
de ID unic al fiecă rei Săli
 TextBox2_numesala permite gestionarea informațiilor
legate de numele fiecărei Să li
 TextBox3_nrlocuri permite gestionarea informaț iilor
legate de capacitatea fiecă rei Săli
 txtCautare permite afișarea în Data Grid View a tuturor
înregistră rilor din tabelul “Sali_curs” a căror nume începe
cu litera introdusă
 DataGridView1 permite afișarea inițială a tuturor
înregist rărilor din tabelul “Sali_cursi” iar în urma
completării câmpului txtcau tare doar înregistrările care
respectă condiț iile precizate.
Deoarece me niul Meniu_Sali_Curs nu prezintă funcț iuni
suplimentare față de meniurile prezentate anterior nu se va detalia prin
extrase de cod.

3.2.9. Descriere Meniu_Instrum ente

Din meniul pri ncipal se poate accesa ș i meniu l:
“Meniu_Instrumente”

40

Ȋn cadrul meniului “Meniu_Instrumente” utilizatorul poate
efectua aceleași operaț iuni descrise pentru Meniul “Meniu_Cursuri”,
similară fiind și funcțion area stă rilor de activare/dezactiv are a butoanelor
de gestiune a înregistrărilor (salvare, modificare, adăugare, ș tergere,
renunțare, și î ntoarcere la meniul principal.
Modulul “ Meniu_Instrumente” cuprinde urmă toarele:
 TextBox1_id permite gestionarea infor mațiilor legate de
contorizarea folosirii respectivului instrument
 TextBox2_idunic permite gestionarea informaț iilor legate
de identificarea un ică a fiecă rui instrument
 TextBox3_instrument permite gestionarea informațiilor
legate de denumirea fiecă rui inst rument
 txtCautare permite afișarea în Data Grid View a tuturor
înregistră rilor din tabelul “Instrumente” a căror denumire
începe cu litera intr odusă
 DataGridView1 permite afișarea inițială a tuturor
înregistră rilor din tabelul “Instrumente” iar în urma
completării câmpului txtcautare doar înregistrările care
respectă condiț iile precizate.
Deoarece meni ul Meniu_Instrumente nu prezintă funcț iuni
suplimentare față de meniurile prezentate anterior nu se va detalia prin
extrase de cod.

3.2.10. Descriere Meniu _Judete

41

Ȋn cadrul meniului “Meniu_Judete” utilizatorul poate efectua
aceleași operaț iuni descrise pentru Meniul “Meniu_Cursuri”, similară
fiind și funcționarea stă rilor de activare/dezactiv are a butoanelor de
gestiune a înregistrărilor (salv are, modificare, adăugare, ș tergere,
renunțare, și î ntoarcere la meniul principal.
Modu lul “Meniu_Judete” cuprinde urmă toarele:
 TextBox1_id permite gestionarea informaț iilor legate de
identificarea unică a fiecărui județ
 TextBox2_inumejudet permite gestion area informațiilor
legate de numele fiecărui județ
 txtCautare permite afișarea în Data Grid View a tuturor
înregistrărilor din tabelul “Judete” a căror denumire
începe cu litera introdusă
 DataGridView1 permite afișarea inițială a tuturor
înregistrărilor di n tabelul “Județe” iar în urma completării
câmpului txtcaut are doar înregistrările care respectă
condiț iile precizate.

Deoarece meniul Meniu_Județ e nu prezint ă funcțiuni
suplimentare față de meniurile prezentate anterior nu se va detalia prin
extrase de c od.

3.2.11. Descriere Meniu_Mod_prezentare_curs

Din meniul principal se poate accesa ș i meniu l:
“Meniu_Mod_prezentare_curs”

Ȋn cadrul meniului “Meniu_Mod_prezentare_curs” utilizatorul
poate efectua aceleași operaț iuni descrise pentru Meniul
“Meniu_Cursuri”, si milar ă fiind și funcționarea stă rilor de
activare/dezactiv are a butoanelor de gestiune a înregistrărilor (salvare,
modificare, adăugare, ș tergere, renunțare, și î ntoarcere la meniul
principal.

42

Modulul “Meniu_Mod_prezentare_curs” cuprinde urm ătoarele:
 TextBox1_idmodprezentarecurs permite gestionarea
informa țiilor legate de identificarea unic ă a fiec ărei
modalit ăți de prezentare a cursului
 TextBox2_modprezentare permite gestionarea
informaț iilor legate de denumirea fiec ărei modalităț i de
prezentare
 txtCaut are permite afișarea în Data Grid View a tuturor
înregistră rilor din ta belul “Mod_prezentare_curs” a căror
denumire începe cu litera introdusă
 DataGridView1 permite afișarea ini țială a tuturor
înregistr ărilor din tabelul “Mod_prezentare_curs” iar în
urma c omplet ării câmpului txtcautare doar înregistr ările
care respect ă condi țiile precizate.
Deoarece meni ul Meniu_Mod_prezentare_curs nu prezint ă
funcț iuni
suplimentare fa ță de meniurile prezentate anterior nu se va detalia prin
extrase de cod.
Ȋn afar ă de men iurile prezentate anterior care se refer ă la
gestiunea efectiv ă a bazei de date (tabelele create î n Access) în meniul
principal al aplicaț iei exist ă și trei meniuri de raportare prin intermediul
cărora utilizatorul aplica ției poate gener a rapoarte depre pe rsonal ,
instructori sau cursuri utiliz ând diverse criterii de filtrare.

3.2.12. Descriere mod ele de raportare

43

Ȋn continuar e se vor prezenta cele trei modele de raportare din
punc t de vedere al controalelor conț inute, mod ul de utilizare al acestora
urmând să fie detaliat în urmă torul capitol.
La accesarea butonului “Rapoarte instructori” din meniul
principal, aplicaț ia va deschide fereastra de mai jos:
Ȋn fereastra “Rapoarte_instructori” u tilizatorul are posibilitatea să aleagă
opțiunile de filtrare în vederea ob ținerii datel or dorite pe raportul ce
urmează a fi generat.
Odată generat raportul , utilizatorul are următoarele opț iuni:
– salvarea raportului prin activarea butonului

– actualizarea raportului prin activarea butonului

– printarea raportului prin activarea butonului

– căutarea unui anume text

– navigarea pri ntre paginile raportului utilizâ nd

– posibilitatea de zoom a raportului

Modulul “Rap oarte_instructori” cuprinde urmă toarele:
 cmbFunctii permite selecția informaț iei legate de fun cția
instructorului pe baza datelor înregistrate în tabelul
“Funcț ii” din baza de date

44
 cmbDepartamente permite selecția informaț iei legate de
departamentul instructorului pe baza datelor înregistrate î n
tabelul “Departamente”
 cmbJudete permite selecț ia inf ormației legate de jude țul
din care est e instructorul pe baza datelor înregistrate în
tabelul “Județ e” din baza de date
 cmdAfiseaza generează afiș area raportului
CrystalReportViewer1 pe baza selecț iei dat elor din
criteriul de filtrare și a informaț iilor din “Query1”
 DataGridView 1 permite afișarea tuturor informațiilor din
câmpurile selectate î n cadrul comenzii
“cmdAfiseaza_Click” câmpuri declarate î n tabelele
aferente ale bazei de date (tabelele “Functii”,
“Departamente”, “Judete” si “Instructori”)
 CrystalReportViewer1 permite gestiunea și generarea
raportului î n formatul gestion at prin (CrystalReport1.rpt –
câmpurile și dimensiunea casuțelor) pe baza selecției
datelor efectuată î n cadrul comenzii “cmdAfiseaza _Click”
din Query1 (creat din câ mpurile relevan te în raportare a
tabelel or “Functii”, “Departamente”, “Judete” si
“Instructori” )
Ieșirea din fer eastra “Rapoarte_instructori” se face prin î nchiderea
ferestrei (click pe close button) aplicaț iei rămânâ nd active pe
“Meniu_principal”.
La accesarea butonului “Rapoarte personal” din meniul
principal, aplicaț ia va deschide fereastra de mai jos:

Pentru modulul de raportare instructori este descris mai jos codul
programului aferent comenzii de afișare (s -a procedat î n mod similar ca
pentru celela lte rapoarte generate de aplicație Rapo arte_cursuri ș i
Rapoarte_personal):

Private Sub cmdAfiseaza_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdAfiseaza.Click Dim
randulSelectatFun As ptrCombo =
CType(cmbFunctii.SelectedItem, ptrCombo)

45
Dim randulSelectatDep As p trCombo =
CType(cmbDepartamente.SelectedItem, ptrCombo)
Dim randulSelectatJud As ptrCombo =
CType(cmbJudete.SelectedItem, ptrCombo)
Dim indicator_and As Boolean = False
Dim titlu As String = ""
sql = "select instructori.id, instructori.nume,
instructori .prenume,functii.functia,
departamente.departamentul, " _+ " instructori.localitate,
instructori.email from
instructori,departamente,functii,judete where
instructori.functie=functii.id and
instructori.departament=departamente.id_depart and
instructori.jud et=judete.id"
'MessageBox.Show(randulSelectatFun.Valoarea)
If (randulSelectatFun.Valoarea <> 0) Then
If sql.Contains("where") = True Then
sql += " and instructori.functie = " +
randulSelectatFun.Valoarea
Else
sql += " where functie = " + randulSelec tatFun.Valoarea
End If
titlu = " Instructorii cu functia de " +
randulSelectatFun.descrierea
End If
'MessageBox.Show(randulSelectatDep.Valoarea)
If (randulSelectatDep.Valoarea <> 0) Then
If sql.Contains("where") = True Then
sql += " and instructori.d epartament = " +
randulSelectatDep.Valoarea
Else
sql += " where departament = " + randulSelectatDep.Valoarea
End If
If (titlu.Length > 0) Then
titlu += ", din departamentul " +
randulSelectatDep.descrierea
Else
titlu += "Instructorii din departament ul " +
randulSelectatDep.descrierea
End If
End If
'MessageBox.Show(randulSelectatJud.Valoarea)
If (randulSelectatJud.Valoarea <> "0") Then
If sql.Contains("where") = True Then
sql += " and instructori.judet ='" +
randulSelectatJud.Valoarea + "'"
Else
sql += " where judet ='" + randulSelectatJud.Valoarea + "'"
End If
If (titlu.Length > 0) Then
titlu += ", cu domiciliul in judetul " +
randulSelectatJud.descrierea
Else
titlu += "Instructorii cu domiciliul in judetul " +
randulSelectatJud.descriere a
End If
End If
If (titlu.Length = 0) Then
titlu = "Toti instructorii"
End If

46
'txtSql.Text = sql
ds.Tables("instructori").Clear()
comanda.CommandText = sql
adaptor.Dispose()
adaptor = New OleDbDataAdapter(comanda)
Try
adaptor.Fill(ds.Tables("instru ctori"))
cr.SetDataSource(ds.Tables("instructori"))
cr.SummaryInfo.ReportTitle = titlu
'CrystalReportViewer1.ShowGroupTreeButton = False
'CrystalReportViewer1.
CrystalReportViewer1.ReportSource = cr
Catch ex As Exception
'MessageBox.Show("Eroare in int erogare:" + sql)
MessageBox.Show(ex.ToString())
End Try
'cr.rep = ds.Tables("instructori")
DataGridView1.DataSource = ds.Tables("instructori")
End Sub

Ȋn fereastra “Rapoarte_personal” utilizatorul are posibilitatea de a
alege opțiunile de filtrare în vederea obț inerii datel or dorite pe raportul ce
urmează a fi generat.
Odată generat raportul , utilizatorul are , la fel ca î n prezentarea
deja făcută pentru “Rapo arte_instructori”, mai multe opț iuni.
Modulul “Rapoarte_personal ” cuprinde urmă toarele:
 cmbF unctii permite selecția informației legate de funcția
angajatului pe baza datelor înregistrate în tabelul “Funcț ii”
din baza de date
 cmbDepartamente permite selecția informaț iei legate de
departamentul angajatul ui pe baza datelor înregistrate î n
tabelul “D epartamente”
 cmbJudete permite selecția informației legate de județ ul
din care este angajatul pe baza datelor înregistrate î n
tabelul “Judete” din baza de date
 cmdAfiseaza generează afiș area raportului
CrystalReportViewer1 pe baza selecț iei dat elor din
criteriul de filtrare și a informaț iilor din “Query1”
 DataGridView1 permite afișarea tuturor informațiilor din
câmpurile selectate î n cadrul com enzii
“cmdAfiseaza_Click” câmpuri declarate î n tabelele
aferente ale bazei de date (tabelele “Functii”,
“Departamen te”, “Judete” si “Personal”)
 CrystalReportViewer1 permite gestiunea și generarea
raportului i n formatul gestionat prin (CrystalReport1.rpt –
câmpurile și dimensiunea casuțelor) pe baza selecției
datelor efectuată î n cadrul comenzii “cmdAfiseaza _Click”
din Query1 (creat din câmpurile relevante î n raportare a
tabelelor “Func tii”, “Departamente”, “Judete” ș i
“Instructori” )

47
Ieșirea din fereastra “Rapoarte_personal” s e face prin î nchiderea
ferestrei ( click pe close button) aplicaț ia rămânând activă pe
“Meniu_pr incipal”.
La accesarea butonului “Rapoarte cursuri” din meniul principal,
aplicaț ia va deschide fereastra de mai jos:

Ȋn fereastra “Rapoarte_cursuri” u tilizatorul are posibilitatea să
aleagă opțiunile de filtrare în vederea obț inerii datel or dorite pe ra portul
ce urmează a fi generat.
Odată genera t raportul utilizatorul are următoarele opțiuni
prezentate deja în cadrul descrierii făcută pentru “Rapoarte_instructori”
Modulul “ Rapoarte_cursuril” cuprinde urmă toarele:
 cmbfunctieparticipant permite selecția i nformației legate
de funcția cursantului pe baza datelor înregistrate î n
tabelul “Functii” din baza de date
 cmbnumecurs permite selecția informației legată de
numele cu rsului pe baza datelor înregistrate î n tabelul
“Tipuri_cursuri”
 cmbmodprezentarecurs permite selecția informaț iei
legate de tipul cursului, modalitatea de instrui re pe baza
datelor înregistrate î n tabelul “mod_prezentare_curs” din
baza de date
 cmbsalacurs permite selecția informației legate de
numele sălii pe baza datelor înregistrate în tabe lul
“Săli_curs” din baza de date
 cmdAfiseaza generează afiș area raportului
CrystalReportViewer1 pe baza selecț iei dat elor din
criteriul de filtrare și a informaț iilor din “Query2”
 DataGridView1 permite afișarea tuturor informațiilor din
câmpurile selectate în cadrul comenzii
“cmdAfiseaza_Click” câmpuri declarate î n tabelele
aferente ale bazei de date (tabelele “Functii”,
“Tipuri_cursuri”, “Mod_prezentare_curs”, “Sali_curs” si
“Cursuri”)
 CrystalReportViewer1 permite gestiunea și generarea
raportului î n forma tul gestion at prin (CrystalReport2.rpt –

48
câmpurile și dimensiunea căsuț elor) pe baza selecției
datelor efectuată î n cadrul comenzii “cmdAfiseaza _Click”
din Query2 (creat din câmpurile relevante î n raportare a
tabelelor “Functii”, “Tipuri_cursuri”,
“Mod_pre zentare_curs”, “Sali_curs” si “Cursuri” )
Ieșirea din fereastra “Rapoart e_cursuri” se face prin î nchiderea
ferestrei ( click pe close button) aplicația rămânând activă pe
“Meniu_principal”.

3.3. Arhitectura bazei de date a aplicaț iei

3.3.1. Descriere Tabele

Baza de date a aplicației a fost realizată utilizând Microsoft
Access 20 10.
Aplicația rule ază cu un fișier de bază localizat î n
Poze(P :)\LicentaRadu2015 \Gestiune_ training \Gestiune_Training \bin\De
bug\db1.mdb
Atât tabelele, cât și Queries au fost create utilizând o pțiunea
“Create table in Design view” respectiv “Create querie in Design view”.
Baza de date db1.mdp cuprinde 10 tabele:
 Tabelul Cursuri – stochează informaț ii cu privire la datele
relevante pentru efectuarea cursurilor
 Tabelul Departamente – stochează inf ormaț ii cu privire la
numele departam entelor existente
 Tabelul Functii –stochează informații cu privire la numele
funcț iilor existente
 Tabelul Instructori –stochează informaț ii cu privire la
datele personale ale instructorilor
 Tabelul Instrumente –stocheaz ă informaț ii cu privire la
denumirea instrumentelor folosite.
 Tabelul Judete – stochează informații cu privire la numele
județ elol
 Tabelu l Mod_prezentare_curs –stochează informaț ii cu
privire la modalitatea de predare a cursurilor
 Tabelul personal – stoch ează informaț ii cu privire la
datele personale ale angajaț ilor
 Tabelul Sali_curs –stochează informații cu privire la
denumirea să lilor de curs
 Tabelul Tipuri_cursuri –stochează informaț ii cu privire la
numele cursurilor.

Baza de date db1.mdp cuprinde 2 q ueries:
 Querie 1 – care stochează informaț ii relevante din tabelele
Instructori, Departamente, Funcții și Județ e

49
 Querie 2 – care stocheză informații relevante din tabelele:
Funcț ii, Tipuri_cursuri, Sali_curs, Mod_prezentare_curs ș i
Cursuri
Ȋn continu area se vor prezenta detaliat câmpurile fiecărui tabel î n
parte:

 Tabelul Cursuri

 T
a
b
Tabelul Departamente

Field Name Data Type Field Size Required Indexed
id_depart Number Long Integer No Yes (No Duplicates)
departamentul Text 50 No Yes (Duplicates OK)

 Tabelul Funcț ii

 Tabelul Instructori

Field Name Data Type Field Size Required Indexed
ID Number Long Integer No Yes (No duplicates)
Nume Text 50 No Yes (Duplicates OK)
Prenume Text 50 No No
Functia Number Long Integer No No
Departament Number Long Integer No No
Strada Text 50 No No
Numar ul Text 50 No Yes (Duplicates OK)
Blocul Text 50 No No
Etaj Number Long Integer No No
Apartament Number Long Integer No No
Localitate Text 50 No No Field Name Data Type Field Size Required Indexed
ID_curs Number Long Integer No Yes (No Duplicates)
Nume_participant Text 50 No Yes (Duplicates OK)
Prenume_participant Text 50 No Yes (Duplicates OK)
Functie_participant Number Long Integer No Yes (Duplicates OK)
Nume_instructor Text 50 No No
Prenume_instructor Text 50 No No
Sala_curs Number Long Integer No No
Instrumente_curs Number Long Integer No No
Nume_curs Number Long Integer No No
Mod_instruire Number Long Integer No Yes (Duplicates OK)
Data_incepere Date/Time – No No
Data_sfarsit Date/Time – No No
Field Name Data Type Field Size Required Indexed
id Number Long Integer No Yes (No
Duplicates)
functia Text 50 No No

50
Judet Text 50 No No
Telefon Text 50 No No
Email Text 50 No No
data_angajarii Date/Time – No No
poza Text 255 No No
 Tabel Instrumente

Field Name Data Type Field Size Required Indexed
id Number Long Integer No Yes (Duplicates OK)
instrument Text 50 No No
id_unic Number Long Integer No Yes (No duplicates)

 Tabel Județ e

Field Name Data Ty pe Field Size Required Indexed
id Text 50 No Yes (No Duplicates)
Judet Text 50 No Yes (Duplicates
OK)
 Tabel Mod_prezentare_curs

Field Name Data
Type Field
Size Required Indexed
id_mod_prezentare_curs Number Long
Integer No Yes (No
Duplicates)
mod_pre zentare_curs Text 50 No Yes
(Duplicates
OK)
 Tabel Personal

Field Name Data Type Field Size Required Indexed
ID Number Long Integer No Yes (No duplicates)
Nume Text 50 No Yes (Duplicates OK)
Prenume Text 50 No No
Functie Number Long Integer No No
Departament Number Long Integer No No
Strada Text 50 No No
Numarul Text 50 No Yes (Duplicates OK)
Blocul Text 50 No No
Etaj Number Long Integer No No
Apartament Number Long Integer No No
Localitate Text 50 No No
Judet Text 50 No No

51
Telefon Text 50 No No
Email Text 50 No No
data_angajarii Date/Time – No No
poza Text 255 No No

 Tabel Sali_curs

Field Name Data Type Field Size Required Indexed
id Number Long Integer No Yes (No Duplicates)
sala Text 50 No Yes (Duplicates OK)
locuri Number Long Integer No No

 Tabel Tipuri_cursuri

Field Name Data Type Field Size Required Indexed
Id Number Long Integer No Yes (No Duplicates)
Sala Text 50 No No

Ȋn continu are se va prezenta arhitectura celor 2 queries din baza
de date.

 Querie 1

52

 Quer ie 2

3.3.2. Tabele și relații î ntre tabele

Baza de date conț ine 10 tabele : Cursuri, Departamente, Funcț ii,
Instructori, Instrumente, Județ e, Mod_prezen tare_curs, Personal,
Sali_curs ș i Tipuri_cursuri ș i 2 Queries : Querie1 utilizat î n emiter ea de
rapoart e aferente informaț iilor din meniurile “Meniu instructori” și
“Meniu personal” și Querie2 utilizat î n emiter ea de rapoarte aferente
informaț iilor din “Meniu cursuri”.

Ȋn figura de mai jos lista tabelelor create î n baza de date:

53
Pentru tabelele create în baza de date sunt definite diverse
relaționări conform schemei de mai jos:

Conectarea la baza de date în Visual Basic se realizeaz ă utilizâ nd
controale de tipul OLEDB.
Ȋn stabilirea relaț ionării î ntre tabele s -au utilizat op țiunile
“Enforce Ref erential Integrity”, “Cascade Update Related Fields” și
“Cascade Delete Related Records” iar ca “Join Properties” s -a utilizat
opțiunea 1 “Only include rows where the joined fields from both tables
are equal”.

3.4. Utilizarea aplica ției

Ȋn cele ce u rmează voi prezenta următoarele:
 modul de utilizare a l aplica ției
 navigare a printre meniurile aplica ției
 folosirea op țiunilor din fiecare meniu
 generarea rapoartelor aferente.

3.4.1. Modul de utilizare al programului

54
La pornirea aplica ției va fi afi șată o im agine care descrie sigla
companiei aeriene pentru care este folosit ă aplica ția.

La efectuarea unui click pe imaginea de mai sus apare fereastra de
login -are în aplicație.
Deoarece aplica ția a fost conceput ă a fi folosita de c ătre un singur
utilizator, re sponsabilul de gestiunea preg ătirii personalului în cadrul unei
companii aeriene, exist ă un singu r nivel de securitate modelat prin
fereastra de login din figura de mai jos:

Ȋn cazul î n care utilizatorul dore ște să mearg ă mai departe în
aplica ție trebu ie introdus ă parola corect ă, iar apoi ap ăsat butonul “Ok” în
caz contrar se apas ă butonul “Cancel” și se p ărăsește aplica ția. Ȋn cazul î n
care parola nu este corect ă apare mesaj de eroare.
Ȋn cazul î n care parola este corect ă și s-a ap ăsat butonul Ok
aplic ația ne introduce în fereastra meniului principal în care sunt prezente
toate meniurile aplica ției și rapoartele.

55

3.4.2. Descrierea meniurilor ș i opțiunilor programului

Prin ap ăsarea butonului “Cursuri” aplica ția va deschide
următoarea fereastr ă în care se gestioneaz ă datele referitoare la cursuri:

56

Ȋn cadrul ferestrei de mai sus utilizatorul are posibilita tea să facă
modific ări în cadrul înregistrărilor menț ionate (provenite din baza de date
Access). Modific ările se efectuaz ă prin ac ționarea butoanelor din bara de
meniu, exist ând posibitățile de navigare in cadrul î nregistr ărilor, de
adăugare a unei î nregistr ări noi, de ștergere a unei înregistrări, de salvare
a acțiunii efectuate, de renunțare a acțiunii inițiate și de reî ntoarcere la
meniul prin cipal. Trebuie menț ionat f aptul că opț iunile din bara de meniu
descrise anterior se aplică pentru toate meniurile prezente în aplicație.
Pentru a identifica acțiunea fiecărui buton este suficientă poziț ionarea
mouse-ului pe
icoana respectiv ă și va apă rea u n text care descrie acț iunea butonului
respectiv. De asemenea , în fereastra de mai sus utilizatorul are
posibilitate de a vizualiza datele aferente tabelei “Cursuri” filtrate dup ă
“Nume_participant”.
La activarea butonului de adă ugare se va deschide fereastra de
mai jos care va fi completată de utilizator. Ȋ n cadrul ferestrei dechise sunt
câmpuri care trebuie c ompletate prin scrierea informației și câ mpuri care
se completeaz ă prin selectarea informației din listă .
Când toate datele ce doresc a fi adă ugate p entru noua î nregistrare
sunt complete , acestea vor fi salvate prin activarea butonului de salvare.

La activarea butonului de modificare a unei înregistrări existente,
după alegerea prealabilă a înregistrării ce urmează a fi modificată prin
navigarea prin tre înregistrări cu săgeț ile din meniul pr incipal sau prin
identificarea înregistrării în urma căutării acesteia prin filtrul de căutare
după nume participant se va deschide fereastra de mai jos.

57

În fereastra de mai jos toate campurile cu referire la inr egistra rea
selectata pot fi modificate , pana la salvarea documentului optiunea de
cautare dupa nume participant fiind inactiva.
Prin activarea butonului de ștergere a unei înregistrări existente,
după alegerea prealabilă a înregistrării ce urmează a fi mod ificată prin
navigarea printre înregistrări cu săgeț ile din meniul pr incipal sau prin
identificarea înregistrării în urma căutării acesteia prin filtrul de căutare
după nume participant se va deschide o fereastr ă de atenționare a acț iunii
ce urmeaz ă a fi e fectuat ă.
Ȋn cazul în care se apasă butonul “Ok” înregistrarea o să fie
ștearsă , dar dac ă se apas ă “Cancel“ se renun ță la acțiunea de ș tergere.
Ȋn fereastra de mai sus toate câmpurile cu referire la î nregistra rea
selectată pot fi modificate , până la salvar ea documentului opțiunea de
căutare după nume participant fiind inactivă .
Ȋn cadrul meniului Meniu_Cursuri utili zatorul mai are
posibilitatea să renunțe la acțiunea inițiată (e.g. Adă ugare curs,
Modificare curs, etc…) prin activarea butonului Renunț are, ap licația va
reveni la fereastra inițială .
Ȋn cazul î n care utilizatorul dorește pără sirea meniului cur ent și
întoarce rea la meniul principal se apasă butonul Intoarcere la meniu
principal.
Deoarece restul meniurilor sun t similare ca mod de utilizare î n
continuare se vor prezenta doar pr intscreen -uri cu fiecare meniu în parte
în vederea vizualizării informațiilor apărută în acestea (informații din
baza de date Access) fără a mai detalia funcționarea opțiunilor din fiecare
meniu î n parte.
Excepț ia pentru afirm ația de mai sus se aplică pentru meniurile
Meniu_Instructori ș i Meniu _Personal pentru care ca o funcționalitate în
plus față de ce a fost prezentat până acum este posibilitatea de încă rcare a
unei po ze pentru instructori/personal în cadrul opț iunilor
deAdă ugare/Modificare a inregistră rilor.
Meniul Instructori este descris mai jos (Meniul Personal este
similar)
Ȋn cadrul ferestrei d escrise mai sus la activarea opțiunii de
modificare/adă ugare , utilizatoru l are posibilitatea să schimbe poza printr –

58
un click în fereastra unde este afișată poza curentă, aplicația deschizând o
fereastră pentru specificarea locaț iei pozei respective (tipurile de fiș iere
poze acceptate: *.jpg, *.bmp,*.gif ).

Similar cu Meniul Instructori este meniul Meniu_Personal
Din cadr ul meniu lui principal al aplicaț iei utilizatorul are
posibilitatea de a genera 3 tipuri de r aportă ri pentru instructori, personal
și cursuri.
Ȋn continuare se va prezenta în detaliu opț iunea Rapoarte
Instructori din meniul principal celela lte dou ă opț iuni generato are de
rapoarte: Rapoarte personal si Rapoarte cursuri fiind similar e din punct
de vedere al utiliză rii lor.
La intrarea î n meniul Rapoarte Instructori fereastra de mai jos va
fi deschis ă.

Utilizatorul are 3 posibilități de filtrare (Funcție, Departament și
Județ) în vederea obținerii rapoartelor în ceea ce privește instructorii
înregistrați în baza de date. Selecția valorilor folosite î n filtrare se
selecteaz ă, nu se introduce.
După stabilirea crit eriilor de filtrare se activează butonul
“afișează” . Pent ru fiecare î nregistrare găsită, conform criteriului de
selecț ie introdus , sunt raportate cîmpurile: nume, prenume, locaț ie, e –

59
mail, funcție ș i depart ament. Dacă în cadrul stabilirii valorilor de filtrare
nu se selectează nici o î nregistrare din tabelul de date a filtrului
respective, se vor afișa toate înregistră rile din tabelul instructori.
Ȋn ceea ce privește raportul generat , utilizatorul are următoarele
posibilităț i:
 exportarea raportului î ntr-un format din c ele prezentate î n
imaginea de mai jos
 printar ea raportului
 navigarea în cadrul paginilor raportului
 căutarea unui anume text î n cadrul raportului
 opțiuni de zoom -are

Ȋntoarcerea la meniul principal din fereastra de rapoarte se face
prin î nchiderea ferestrei respective.
Ultima opțiune disponibilă din meniul principal este Ieșire. Ȋn
cazul activă rii acesteia , utilizatorul părăsește aplicaț ia.

3.5. Detalii le de proiectare, implementare ș i operare

3.5.1. Detaliile de proiectare al e aplicaț iei

Ideea de a crea această aplicaț ie a pornit din n ecesitatea de a avea
o structură clară și eficientă a activității de trainuire a angajațiilor î ntr-o
companie de transport aerian .

Ȋn mod natural, î n cadrul acestei companii , toate informaț iile din
cadrul training -ului sunt stocate în Excel, ceea ce reprezintă o metodă
învechi tă și nu asigură o bună gestionare a informațiilor stocate.

3.5.2. Pașii de dezvoltare a i aplicaț iei

Mai jos sunt prezentaț i pașii care au fost urmați î n dezvoltarea
aplicaț iei:
 Crearea bazei de date î n Access (definirea tut uror
tabelelor, stabilirea relațion irilor între ele și introducerea
de înregistrări reale î n cadrul acestora)
 Crearea Form 1 (în Visual Basic 2010) de Login în cadrul
aplicaț iei
 Crearea Form 2 de definire a meniului princi pal al
aplicaț iei care conț ine 10 meniuri (Cursuri, Tipuri cursuri,
Instructor i, Personal, Departamente, Funcții, Săli curs,
Instrumente, Județ e, Mod prezentare curs), 3 categorii de
rapoarte (Rapoarte instructori, Rapoarte personal și

60
Rapoarte Cursuri) ș i opțiunea de părăsire a aplicației
(Ieșire)
 Crearea unui F orm pentru fiecare din cele 10 meniuri
descrise mai sus
 Crearea unui F orm pentru fiecare tip de raportare

3.5.3. Gestiunea contro alelor utilizate în aplicaț ie

Principalele proprietăț i/evenimente/ metode din Visual Basic
utilizate au fost:

 Proprietăț i principale utiliza te:
Name, Caption, Visible, Enable, Appearance, BackColor,
ForeColor, Picture, Width, Height, Left, Top
ScaleMode –permite selectarea unității de măsură folosită pentru
stabilirea coordonatelor
ControlBox –stabilește dacă la run time bara de titlu va apă rea sau
nu
MaxButton, MinButton –stabilește dacă ferestra va avea sau nu
butoane de maximizare, minimizare
WindowState –se refer ă la starea vizual ă a formei în execuție
(normal, Maximize, Minimize)
MousePointer –indic ă tipul cursorului
MDIChild –indic ă dacă forma este o fereastr ă MDI copil in
interiorul unei ferestre MDI pă rinte
KeyPreview –se refer ă la modul de gestiune a evenimentelor
referitoare la tastatura KeyDown, KeyPress, KeyUp; dac ă această
proprietate este configurat ă cu valoarea true, atunci eveni mentele
referitoare la tastatura sunt gestionate de form ă și nu de controalele
așezate pe form ă, chiar dac ă în momentul respectiv î n focar se afl ă un
control .

 Evenimentele principale utilizate:

Initialize – când o aplica ție creeaz ă o instan ță a unei form e
Load –declan șat în momentul în care forma este încărcată în
memorie, este declan șat dup ă Initialize
Resize –este declan șat în momentul în care forma este afiș ată
prima dat ă, precum și atunci c ând se modific ă dimensiunea ferestrei
Activate –declan șat în m omentul î n care fereastra ata șată formei
devine fereastra activ ă a aplica ției
GotFocus –declan șat în momentul în care forma ajunge în focar
LostFocus – declan șat în momentul în care o form ă urmeaz ă să
piard ă focarul
Deactivate – declan șat în momentul în care fereastra aferent ă
formei nu mai este fereastr ă activ ă

61
Unload – declan șat în momentul în care forma urmeaz ă să fie
indep ărtată de pe ecran
Terminate – declan șat în momentul în care toate referin țele la o
instan ță a unei forme sunt îndep ărtate din memor ie
Click – declan șat în momentul în care utilizatorul efectueaz ă un
click pe o zon ă neacoperit ă a formei
DblClick – declan șat în momentul în care utilizatorul efectueaz ă
dublu clic k
MouseDown, MouseMov e, MouseUp –declanș at la ap ăsarea
butonului de mouse, g lisare și la eliberarea butonului
DragDrop si DragOver –se refer ă la operaț iile de tragere cu
mouse -ul
KeyDown, KeyPress si KeyUp –se refer ă la acționarea unei taste
în momentul î n care un anumit control sau o form ă este în focar.

 Metode principale :

Move –apelat ă atunci c ând se dore ște modificarea loca ției unei
forme fa ță de ecran
Refresh –are ca efect redesenarea complet ă a unei forme
SetFocus –mută focarul într-o form ă specificat ă
Zorder –când aplica ția folose ște mai multe forme care se
suprapun total sau par țial și se doreș te plasarea unei forme specificate în
fața sau î n spatele celorlalte forme
Show și Hide –când se lucreaz ă cu mai multe forme simultan
ComboBox (lista combinat ă)
Afișează o cutie de text care are ata șată o list ă și care poate
conține mai multe elemente .
Afișează conținutul unui c âmp specificat din articolul actual al
bazei de date, sub forma unei liste combinate.
Utilizatorul poate s ă selecteze un element al listei; elementul
selectat va fi introdus în cutia de text a controlului .
Ȋn execuție, pentru adăugarea sau ș tergerea elementelor unu i
control ComboBox se utilizează metodele AddItem, respectiv
RemoveItem
Pentru a avea acces la elementele co ntrolului se folosesc
proprietăț ile Li stIdex, ListCount ș i List
Particularitatile unui con trol ComboBox sunt urmă toarele:
 proprietatea Style –permite desemnarea stilului cutie i
combinate; trebuie configurată î n faza de proiectare:
vbComboDropDown –lista combinată derulantă –controlul
conține o cutie de text și o listă derulantă, utilizatorul po ate selecta un
element al listei sau poate introduce un text după selectarea elementului
lista se î nchide automat –stil implicit
vbComboSimple –listă combinată simplă –controlul conține o
listă nederulant ă, afișată permanent, ș i o cutie de text; controlul se

62
dimensionează implicit astfel încâ nici un element al listei derulante nu
este vizibil
vbCo mboDropDownList –lista derulantă –controlul conține o
casetă de text , dar utilizatorul nu poate introduce info rmații în această
cutie; permite selectarea unui elem ent al list ei elementul selectat va fi
afișat în cuti a de text
 proprietatea DataField –specifică câ mpul din baza de date
vizualizat
 evenimentul Change –se declanșează în momentul î n care
utilizatorul modifică textul din cutia de text aferentă
controlului sau dacă –prin program -se modifică valoarea
proprietăț ii Text

DataGrid
Este un control asemănător unei foi de calcul care afișează o serie
de rânduri și coloane care reprezintă înregistrări și câ mpuri ale unui
obiect Recordset. Cu Data Grid se pot crea ap licații car e permit
utilizatorului final să scrie și să citească î n / din cele mai multe baze de
date. Contr olul poate fi configurat rapid în momentul proiectării din
puține linii de cod. Dacă la mom entul proiectării atribuim o valoare
proprietăț ii DataSou rce a controlului DataGrid, controlul este completat
automat, iar antetele de coloană sunt extrase automat din setul de
înregistră ri al sursei de date. Apoi se pot edita coloanele grilei: ș tergere,
rearanjare, adă ugarea de antete sau ajustarea lăț imii colo anelor. Nu este
un control standard.

3.5.4. Testarea programului

Parte a de testare a programului s -a făcut permanent pe toată
durata editării lui, astfel încât după fiecare creare a unui modul de
progra m s-a testat funcționarea programului în punctul respecti v prin
acțiunea de rulare.
Pentru verificarea funcăionarii corespunzătoare a cerințelor
programului s -au urmat paș ii:
 s-au făcut modificări (ștergere, adăugare, modificare
informație) î n baza de dat e Access în vederea verificării
updatării corespunzătoare a informației în aplicaț ia Visual
Basic.
 s-au făcut modificări (ștergere, adă ugare, modificare
informație) în meniurile din aplicația din Visual Basic în
vederea verificării updatării corespunză toare a informației
în Access.
 s-au corectat erorile apă rute l a compilare
 s-a testat ca rezultatele obținute să fie în conformitate cu
cerinț ele programului

63
 s-a verificat / corectat unde a fost cazul că informațiile
apărute în meniurile aplicației (î n DataGri d View) să fie î n
clar, nu reprezentat e prin ID -uri (e.g. p entru funcția de
agent check -in informația care este vizualizată trebuie să
fie “Agent check -in” nu “1” )
 s-a corectat ca î n cadrul meniului de generare de rapoarte
lungimea câmpurilor aferente info rmațiilor afișate să fie
corespunzătoare și toată informați a să fie vizibilă pe
raport.
Folosi rea sintaxei TRY CATCH se face în vederea tratării
excepț iilor.
Excepțiile sunt condiț ii ca re apar la rulare și necesită oprirea
programului.
Dacă programatorul nu tratează o anumită excepț ie, ea va fi
tratată automat de către mașina virtuală prin oprirea programului.
Pentru a trata execepțiile care apar î ntr-un bl oc de cod, acesta va
fi inclus într -o secvență TRY…CATCH.
La apariț ia unei erori blocurile CATCH vor f i baleiate în ordinea
care apar î n cod. Eroarea va fi trata tă de cel dint âi bloc CATCH care
conține tipul erorii.
Ȋn cazul aplicaț iei noastre s intaxa TRY…CATCH a fost folosită
în cadrul modulului de raportare î n “Private Sub
cmdAfiseaza_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs ) Handles cmdAfiseaza.Click
Descris ă ca sintax ă mai jos:
Try
adaptor.Fill(ds.Tables("instructori"))
cr.SetDataSource(ds.Tables("instructori"))
cr.SummaryInfo.ReportTitle = titlu
CrystalReportViewer1.ReportSource = cr
Catch ex As Exception
MessageBox.Show(ex.ToString ())
End Try
DataGridView1.DataSource = ds.Tables("instructori")
End Sub

64

Concluzii ș i perspective

Aplicaț ia de structurare a cursurilor de pregãtire a personalului în
cadrul unei companii aeriane de transport este o aplicație general ă
urmând a fi ajustată pe specificul fiecă rei companii.
Proiectul a realizat facilitarea activităț ii de structurare a
cursurilor de pregãtire a personalului în cadrul companiilor aeriene,
utilizatorul având multiple opț iuni de gestiune.
Programul a fost t estat cu success, toate obiective le propuse fiind
îndeplinite.
Securizarea aplicaț iei s-a realizat prin int roducerea de User Name
și Password , fiind dedicat ă utiliz ării de către un singur utilizator. Din
acest punct de vedere nu s-au creat nivele de secur itate.
Utlilizatorul are posibilitatea, în cadrul fiec ărui meniu al
aplica ției, de a naviga prin tre înregistr ări, precum și de a le ad ăuga, șterge
sau modifica . De asemenea , poate renunța la ac țiunea început ă, se poate
întoarce la meniul principal sau poat e părăsi aplica ția.
Programul realizeaz ă structurarea ș i gestionarea datelor
personalului și ale instructurilor din cadrul companiei . Aceste date se
refer ă la: nume, prenume, adresa, e -mail, telefon, func ție, department,
dată angajare. Programul afișează poza fiec ărui angajat și instructor.
Utilizatorul are posibilitatea de a ges tiona cursurile efectuate prin
înregistră ri referitoare la numele cursului, modul de prezentare al
cursului, numele ș i prenumele cursantului, numele ș i prenumele
instructorului, fun cția cursantului, sala de cu rs, instrumente necesare
efectuării cursului.
Aplicaț ia permite gestionarea informaț iilor referitoare la
instrumentele necesare efectuă rii cursurilor, la sălile de curs, funcț iile
personalului/instructor ilor, departamentele exi stente în cadrul companiei
și modali tățile de prezentare ale cursurilor.

65
Ȋn cadrul proiectului, utilizatorul are posibilitatea de a c ăuta în
cadrul meniurilor utilizând diverse filtre (e.g. c ăutare nume, căutare sal ă,
căutare departament, căutare mod pred are, căutare instrument, c ăutare
județ, căutare func ție, căutare curs )
O parte semnificativ ă a proiectului o reprezint ă partea de
raportare. Proiectul permite emiterea a trei tipuri de rapoarte, rapoarte
despre personal, despr e instructori și despre cursur i. Rapoartele emise
pot fi exportate sau tip ărite. Exist ă, de asemenea, și o func ție activ ă de
căutare.
Rapoartele despre personal afi șează informa ții filtrate dupa
funcție, depart ament ș i jude ț, informa ții afis șate oferind detalii referitoar e
la numele, prenumele, adresa de e -mail, func ția, departamentul și jude țul
personalului aferent.
Rapoartele despre instructori afi șează informa ții filtrate dup ă
funcție, depart ament și jude ț, oferind detalii referitoare la numele,
prenumele, adresa de e -mail, func ția, departamentul și jude țul
instructorilor aferen ți.
Rapoartele despre cursuri afiș ează informa ții filtrate dup ă funcție
participant, nume curs, mod prezentare curs și sală curs oferind detalii
referitoare la numele, prenumele și func ția partici pantului, numele și
prenumele instructorului, tipul, modul de prezentare, dat a de începere și
data de sf ârșit a cursului și a sălii de desf ășurare a cursului.
Aplica ția a fost conceput ă cu baza de date Acces, în ciuda a dou ă
dezavantaje majore fa ță de SQL :
 licen ța Access cost ă (MySQL – free)
 este o baz ă de da te tip client (MySQL – server)
Pe de alt ă parte, Microsoft Access este mai accesibil, mai u șor de
utilizat de personalul unei companii aeriene, iar referitor la costul
licen ței, modulul Acce ss este inclus în pachetul Microsoft Office care
este cump ărat și folosit de c ătre companiile aeriene.
Dacă se consider ă necesa r, se poate trece aplica ția de pe Access
pe MySQL prin modificarea apel ării în cadrul rutinei programului și prin
crearea tabele lor în MySQL cu e xact acelea și denumiri , câmpuri, coloane
respect ând de asemenea rela țiile de leg ătură între tabele.
Odat ă implementat ă soluția de gestiune a preg ătirii personalului,
aceasta poate fi extins ă și la alte activităț i de gestiune desf ășurate în
cadrul unei companii aeriene: gestiunea magaziei tehnice pentru
aeronave, gestiunea echipamentelor de deservire la sol, etc, și extinsă și

66
către companiile de handling ce desfășoară servicii pentru companiile
aeriene .
Ȋntreț inerea acestui sistem de struct urare a cursurilor de pregãtire
a personalului se realizeaz ă ușor și în timp redus generâ nd costuri reduse
din partea companiei.
Ȋn concluzie aplicaț ia prezentat ă în aceast ă lucrare reprezint ă,
datorit ă utiliz ării facile și eficiente cel pu țin pentru î ncep ut o bun ă
metod ă de structurare a cursurilor de pregãtire a personalului în cadrul
unei companii de transport aerian.

Bibliografie

Literatu ră de specialitate

[1] I. Doros, 2010, Baze de date , Ed. Cibernetica, Bucuresti
[2] Titus Slavici, Antoniu Rev iczky -Levay, Dinu Gubencu, Alin Mnerie, 2006, Comanda și
controlul sistemelor tehnologice cu calculatorul , Metode CAD / CAM, Editura Fundației „IOAN
SLAVICI”, Timișoara, ISBN 973 -8093 -35-X;
[3] Mircea Vladutiu, Computer Arithmetic , Editura Springer, 2012, ISBN -10: 364218314X
[4] Horia Ciocârlie, Tehnici de programare si structuri de date, Editura : Eurostampa, 2012,
ISBN : 978 -606-569-484-2
[5] T.Slavici, Ș.Popa, K. Herman – "Limbaje de programare. Limbajul C ", Ed. Eurostampa,
Timișoara 2007, ISBN: 978 -973-687-608-0
[6] Cornelia Maxim, Analiza datelor si gestionarea informatica a resurselor umane, Editura:
Tritonic, 2013, ISBN 9786068536996
[7] Horia Ciocârlie, Tehnici de programare si structuri de date, Editura : Eurostampa, 2010,
ISBN : 978 -606-569-193-3
[8] L.Herman, T.Slavici – „Tehnici de programare clasice și orientate pe obiecte”, 2013, Ed.
Mirton, ISBN : 978 -973-52-1319 -0, Ed. FIS ISBN:978 -606-8480 -14-5
[9] T. Slavici, Ș. Popa, K. Hermann – "Limbaje de programare – Tehnici de laborator și proiect",
Ed. Fundației „Ioan Slavici” Timișoara 2009 , ISBN : 978 -973-88962 -3-9
[10] Gabriel Preda, Aplicatii cu baze de date, Editura: Matrixrom, 2014, ISBN: 9786062501051
[11] R. Trandafir, M. Nistorescu, I. Mierlus -Mazilu, 2007, Bazele Informaticii si limbaje d e
programare, Baze de date relationate , Universitatea Tehnica de Constructii, Bucuresti.

67
[12] Aurel Petrescu, Ana Petrescu, Tehnologia informatiei, Editura Aius, 2013, ISBN:
9786065623392
[13] Vikram Vaswani, MySQL. UTILIZAREA SI ADMINISTRAREA BAZELOR DE DATE
MySQL , Editura Rosetti Educational, 2010, ISBN: 9789737881625.
[14] Jeffrey Richter, Microsoft.NET Framework, Editura: Teora, 2008
[15] Th. Beg, A. Strachan, Connolly, 2001, Baze de date , Ed. Teora, Bucuresti
[16] Negrescu, Liviu, Limbajul C# pentru i ncepatori – Volumul VI. Mediul de programare Visual
Studio C#, Editura ALBASTRA, 2011
[17] Raluca Constantinescu, Ionut Danaila, Baze de date – Microsoft Access 2010, Editura
Euroaptitudini, 2013, ISBN: 9789731719245
[18] Grupul BDASEIG, 2003, Baze de date – fundamente teoretice si practice , Ed. Infomega
[19] Alexandru Teodorescu, Lectii De Access, Editura ALBASTRA, 2012, ISBN: 973 -650-142-6
[20] G. Mihaela Ungureanu, Structuri de date si algoritmi, Editura Matrixrom, 2012, ISBN:
9789737557940

Pagini WEB

[1] http://www.robotics.ucv.ro/flexform/craiova_cursuri/C2_1/MySQL/L1.pdf
[2] http://www.aut .upt.ro/~rraul/MTP/2013 -2014/Laborator5_MTP.pdf
[3] http://ro.wikipedia.org/wiki/Microsoft_Access
[4] http://dexonline.ro/definitie/informa%C8%9Bie
[5] http://www.zota.ase.ro/simp/Sistem%20informational.pdf
[6] http://ro.wikipedia.org/wiki/Calitate
[7] http://ro.scribd.com/doc/243717678/Unit -1-Organizarea -datelor#scribd
[8] http://www.cs.ubbcluj.ro/~vcioban/Matematica/Anul3/BD/Bd.pdf
[9] https://ro.scribd.com/doc/205780393/Baze -de-Date -CIG
[10] http://ro.wikipedia.org/wiki/Sistem_de_gestiune_a_bazelor_de_date
[11] http://www.math.uaic.ro/~mapetrii/fisiere/VC/Curs1.pdf
[12] http://www.math.uaic.ro/~mapetrii/POO/depozit/Curs7. pdf
[13]http://www.mezza.org/credis/An%20II/Semestrul%20II/Programare%
\20vizuala/ProgramareVizuala_Curs_01.pdf
[14] http://www.rasfoiesc.com/educatie/inf ormatica/Mediul -si-limbajul -de-programa86.php
[15] http://ro.wikipedia.org/wiki/Microsoft_Access
[16] http://www.aut .upt.ro/~rraul/MTP/2008 -2009/Laborator4_MTP.pdf
[17] http://ro.wikipedia.org/wiki/MySQL
[18] http://etutoriale.ro/articles/38/1/Comenzi -MySQ L
[19]https://msdn.microsoft.com/en -us/library/bb822049%28v=vs.110%29.aspx
[20]http://etutoriale.ro/articl es/38/1/Comenzi -MySQL
[21] Medii vizuale de programare, Capitolul 7 – Accesarea bazelor de date .Ado.NET,
04/30/2011, [Online:http://upm.adrianroman.ro/mvp/ch07.pdf]
[23]Microsoft Access 2003 – A Beginners’ Guide, [Online:
http://www.reading.ac.uk/web/FIL ES/www_File_Library/Microsoft_Access_2003_beginners.pd
f]
[24] Programare Windows I – C++, Curs 1, Microsoft Visual Studio,
[Online:http://www.math.uaic.ro/~mapetrii/fisiere/VC/Curs1.pdf]

68

Articole

[1] Comparative analysis of adders’ logic partitioning t esting techniques, D. E. Popescu, Revue
roumaine d’Electrotechnique et Energetique, nr.1 / 2003, Editura academiei
[2]C. Muntean, nr. 4(28)/2003, Metode avansate de acces la date utilizand ADO, in Revista
Informatica Economica , pp. 92 -96.
[3]D.Zmaranda , Gianina Gabor, D.E.Popescu, C.Vancea, Fl. Vancea, Using Fixed Priority
Preemptive Scheduling in Real -Time Systems, International Journal of Computers,
Communications & Control, Supplementary Issue – Proceedings of ICCCC 2010, volume III,
pp.454 -459, (IS I Web of Knowledge)
[4] The Analysis Of Pseudorandom Testing Technique For Adders, D.E.Popescu, M. Pater, The
19th International DAAAM SYMPOSIUM, "Intelligent Manufacturing & Automation: Focus
on Next Generation of Intelligent Systems and Solutions", 22 -25th October 2008 (ISI
Procedings)
[5] DMail: Distributed mailing system based on the collaboration between traditional and Peer –
to-Peer mailing architectures; Proc. 1st International Conference on Information Engineering
(ICIE 2012), Singapore, Lecture No tes in Information Technology (LNIT), vol. 25, June 26 -28,
2012, pp. 128 -134, Mircea Vlăduțiu

69

70

71

Similar Posts