CENTRUL UNIVERSITAR NORD DIN BAIA MARE FACULTATEA DE ȘTIINȚE SPECIALIZAREA INFORMATICĂ ECONOMICĂ LUCRARE DE LICENȚĂ COORDONATOR ȘTIINȚIFIC… [620582]

UNIVERSITATEA TEHNICĂ DIN CLUJ NAPOCA
CENTRUL UNIVERSITAR NORD DIN BAIA MARE
FACULTATEA DE ȘTIINȚE
SPECIALIZAREA INFORMATICĂ ECONOMICĂ

LUCRARE DE LICENȚĂ

COORDONATOR ȘTIINȚIFIC
PROF.UNIV.DR . TOADER CEZAR

ABSOLVENT: [anonimizat]

2017

UNIVERSITATEA TEHNICĂ DIN CLUJ NAPOCA
CENTRUL UNIVERSITAR NORD DIN BAIA MARE
FACULTATEA DE ȘTIINȚE
SPECIALIZAREA INFORMATICĂ ECONOMICĂ

LUCRARE DE LICENȚĂ

APLICAȚIE INFORMATICĂ PENTRU
PREGĂTIREA, PERFECȚIONAREA ȘI
TESTAREA PERSONALULUI ANGAJAT
STUDIU DE CAZ LA BANCA
BRD – GROUPE SOCIÉTÉ GÉNÉRALE

COORDONATOR ȘTIINȚIFIC
PROF.UNIV.DR . TOADER CEZAR

ABSOLVENT: [anonimizat]

2017

Cuprins

INTRODUCERE ………………………….. ………………………….. ………………………….. …………….. 1
CAPITOLUL I. STUDIU DE CAZ PRIVIND PREGĂ TIREA, PERFECȚIONAREA
ȘI TESTAREA ANGAJAȚIL OR ………………………….. ………………………….. …………………. 4
1.1 BRD – GROUPE SOCIÉTÉ GÉNÉRALE – SCURT ISTORIC ………………………….. …………….. 4
1.2 STRUCTURA ORGANIZATOR ICĂ A BRD – GROUPE SOCIÉTÉ GÉNÉRALE ………………. 7
1.3 ANALIZA RESURSELOR UM ANE ÎN CADRUL BRD – GROUPE SOCIÉTÉ GÉNÉRALE ….. 9
1.3.1 Analiza resurselor umane pe nivelul de studii ………………………….. ……………… 13
1.3.2 Analiza resurselor umane pe grupe de vârstă ………………………….. ……………….. 14
1.3.3 Analiza resurselor umane pe sexe ………………………….. ………………………….. ….. 15
1.4 PREGĂTIREA ȘI PERFECȚ IONAREA ANGAJAȚILOR ÎN CADRUL BRD – GROUPE
SOCIÉTÉ GÉNÉRALE ………………………….. ………………………….. ………………………….. ………. 16
1.4.1 Etapele procesului de formare profesională ………………………….. …………………. 17
CAPITOLUL II. NECESI TATEA ȘI OBIECTIVELE APLICAȚIEI
INFORMATICE ………………………….. ………………………….. ………………………….. ……………. 22
CAPITOLUL III. TEHN ICI FOLOSITE ÎN VEDE REA REALIZĂRII
APLICAȚIEI INFORMATI CE ………………………….. ………………………….. ………………….. 23
3.1 SQL SERVER MANAGEMENT STUDIO ………………………….. ………………………….. …. 23
3.1.1 Tipuri de date și elemente ale limbajului SQL ………………………….. ……………… 25
3.1.2 Manipularea datelor prin intermediul limbajului SQL ………………………….. …… 25
3.1.3 Reguli ale limbajului SQL ………………………….. ………………………….. …………….. 26
3.2 PLATFORMA .NET FRAMEWORK ………………………….. ………………………….. .. 27
3.3. VISUAL STUDIO ………………………….. ………………………….. ………………………….. ….. 29
3.3.1 Caracteristicile limbajului C# ………………………….. ………………………….. ………… 30
3.3.2 Părțile componente ale unei aplicații C# ………………………….. ……………………… 31
CAPITOLUL IV. PROIEC TAREA SI REALIZAREA BAZEI DE DATE ……………. 33
CAPITOLUL V. REALIZ AREA FERESTRELOR APL ICAȚIEI ȘI
PREZENTAREA MODULUI DE LUCRU ………………………….. ………………………….. …. 41
CAPITOLUL VI. MODUL DE LUCRU AL APLICAȚI EI INFORMATICE ………. 49
CAPITOLUL VII. CONC LUZII ȘI PROPUNERI ………………………….. ………………….. 58
BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. …………… 60
ANEXE ………………………….. ………………………….. ………………………….. …………………………. 61

1
Introducere

Inițierea și desfășurarea cu succes a activității unei firme depind într -o măsură extrem
de mare de gradul în care este motivat, coordonat și pregătit factorul uman. Astfel, resursele
umane constituie ansamblul resurselor de muncă din cadrul unei companii, pe care
managerul le utilizează în procesul de producere a bunurilor sau serviciilor, în funcție de
domeniul de activitate practicat.
Managementul resurselor umane presupune pe lângă necesitatea unei atenții sporite, o
abordare strategică a posibilitățil or de formare, dezvoltare, perfecționare a resursei
respective (aici ne referim la factorul uman), prin intermediul căeia orice organnizație își va
putea duce la îndeplinire scopurile propuse.
În societatea actuală există o nevoie extrem de mare de a asigura anumite facilități care
să vină în ajutorul companiilor și care să ușureze munca depusă de manager, în așa fel încât
acesta să poată gestiona și organiza cât mai util personalul pe care îl a re în subordine. În
acest sens, necesitatea utilizării tehnologiei pentru a putea facilita și îmbunătății cât mai mult
activitatea unei firme este primordială, existența acestui lucru contribuind în mod direct la o
mai bună organizare și la o mai buna evid ență a forței de muncă care prestează servicii în
cadrul întreprinderii.
Așadar, proiectarea și implementarea unei soluții care să vină în ajutorul companiilor
în acest sens poate atrage după sine un control mult mai riguros și mult mai eficient asupra
activităților desfășurate la nivelul departamentului de resurse umane, oferind totodată o
soluție facilă r esponsabililor cu factorul uman. Cât despre implementarea unei aplicații
informatice, aceasta ar putea constitui un avantaj referitor la accesarea rapid ă a datelor
referitoare la angajați dar și la interpretarea și manipularea informațiilor.
Pentru ca scopul și obiectivele realizării sistemului informatic să poată fii îndeplinite ,
a fost realizat un studiu de caz aplicat la compania BRD –Groupe Société Gé nérale, care
curprinde informații referitoare la numărul mediu de angajați, analiza resurselor umane pe
nivelul de studii, sex și vârstă, dinamica resurselor umane atât la nivel național cât și la
nivelul județului Maramureș. Toate aceste informații au du s la concluzia că datorită

2
numărului semnificativ de angajați, ar fii extrem de util un sistem informatic care să
îmbunătățească activitatea companiei, în special în cadrul de partamentului de resurse umane.
Odată realizat studiul de caz, am continuat prin a evidenția care este scopul aplicației
informatice pe care o voi realiza și implicit necesitatea acesteia privind testarea și
perfecționarea personalului angajat în cadrul BRD –Groupe Société Générale . De asemenea,
au fost identificate și principalele obiective pe care le va îndeplini sistemul informatic, toate
acestea fiind modelate pe baza studiului de caz întocmit anterior.
În continuare am prezentat informații importante referitoare la tehnologiile folosite
pentru întocmirea aplicației: platforma .NET Framework, limbajul SQL (SQL Management
Studio), Visual Studio, făcând referire totdată la limbajul C#.
În cele ce urmează am prezentat detalii referitoare la realizarea aplicației, pornind de
la const ruirea bazei de date, prin atașarea capturilor de ecran aferente fiecărei etape ce trebuie
parcursă pen tru crearea acesteia, respectiv până la realizarea interfeței grafice prin
intermediul formelor Windows în Visual Studio.
Odată atinse etapele de mai sus, am realizat un ghid al aplicației realizate cu ajutorul
tehnologiilor amintite mai sus, pentru a putea oferi o viziune mult mai largă asupra
capabilităților și a facilităților pe care le pune la dispoziție aplicația. Într -un final, am tras
concluziile finale și am propus anumite îmbunătățiri care pot fi aduse la aplicație pentru ca
gradul de eficiență al acesteia să se maximizeze.
Așadar, sunt de părere că realizarea unei aplicații informatice poate ușura activitatea
de test are și de perfecționare a factorului uman din cadrul companiei BRD –Groupe Société
Générale este o nevoie, dată fiind importanța acordată administrării resurselor umane din
ziua de azi.

Rezumat: Această lucrare de licență a fost concepută cu sc opul de a evidenția și de a pune
în practică atât cunoștințele teoretice cât și cele practice acumulate pe parcursul celor trei
ani de facultate, acordând o atenție deosebită programării vizuale Windows, care stă la
baza aplicației practice pe care am conceput -o. Structura lucrării de licență cuprinde șapte
capitole, prin care am încercat să surprind toate informaț iile necesare privind dezvoltarea,
perfecționarea și testarea angajaților din cadrul unei firme. Așadar, în primul capitol am

3
realizat un studiu de caz ref eritor la firma pentru care am optat să în tocmesc lucrarea, și
anume BRD – Groupe Société Générale. Acest studiu se axează ca și perioadă de timp pe
activitatea pe care compania BRD a desfășurat -o în intervalul 2012 -2016. Cel de -al doilea
capitol se referă la obiectivele aplicației realizate, precum și la necesitatea acesteia în
cadrul unei companii, fie că vorbim despre BRD, fie că vorbim despre o altă firmă. În cel
de-al treilea capitol am evidențiat aspectele teoretice privind tehnologiile folosite, resp ectiv:
SQL Server Management Studio, limbajul C# și platforma .NET Framework. Cele patru
capitole rămase sunt dedicate realizării propriu -zise a aplicației informatice. Capitolul
patru descrie realizarea bazei de date, capitolul cinci conține realizarea in terfeței grafice
utilizând tehnologia Windows Form, iar capitolul șase surprinde detalii cu privire la
funcționalitatea aplicației. Ultimul capitol se referă la concluziile și propunerile pe ntru
îmbunătățire a aplicației.
Cuvinte cheie: aplicație informati că, bază de date , interfață grafică, tehnologii

4
CAPITOLUL I. STUDIU DE CAZ PRIVIND PREGĂTIREA,
PERFECȚIONAREA ȘI TESTAREA ANGAJAȚILOR

1.1 BRD – Groupe Société Générale – Scurt istoric

Istoria BRD începe în anul 1923, când se înființează Societatea Națională de Credit
Industrial, ca instituție publică. Statul deținea 20% din capitalul social, Banca Națională a
României 30%, iar restul era deținut de particulari, dintre care un grup de fo ști directori ai
Marmorosch Blank & Co., prima bancă modernă din România. Scopul noii instituții era
finanțarea primelor etape ale dezvoltării sectorului industrial din România.

În anul 1948, după al doilea război mondial, conform Legii naționalizării di n iunie
1948, Societatea Națională de Credit Industrial este naționalizată, devenind Banca de Credit
pentru Investiții.

În 1957, după reorganizarea sistemului financiar, Banca de Credit pentru Investiții
obține monopolul în România pentru finanțarea pe t ermen mediu și lung a tuturor sectoarelor
industriale, cu excepția agriculturii și industriei alimentare, și ia numele de Banca de
Investiții. În toată această perioadă, cea mai mare parte a finanțărilor provenind de la Banca
Mondială sunt derulate prin Ba nca de Investiții.

Anul 1990 aduce suprimarea monopolului de care beneficiau băncile specializate în
domeniul lor de activitate. Banca Română pentru Dezvoltare se constituie ca bancă
comercială, sub formă de societate pe acțiuni, si preia activele si pasi vele Băncii de Investiții,
primind o autorizatie de funcționare generală.

În luna decembrie a anului 1998 se semnează contractul de vânzare – cumpărare de
acțiuni între Société Générale și Fondul Proprietății de Stat, autoritea românească care se
ocupa de participațiile statului, contract prin care SG subscrie o majorare de capital de 20%
și cumpără un pachet de acțiuni care -i permite să devină proprietară a 51% din capitalul
majorat al BRD.

5
În 1999, Fondul Proprietății de Stat vinde Băncii Europene de De zvoltare (BERD)
4,99% din capitalul social al BRD.

În 2001, BRD este listată la Bursa de Valori București, în prima categorie, devenind
în scurt timp una din cele mai tranzacționate societăți.

Doi ani mai târziu, în urma unei campanii de rebranding, Banc a Română pentru
Dezvoltare devine BRD – Groupe Société Générale. Noua identitate a băncii consolidează
astfel poziția sa, făcând mai vizibilă identitatea Grupului – mamă.

În anul 2004 Société Générale cumpără pachetul rezidual de acțiuni deținut de statul
român în capitalul BRD, participația sa crescând astfel de la 51% la 58,32% astfel banca a
devenit membru cu drepturi depline în această organizație.

Din anul 2011 este membru fondator al Asociației Române de Factoring și membru în
Comitetul Director al acesteia.

În anul 2013, BRD lansează o aplicație care permite utilizatorilor să transfere sume de
bani, să plătească facturile și să obțină informații despre contul bancar direct de pe telefonul
mobil.

În primele 7 luni ale anului 2015, utilizatorii au generat peste 430.000 de tranzacții în
aplicație, în creștere cu 20% față de întregul an 2014, valoarea tranzacțiilor fiind, în același
interval, cu 60% mai mare decât cea înregistrată la finalul anului trecut.

BRD (Banca Română pentru Dezvoltare) este o societate pe acțiuni care a fost
înregistrată pe teritoriul țării noastre și deținută de către grupul francez Société Générale ,
având o cotă de aproximativ 60,17%. Conform legislației în vigoare, această societate
comercială oferă o gamă variată de servic ii financiare și bancare.

Acționarul principal al BRD este Société Générale, unul dintre cele mai mari grupuri
bancare din zona euro, ale cărui servicii sunt utilizate de 37 milioane clienți din întreaga
lume.

6
Referitor la comunicare, strategia abordată de BRD are la bază o serie de principii,
printre care se numără: disponibilitatea imediată a informațiilor și implicit echitatea privind
accesul la aceste resurse pentru toți acționarii, respectarea termenelor în legătură cu
publicarea rezultatelor, etc.

Printre serviciile pe care BRD – Group Société Générale le pune la dispoziție atât
persoanelor fizice, cât și celor juridice, amintim efectuarea de plăți prin transfer, care se
poate realiza atât în țară cât și în străinătate, servicii de schimb valutar, s ervicii care vizează
acordarea de credite ș i leasing.

Ca și extindere teritorială, BRD – Group Société Générale este prezentă într -un număr
de 860 de agenții, dispuse în întreaga țară, în toate județele din România.
Începând cu 15 ianuarie 2001 Groupe Société Générale este cotată la categoria I a
Bursei de Valori București.

În anul 2014, BRD a ocupat locul trei în topul instituțiilor de credit cu 2,27 milioane
de clie nți. În România, BRD este liderul pieței de factoring înregistrând în 2014 o cotă de
piață de 35,7%. Din cauza lipsei investițiilor și a nivelului relativ ridicat al riscurilor asociate
insolventelor companiilor, volumul de factoring a ajun s să depășească 960 milioane euro în
anul 2014, în comparație cu anul 2013, în care acest volum a avut o valoare cu 5% mai mică.

Un an mai târziu, în anul 2015, BRD – Groupe Société Générale este cea de -a doua
bancă din România după totalul activelor. BRD ocupă o poziție importantă pe piața
românească a cardurilor , având 2,2 milioane de carduri emise și o rețea de ac ceptare de peste
26.000 POS -uri și 1. 500 ATM -uri. Activele totale ale băncii erau, la sfârșitul anului 2015,
de 49,2 mld RON.

În anul 2016, B RD – Group Société Générale a făcut parte din topul societăților
bancare cu cele mai mari profituri înregistrate, situându -se pe locul al 3 -lea. Astfel, cu un
profit net înregistrat de circa 728,3 mil lei, BRD reușește să bifeze cel mai bun rezultat anual
de după 2009.

Dacă în primăvara lui 2014, BRD avea 2,27 milioane de clienți, un an mai târziu
numărul s -a restrâns la 2,23 milioane (minus 40.000). Între timp, BRD a ocupat la sfârșitul

7
lunii martie 2016 locul al 4 -lea, cu 2,25 milioane de clienț i, asta d upă ce a reușit ca în anul
2015 să adauge peste 16.000 de clienți.

1.2 Structura organizatorică a BRD – Groupe Société Générale

Societatea BRD – Groupe Société Générale are o structură organizatorică și reguli de
funcționare care se axează în principal pe:
 Asigurarea condițiilor de a creea profit net, pe de o parte, prin realizarea activității
bancare, iar pe de altă parte prin executarea unui control riguros al costurilor
operaționale și a riscurilor;
 Prioritatea acordată clienților, astfel încât nevoile ac estora să fie satisfăcute în cele
mai bune condiții de deservire și de costuri în concordanță cu interesele de ansamblu
ale băncii;
 Ansamblul activităților băncii sunt organizate pe structuri și entități conform
organigramei generale.

1. Rețeaua teritorială a băncii este organizată conform principiului teritorialității și
cuprinde sucursale și alte tipuri secundare de sedii fără personalitate juridică: Centrala
Băncii; sucursale județene și sucursala municipiului București; filiale subordonate
organizatoric și funcțional sucursalelor.
2. Centrala Băncii este structurată în departamente, direcții și asimilate acestora,
servicii și compartimente. Pe lângă structurile din centrală pot funcționa
diverse comitete/comisii impuse de legislația în vigoare sau create pentru activități
specifice care funcționează după regulamente sau instrucțiuni proprii. Centrala
Băncii – îndeplinește funcția de coordonare pentru toate activitățile care se desfășoară
în sucursale și agenții asigurând aplicarea corectă a legilor, hotărârilor și a tuturor
actelor normative care guvernează activitatea bancară. În acest sens, Centrala Băncii
elaborează norme specifice ce trebuie respectate de unitațile din subordine și în plus,
Centrala este răspunzătoare de activitatea sucursalelor și agențiilor din subordine.
3. Sucursalele și filialele sunt unități cu sarcini operative, ele ne având personalitate
juridică, în calitatea lor de unități operative, sucursalele și filialele băncii execută
operațiuni bancare specifice societății bancare, în limita competențelor stabilite

8
de Centrala BRD și funcționează pe baza aprobării Consiliului de Administrație a
Băncii. Aceste au relații directe cu clienții din raza lor de activitate, atât persoane
fizice cât și juridice.
4. Reprezentanțele sunt înființate în localitățile în care nu există sucursale sau agenții
având ca atribuții asigurarea desfășurării activității de creditare și scont, conturi,
viramente și caserie.
Organele de conducere statutare ale BRD – Groupe Société Générale sunt:
1. Adunarea Generală a Acționarilor (AGA) reprezintă totalitatea acționarilor Băncii ,
în care fiecare acțiune deținută, conferă acestora dreptul la vot în luarea hotărârilor.
2. Banca este administrată de către Consiliul de Administrație care determină orientările
activității Băncii și supraveghează punerea lor în practică. Consiliul este format din
11 membri, persoane fizice , alese de AGA, mandatul lor având o durată de 4 ani,
fiind reelig ibili.
3. Comitetul de Direcție este format din persoane fizice, salariați ai Băncii, alese de
către Consiliul de Administrație, și anume Directorul General și 4 Directori Generali
Adjuncți, împuterniciți să conducă și să coordoneze activitatea Băncii. Comitetul de
Direcție este însărcinat cu competențele de conducere executivă a Băncii. Acesta se
reunește săptămânal.

Figura 1. Organigrama BRD – Group Societe Generale – sucursala Baia Mare
Sursa: prelucrare proprie DIRECTOR
GENERAL
Director Economic
Contabilitate și buget
Informatică
Compensare și gesiune trezorerie
AdministrativDirector comercial
Primire
cliențiConsilieri clientelă
(persoane juridice)
Consilieri clientelă
(persoane fizice)Ghișeu Casierie (lei și
devize) persoane
juridice
Ghișeu -Casierie (lei
și devize) persoane
fizice Operațiuni și
transferuri în lei și
devize
Monetică și alte
servicii bancareGestiune și
urmărire crediteSecretariat

9

61.12
4.794.75.453.943.873.217Structura capitalului
Societe Generale SA
SIF Banat Crișana SA
SIF Oltenia SA
SIF Muntenia SA
SIF Transilvania SA
Fondul Proprietatea SA
SIF Moldova SA
Alți proprietariStructura acționariatului companiei BRD – Groupe Société Générale poate fi observată
în figura următoare:

Figura 2. Structura acționariatului BRD – Group Societ e Generale
Sursa: prelucrare proprie

1.3 Analiza resurselor umane în cadrul BRD – Groupe Société
Générale

BRD – Groupe Société Générale este unul dintre cei mai activi angajatori din România,
banca dezvoltând în ultimii ani o mulțime de parteneriate cu organizații studențești . Scopul
acestor colaborări îl constituie derularea în comun a unor evenimente de carieră și a unor
proiecte care au în vedere atât dezvoltarea competențelor manageriale și profesionale, cât și
inserția profesională.

În cadrul societății BRD – Groupe Société Générale se găsesc toate condițiile care să
le permită angajaților dezvoltarea personală și profesională. Motivarea și dezvoltarea
competențelor salariaților este o linie de acțiune pe care banca o urmează în mod consecvent.

Una dintre c ondițiile esențiale pentru banca BRD o constituie calitatea resurselor
umane , deoarece acestea au rolul să asigure eficiența și dezvoltarea băncii și profitabilități
corespunzătoare.

10
În ceea ce privește gestionarea resurselor umane în cadrul BRD, banca a urmărit să
asigur e o bună legătură între cunoști nțe și cerințe și să ofere propriului personal locuri de
muncă potrivit pregătirii și randamentului dorit.

Printre cele mai importante aspect ur mărite de BRD referitor la angajați ne putem
referi la capacitatea de lucru a personalului, fiind atent urmărită și supusă diferitelor probe
întrucât calitatea și profesionalismul resurselor umane este într -o directă legătură cu
performanțele și succesul b ăncii.

Odată cu trecerea anilor, concurența s -a dovedit a fi puternic simțită de bancă, motiv
pentru care aceasta a înființat unele măsuri protective care să împiedice migrarea
personalului propriu spre alte bănci, însă acest proces nu a avut mare succes motiv pentru
care băncile nou înființate au reușit să atragă salariați din BRD prin oferirea unei salarizări
mai bune.
Figura 3. Numărul mediu de angajați ai Grupului
Sursa: Prelucrare proprie

Din figura prezentată anterior, putem să observăm faptul că numărul mediu de angajați
la începutul anului 2015 a crescut față de același moment al anului 2014, creștere cuantificată
la 75 de angajați. La finalul anului 2015 însă, numărul mediu de angajați a fost de 8,290,
comparativ cu anul 2014, în care numărul angajaților de la finalul anului a crescut la 8,271.
În anul 2016, numărul mediu de angajați la început de an a fost de 8,385, în timp ce la
final de an s -a redus la 8,315. 8,2458,271
8,3208,290
8,3858,315
8,150 8,200 8,250 8,300 8,350 8,400Început de anSfârșit de an
Început de an Sfârșit de an
2016 8,385 8,315
2015 8,320 8,290
2014 8,245 8,271
2016 2015 2014

11
Figura 4. Numărul mediu de angajați ai Băncii
Sursa: prelucrare proprie

Dacă aruncă m o privire asupra Figurii nr. 4 prezentată anterior, putem observa faptul
că numărul mediu de angajați ai băncii în cursul anului 2015 a fost de 7.700, comparativ cu
anul 2014, în care numărul de angajați a fost de 7.690.

Totodată, observăm o situație de creștere și în anul 2016, când numărul mediu de
angajați ai Băncii s -a majorat la 7.715 la începutul anului, respectiv 7.720 de angajați la
sfârși t de an.

Tabelul 1. Numărul mediu de angajați ai BRD la sfârșitul anului
Sursa: BRD – Group e Société Générale (www.brd.ro)

La nivel național, dinamica resurselor umane din cadrul societății BRD – Group e
Société Générale cuprinsă în perioada 2013 -2016 este următoarea: ANUL NUMĂR ANGAJAȚI
2013 7.754
2014 7.692
2015 7710
2016 7.720
7,6757,6807,6857,6907,6957,7007,7057,7107,7157,720
Început de an Sfârșit de an7,6907,6927,7007,7107,7157,720
2014
2015
2016

12
Figura 5. Dinamica angajaților la nivel național din cadru l BRD 2013 -2016
Sursa: prelucrare proprie

La nivel național, numărul de angajați a fost oscilant în toată perioada cuprinsă între
2013 – 2016, dar în anul 2016 numărul de angajați a crescut, trend care poate va continua și
în 2017, dar într -un ritm la fel de lent ca și cel înregistrat între ultimii 2 ani analizați.
Dinamica angajaților la nivelul Județului Maramureș din cadrul BRD
Figura 6. Dinamica angajaților la nivelul județ ului Maramureș din cadrul BRD 2013 -2016
Sursa: prelucrare proprie

În perioada 2013 -2016, situația referitoare la numărul angajaților din cadrul BRD în
județul Maramureș se confruntă inițial cu o scădere, urmată de o creștere ușoară a
personalului, înregistrată atât în anul 2015 cât și în anul 2016.

2013 2014 2015 20167,754
7,6927,7107,720NUMĂR ANGAJAȚI
2013 2014 2015 2016147 138198 205NUMĂR ANGAJAȚI

13
1.3.1 Analiza resurselor umane pe nivelul de studii

Tabel 2. Structura resurselor umane în cadrul BRD pe nivel de studii
Sursa: BRD – Group e Société Générale (www.brd.ro)

În cadrul județului Maramureș, structura resurselor umane din cadrul societății
comericiale BRD – Groupe Société Générale , prezentată pe nivel de studii, este următoarea:
Figura 7. Structura p ersonalului din cadrul BRD pe nivele de studii
Sursa: prelucrare proprie

Din figura de mai sus, se poate observa neconcordanța dintre cele două nivele de studii:
medii și superioare, această disproporție este întâlnită în majoritatea instituțiilor financiare.
Observăm că pe perioada 2012 -2015 a existat o scădere a num ărului de persoane cu studii
superioare, numărul de persoane cu studii medii care reprezintă personalul auxiliar a rămas
aproximativ același. În anul 2016 însă, s -a înregistrat o creștere atât în ceea ce privește
personalul cu studii superioare, cât și cel cu studii medii. 2012 2013 2014 2015 2016
Nr. % Nr. % Nr. % Nr. % Nr. %
Studii
superioare 149 88,69 143 89,94 133 90,48 126 91,30 156 91,30
Studii medii
generale 19 11,31 16 10,06 14 9,52 12 8,70 42 8,70
TOTAL 168 100 159 100 147 100 138 100 198 100
050100150200
2012 2013 2014 2015 2016149 143133 1261561916141242
Studii superioare Studii medii generale

14
1.3.2 Analiza resurselor umane pe grupe de vârstă

Tabelul 3. Structura resurselor umane în cadrul BRD pe grupe de vârstă
Sursa: BRD – Group e Société Générale (www.brd.ro)

Figura nr. 8 Structura personalului pe grup e de vârstă din cadrul BRD
Sursa: prelucrare proprie

Din punct de vedere al structurii personalului în funcție vârstă, observăm o evoluție relativ
constantă, astfel că majoritar în rândul angajaților este segmental între 31 -40 ani, urmat de
salariații între 20 -30 ani. 2012 2013 2014 2015 2016
Nr. % Nr. % Nr. % Nr. % Nr. %
20-30 ani 46 27,38 41 25,78 34 23,13 28 20,29 32 23,05
31-40 ani 71 42,26 67 42,14 70 47,62 75 54,35 79 54,75
41-50 ani 36 21,43 32 20,13 28 19,05 24 17,39 30 20,05
> 51 ani 15 8,93 19 11,95 15 10,20 11 7,97 9 2,2
TOTAL 168 100 159 100 147 100 138 100 151 100
01020304050607080
2012 2013 2014 2015 201646
41
34
283271
67707579
36
32
28
2430
1519
15
119
20-30 ani 31-40 ani 41-50 ani Peste 50 ani

15
În anul 2016 s -a păstr at tendința întregii perioade analizate, înregistrându -se creșteri
în cadrul tuturor segmentelor de vârstă, mai puțin segmentului peste 51 de ani, care a suferit
o ușoar ă micșorare.

Ca și o concluzie, a ceste procentaje subliniază faptul că BRD are în proporție foarte
mare un personal preponderent tânăr, asta dacă luăm în calcul faptul că aproximativ 80 %
dintre angajați au vârsta cuprinsă între 20-40 ani.

1.3.3 Analiza resurselor umane pe sexe

Structura resurselor umane pe sexe din cadrul BRD – Groupe Société Générale în
județul Maramureș, este prezentată în prezentată în tabelul următor:

Tabelul 4. Structura resurselor umane din cadrul BRD pe sexe

Sursa: BRD – Group e Société Générale (www.brd.ro)

După cum putem observa din figura de mai jos, femeile reprezintă majoritatea referitor
la structura personalului pe sexe, care domină și în anul 2016 cu un procent de 73,96%.

Cu toate acestea, pe perioada cuprinsă între 2012 -2015, evoluț ia personalului de sex
feminin a suferit o scădere mai accentuată, comparativ cu personalul de sex masculin, care
deși se află în inferioritate, s -a confruntat cu o creștere. 2012 2013 2014 2015 2016
Nr. % Nr. % Nr. % Nr. % Nr. %
Femei 133 79,17 119 74,84 103 70,07 90 65,22 110 73,96
Bărbați 35 20,83 40 25,16 44 29,93 48 34,78 42 26,04
TOTAL 168 100 159 100 147 100 138 100 152 100

16
Figura 9. Dinamica numărului de angajați BRD din județul Maramureș pe sexe
Sursa: prelucrare proprie

1.4 Pregătirea și perfecționarea angajaților în cadrul BRD – Groupe
Société Générale

În societatea actuală, pregătirea și perfecționarea salariaților a devenit o cerință
primordială în ceea ce privește dezvoltarea activității desfășurate de marile companii. D acă
în trecut tinerii ca re dobândeau o profesie reușeau pe baza cunoștințelor obținute în timpul
scolii să o exercite pe toată durata vieții, astăzi cunoști nțele se p erimează foarte rapid.

În perioada în care trăim, România se confruntă cu o tendință caracterizată prin
schimbări rapide , form area și perfecționarea trebuind să devină un proces continu și
organizat care să țină seama atâ t de schimbările care au loc, cât și de cele care pot fi
anticipate.

În condițiile în care inovațiile schimbă tehnologia și managementul de la o zi la alta,
companiile și societățile comerciale sunt obligate să -și reconsidere permanen t politica de
resurse umane și valoarea muncii . Astfel, nici o firmă nu poate da rezultate comparabile cu
ceea ce există pe plan mondial dacă nu -și va instrui pe rmanent angajații, asigurând în același
020406080100120140160180
2012 2013 2014 2015 2016133119
1039011035
40
44
4832
Femei Bărbați

17
timp întărirea relațiilor dintre angajați, comunicarea internă, lucrul în echipă, antrenarea
angajaților în dezvoltarea instituției la care lucrează .

1.4.1 Etapele procesului de formare profesională

1) Stabilirea cerințelor imediate și de perspectiva de formare profesională
Potrivit acestei concepții, se pornește de la nivelul existent de pregătire, evaluat prin
testarea cunoștințelor la începerea programului de perfecționare. Această etapă cuprinde:
 determinarea cerințelor generale, realizată pe baza:
 analizei situației actuale privind resursele umane din cadrul organizației
(nivelul calitativ și cantitativ al acesteia, circuația, fluctuația etc.) ;
 analizei organizării și funcționării organiz ației;
 evidențieri diferențelor dintre cerințele organizării și funcționării eficiente a
organizației și potențialul profesional real al resurselor umane existente ;
 determi narea cerințelor individuale, realizate în funcție de:
 cerințele activităților desfășurate de angajat, prevăzute în fișa postului ;
 cerințele generale de pregătire și perfecționare ;
 standardele de perfor manță pregătite pentru angajați;
 analiza activității angajatului, a comportamentului său, a capacității sale de a rezolva
diferite probleme complexe, a modului în care își organizează munca, a
performanțelor sale comparativ cu standardele .

2) Elaborarea planului și programelor de formare profesională

Aceast ă etapă cuprinde 3 faze principale, prezentate după cum urmează:
 analiza cerințelo r de pregătire și perfecționare ;
 stabilirea obiectivelor programului;
 precizarea căilor d e realizare a acestor obiec tive.
Pentru atingerea obiectivelor scontate, realizatorii programelor de instruire își vor
elabora o strategie adecvată fiecărei situații concrete, pornindu -se de la întrebarea: Care este

18
concepția mea în ceea ce privește pregătirea? Răspunsul îi va permite ins tructorul ui să știe
ce face și de ce.
Persoana care concepe un curs de pregătire profesională trebuie să aibă în vedere
următoarele aspecte:
 elementele teoretice au valoare în măsura în care ele pot fi aplicate la locul de
muncă al cursantului. Ele au rolul de a orienta, de a explicita cauzele și de a
promova realizări, performante;
 experiența este o componentă importantă a procesului de pregătire
profesională, cel ce concepe programul va avea în vedere participarea activă a
cursanților; comunicarea est e o problemă dificilă a activităților practice. În
proiectul planului de pregătire se va rezerva un număr adecvat de ore pentru
această problemă;
 schimbările de atitudine care urmează schimbărilor de comportament.

3) Desfășurarea programelor
Referitor la a ceastă etapă, putem identifica cu ușurință o serie de programe care au
diferite destinații/obiective, și anume:
 de pregătire pentru postul ocupat;
 de perfecționare pe postul ocupat;
 de formare în vederea promovării într -un post superior ;
Principalele „acțiuni” care stau la baza desfășurării acestor programe privind
pregătirea și perfecționarea angajaților sunt:
 stabilirea obiectivelor programului , a tematicii acestuia și a metologiei de
desfășurare;
 organizarea propriu -zisă, care constă în stabilirea m odalităților de realizare,
recrutare a participanților, asigurarea mijloacelor și materialelor didactice ;
 desfășurarea programului , care cuprinde coordonarea cursurilor,
susținerea acestora, aplicarea diferitelor metode de instruire;
 finalizarea , respectiv aprecierea cursanților, evaluarea programului și
identificarea direcțiilor de îmbunătățire.

19
4) Controlul și evaluarea programelor

Controlul se desfășoară continuu, în trei etape semnificative:
 pe parcursul desfășurării programului , având un caracter obiectiv;
 la sfârșitul programului , când are un caracter constatativ, obiectul său fiind
evidențierea nivelului cunoștințelor dobândite de participanți;
 în perioada ulterioară încheierii programului , când are ca scop evaluarea
schimbării la locul de muncă a nivelului de competență, a aptitudinilor și a
atitudinilor participanților la program.

5) Evaluarea eficienței activității de formare profesională

Această ultimă etapă este extrem de vitală pentru cunoașterea influențelor pozitive și
negative pe care programele le au asupra rezultatelor și asupra cursanților ce le frecventează.
Așadar, procesul nu trebuie să fie rezultatul final al unui curs, ci veriga ce asigură
informațiile necesare pentru etapele următoare de perfecționa re a angajaților.

Tabelul 5. Costuri/Beneficii
Sursa: prelucrare proprie COSTURI BENEFICII
 Salariile instructorilor;
 Materiale pentru pregătire;
 Cheltuielile instructorilor;
 Echipamente și tehnologii
utilizate în procesul de instruire al
angajaților;
 Capacitatea de producție
pierdută ca urmare a absenței celor
care participă la aceste programe
de pregătire;  Creșterea productivității muncii, ca urmare a
metodelor folosite îmbunătățirii performanțelor
angajaților;
 Reducerea fluctuației în muncă;
 Creșterea veniturilor angajaților ;
 Creșterea calității serviciilor realizate;
 Reducerea erorilor în aprecierea situațiilor;
 Reducerea rebuturilor ca urmare a îmbunătățirii
sistemului de organizare;
 Crearea unor noi locuri de muncă;
 Îmbunătățirea climatului/mediului organizațional;

20
Procesele de formare si perfection are a personalului se realizează deci prin programe
corespunzătoare care se desfășoară fie în cadrul organizației, fie în exteriorul acesteia, în
instituț ii specializate. Aceste forme de instruire pot fi:
 Cursuri;
 Vizite de studii ;
 Stagii de specializare ;
 Instruir e la locul de muncă;
 Participare î n colective de muncă sau rotirea pe posturi

Printre principalele programe pentru perfecționare a angajaților către care societatea
BRD și -a îndreptat atenția se numără:
 Celula Catalog
Proiectul „Celula Catalog”, implementat în septembrie 2011 în cadrul
Departamentului de Resurse Umane din BRD, are ca obiectiv administrarea centralizată a
întregului catalog de formare al grupului Société Générale (prezen t în 85 de țări, 41 de filiale,
160.000 de salariați). Inițial, activitatea s -a desfășurat în Franța, timp în care au fost analizate
și optimizate procedurile și fluxurile de lucru.

Catalogul cuprinde cursuri de formare profesioanală din Franța (2630 cursuri față în
față și e -learning), Anglia ( 270 cursuri), Asia (380 cursuri), urmând includerea tuturor
filialelor grupului ce vor utiliza aplicația MyLearning.
 Școala Comercială
„Școala Comerc ială” este un proiect e -learning de formare profesională continuă,
demarat în februarie 2011, de către Direcția Formare Profesională/ Departamentul de
Resurse Umane în colaborare cu Departamentul Comercial Rețea si Departamentul de
Strategie și Marketing.

Obie ctivul programului este de a perfecționa cunoștintele forței de vânzări referitoare
la produsele și serviciile oferite de bancă și practici comerciale, totodată acesta fiind un
mijloc de identificare a nevoile de perfecționare profesională specifică.

21
 Acade mia de Management
„Academia de Management ” este un sistem integrat de formare managerială, cu o
abordare diferențiată în funcție de experiența participanților și având drept obiectiv
dezvoltarea celor 7 competențe cheie vala bile la nivelul întregului grup Société Générale .
Programul a fost demarat în octombrie 2010 și s -a finalizat în martie 2012, având ca
beneficiari aproximativ 900 de manageri din cadrul Grupului BRD.
Programul are o abordare diferentiată în funcție de expe riența participanților și este
structurat în mai multe etape, ce cuprind diferite metode de formare managerială: simulări
de business, prezentări privind strategia și obiectivele principalelor domenii de activitate din
bancă, module de curs în care partic ipanții sunt antrenați în ample dezbateri teoretice,
exerciții practice și studii de caz care să conducă la dezvoltarea competențelor procesuale,
interpersonale și personale. Ultima etapă este una continuă ce constă în livrarea de cursuri
necesare dezv oltarii continue a competențelor manageriale.
Academia de Management face parte din programul complex de formare dedicat
managementului organizației, ce cuprinde at ât formări la nivel de Grup Société Générale ,
cât și formări specifice adaptate nevoilor fie cărui nivel de management: de proximitate,
operațional, strategic și dedicate talentelor și resurselor cheie.

22
CAPITOLUL II. NECESITATEA ȘI OBIECTIVELE APLICAȚIEI
INFORMATICE

După cum am putut concluziona din informațiile prezentate mai sus, compania BRD
este extrem de atentă în ceea ce privește pregătirea și perfecționarea angajaților, pentru a
putea să presteze servicii de calitate, puse la dispoziție clienților și potențiali lor clienți prin
proprii angajați.

Așadar, consider că realizarea unei aplicații informatice care să testeze personalul
angajat, dar care să fie capabilă și să gestioneze testele respective, să afișeze rezul tatele și
să salveze datele obținute ar constitui un avantaj , dar și o ”mână de ajutor” pentru compani a
BRD –Groupe Société Générale .

Astfel, obiectivele urmărite în vederea realizării acestei aplicații informatice sunt
următoarele, și anume:
 Realizarea unei baze de date potrivită pentru gestionarea întrebărilor, testelor,
angajaților și a rezultatelor acestora;
 Definirea rolurilor utilizatorilor aplicației informatice și a drepturilor lor de acces la
datele despre angajați, întrebări, teste, rezultate;
 Realizarea ferestrelor de aplicație Windows pentru gestionarea datelor despre
angajații care vor fi testați;
 Realizarea ferestrelor de aplicație Windows pentru introducerea categoriilor (de
întrebări) și a întrebărilor în baza de date (operații READ -WRITE pe baza de date);
 Realizarea ferestrei de aplicație Windows care va fi folosită de angajați pentru
testarea cunoștințelor lor;
 Realizarea ferestrei de aplicație cu rol de raportare a rezultatelor obținute de angajații
testați și afișarea lor (operații REA D din vederi pregătite anterior);
Odată atinse toate aceste obiective, sunt de părere că aplicația informatică va putea
contribui într -o măsură semnificativă la eficientizarea activității companiei, în special în
rândul personalului care aparține departame ntului de Resurse Umane, care ar putea sa
gestioneze și să manipuleze mult mai ușor datele referitoare la performanțele dobândite de
către fiecare angajat pe parcursul timpului.

23
CAPITOLUL II I. TEHNICI FOLOSITE ÎN VEDEREA REALIZĂRII
APLICAȚIEI INFORMATICE

În ceea ce privește realizarea aplicației informatice, am utilizat limbajul de programare
C#, în timp ce pentru întocmirea bazei de date am folosit programul SQL Management
Studio.

3.1 SQL Server Management Studio

SQL Server Management Studio este o aplicație software, un instrument de tip
Graphical User Interface (GUI) utilizat pentru accesarea, configurarea, gestionarea si
administrarea tuturor componentelor SQL Server, combinând totodată un grup larg de
instrumente grafice și editori script care fu ncționează cu obiecte și caracteristici ale
serverului.

De asemenea, SSMS are ca și caracteristică principală Explorer Object, care este
extrem de utilă și care îi permite utilizatorului să caute, să selecteze și să acționeze asupra
oricărui obiect din se rverul respectiv. Acesta poate fi utilizat și pentru a vizualiza, observa
și analiza ceea ce urmează să interogăm baza de date creată.

Limbajul de programare care stă la baza instrumentului SSMS este SQL, un limbaj
standard și accesibil pentru crearea, accesarea, actualizarea respectiv manipularea bazelor de
date. Numele limbajului poate fii pronunțat pe litere (es -q-el) sau la fel ca și cuvântul
englezesc (sequel). Este un limbaj neprocedural și declarativ, deoarece utilizatorul descrie
ce date dorește să obțină, fără a fi nevoie să stabilească modalitățile de a ajunge la datele
respective. Acesta face parte din categoria limbajelor de aplicații, fiind orientat pe mu lțimi.

Printre programele care folosesc acest limbaj, se numără Oracle, Sybase, DB2,
MySQL și bin eînțeles SQL Server.

24
SQL permite:
 Crearea bazei de date relaționale și structurarea relațiilor ;
 Efectuarea op erațiilor elementare asupra bazei de date și a interogărilor ;
 Accesul la conținutul bazelor de date;
 Accesul la structura bazelor de date;
 Execuția interogărilor la baza de date;
 Inserarea unor înregistrări în cadrul bazei de date;
 Extragerea de date din baza de date;
 Ștergerea anumitor înregistrări existente;
 Crearea unei noi baze de date;
 Crearea unor tabele, a unor proceduri, a unor funcții;
 Actualizarea înregistrărilor din cadrul bazei de date;

Interogările care pot fi utilizate în cadrul limbajului SQL sunt: where, order by, having,
group by. Totodată, cuvintele cheie ale vocabularului limbajului SQL sunt instrucțiunile,
clauzele, funcțiile și operatorii.
Referitor la manipularea datelor existente în cadrul bazei de date, putem folosi funcții
precum sum, max, min, avg, count.
Instrucțiunile n u fac altceva decât să determine executarea unei acțiuni, cum ar fi:
select, create, insert, delete, update, transform, drop.

Tabelul 6. Operatori SQL
Sursa: prelucrare proprie OPERATORI DESCRIERE
= Egalitate
< > != Inegalitate
> Mai mare
< Mai mic
>= Mai mare sau egal
<= Mai mic sau egal
OR Cel puțin una dintre condiții trebuie să fie îndeplinită
AND Toate condițiile specificate trebuie să fie îndeplinite
NOT Condiția specificată trebuie să fie falsă

25
3.1.1 Tipuri de date și elemente ale limbajului SQL

Oricărei coloane (sau câmp) dintr -un tabel SQL îi este asigurat un anumit tip de dată,
la fel ca în toate celelalte limbaje de programare. Tipurile de date pe care le regăsim în cadrul
SQL sunt următoarele:
 CHARACTER (CHAR) – se referă la șir de carac tere;
 INTEGER (INT) – număr întreg;
 FLOAT SAU REAL – număr real;
 NUMERIC (precission, scale) sau DECIMAL (precission, scale) – număr zecimal ,
unde “precission” înseamnă numărul de cifre din partea întreagă, iar „scale”
înseamnă numărul de zecimale ;
 DATE – dată calendaristică;
 TIME – ora.

Limbajul SQL poate fi divizat în următoarele elemente compo nente:
 Clauze , care sunt componente ale instrucțiunilor și interogărilor;
 Expresii , ale căror efect este producerea de valori scalare sau tabele;
 Interogările , care au ca scop regăsirea datelor după criterii specifice;
 Instrucțiunile , care pot avea un efect persistent asupra datelor sau structurii datelor.

3.1.2 Manipularea datelor prin intermediul limbajului SQ L

Limbajul de manipulare a datelor (DML) este un subset al SQL care este utilizat pentru
a adăuga, actualiza sau șterge date. Instrucțiunile limbajului de manipul are a datelor sunt
următoarele:
 INSERT – inserează un articol într -o tabelă;
 DELETE – șterge un set de articole;
 CREATE – este utili zată dinamic pentru a crea;
 UPDATE – actualizează un set de articole;

26
 SELECT – este comanda cea mai utilizată; este folosită pentru obținerea datelor din
baza de date;
 ALTER – este comanda pentru utilizarea și ștergerea oricărei structuri de date, de
exemplu tabele;
 GRANT – este instrucțiunea utilizată pentru a da sau a lua;
 REVOKE – se referă la drepturile de acces pentru bazele de date.

3.1.3 Reguli ale limbajului SQL

Limbajul SQL folosește termenii de tabele, coloane și rânduri în locul celor de relații,
atribute și înregistrări. O instrucțiune SQL include cuvinte rezervate și cuvinte definite de
utilizator pentru a denumi tabelele, atributele, indexurile.

Printre re gulile adoptate pentru scrierea instrucțiunilor SQl, se numără:
 Fiecare clauză a unei instrucțiuni trebuie scrisă pe o linie nouă, cu separare prin
virgulă;
 Dacă o clauză are mai multe părți, fiecare dintre acestea este scrisă pe o linie nouă;
 Majusculele sunt utilizate pentru cuvintele rezervate (SELECT, INSERT , DELETE,
etc.);
 Literele mici sunt utilizate pentru termenii proprii utilizatorului (denumiri de tabele,
coloane, câmpuri, etc.);
 Bara verticală se referă la operația logică „SAU”, adică alegerea d intre două sau mai
multe opțiuni;
 Acoladele ” { }” indică un element necesar;
 Parantezele ” [ ]” pătrate indică un element opțional;
 Structura ”…” specifică o repetare opțională a unui articol din baza de date;
 Se creează mai întâi structura bazei de date prin definirea tabelelor și stabilirea
formatului tabelelor, precum și definirea drepturilor de acces ale utilizatorilor, după
care se trece la popularea propriu -zisă a bazei de date;
 Instrucțiunile de încheie prin caracterul ”;” ;
 Valorile, în general, su nt scrise între paranteze rotunde, separate prin virgulă;
 Valorile literale sunt încadrate de apostroafe.

27
Cheia primară, una dintre componentele importante ce trebuiesc stabilite în cadrul unui
tabel, reprezintă una sau mai multe coloane, ale cărei valori identifică în mod unic toate
liniile unui tabel. Aceastaa cheie primară, cunoscută în limbaj de specialitate ca și Primary
Key, este utilizată pentru a face referire la o singură linie.

În ceea ce privește cheia străină, sau altfel spus Foreign Key, aceasta efectuează o
constrângere între două tabele. Astfel, prin intermediul său identificăm o coloană sau un set
de coloane într -un tabel care face referință la o coloană sau un set de coloane dintr -un alt
tabel.

3.2 PLATFORMA .NET FRAMEWORK

Platforma .NET Framework este un cadru de dezvoltare software unitară care permite
realizarea, distribuirea și rularea aplicațiilor desktop Windows și aplicațiilor WEB. Ac easta
rulează în principal pe Microsoft Windows, dar este compatibilă de asemenea cu alte sisteme
de operare, cum ar fi MAC, OS X, precum și alte versiuni de Linux.

Legat de C#, arhitectura .NET definește două entități importante, și anume biblioteca
de clase .NET și motorul comun de programare sau Common Language Runtime (CLR). C#
nu are o bibliotecă de clase proprie, ci utilizează direct biblioteca de clase .NET (exemplu:
rularea un program care efectuează operații de intrare -ieșire, cum ar fi afișarea unui text pe
ecran). CLR se ocupă de execuția programelor C#. El asigură de asemenea programarea în
limbaj mixt, securitatea și portabilitatea programelor.

Pe de o parte, C# a fost dezvoltat pentru crearea codului pentru arhitectura .NET, iar
pe de altă parte bibliotecile utilizate de C# sunt cele ale arhitecturii .NET.

Tehnologia .NET pune laolaltă mai multe tehnologii (ASP, XML, OOP, SOAP,
WDSL, UDDI) și limbaje de programare (VB, C++, C#, J#), asigurând totodată atât
portabilitatea codului compilat între diferite calculatoare cu sistem Windows, cât și
reutilizarea codu lui în programe, indiferent de limbajul de programare utilizat.

28
Componenta .NET Framework este formată din compilatoare, biblioteci și alte
executabile utile în rularea aplicațiilor .NET.

Figura 10. Arhitectura .NET Framework
Sursa: Toader, C., Programarea aplica țiilor Windows, suport de curs

Pentru ca înregistrarea în cadrul platformei .NET să fie posibilă, trebuie respectat un
set de caracteristici de bază Common Language Specification (CLS), astfel încât să se poată
asigura interoperabilitate a între aplicații, indiferent de limbajul de programare utilizat pentru
crearea acestora.

Dintre avantajele utilizării platformei .NET Framework, amintim următoarele:
 Oferă acces ușor la bazele de date;
 Oferă instrumente pe care le putem folosi și în alte programe;
 Suport pentru mai multe limbaje de programare, precum C#, F#, Visual Basic, etc.;
 Interoperabilitate totală cu codul existent, Common Lnaguage Runtime, care oferă
un strat de abstractizare peste sistemul de operare;
 Permite realizarea desene lor sau a altor forme grafice;
 Spatiul de nume System.Windows.Forms conține instrumente (controale) ce permit
implementarea elementelor interfeței grafice cu utilizatorul;
 Oferă clase care efectuează majoritatea sarcinilor uzuale cu care se confruntă,
reducând astfel timpul necesar dezvoltării aplicațiilor.

29
3.3. Visual Studio

Visual Studio este un set complet de instrumente de dezvoltare utilizat pentru a genera
o aplicație ASP.NET, Servicii Web, XML, aplicație desktop sau aplicații mobile.

Visual C#, Visual Basic, Visual C++ si Visual J# utilizează același mediu de
dezvoltare integrat (IDE) , acesta permițând partajarea instrumentelor și facilitând totodată
crearea de soluții folosind mai multe limbaje de programare. Aceste limbaje de programare
îi permit celu i care le folosește să beneficieze de caracteristicile .NET Framework care oferă
acces la tehnologii cheie care simplifi că dezvoltarea de aplicații web.

Visual Studio este o implementare în limbajul Microsoft. Acesta acceptă Visual C# cu
un editor de cod, compilator, șabloane de proiect, designeri, depanatori și alte instrumente.
.NET Framework Class Library oferă acces la mai multe servicii de sistem și de operare și
alte utilități bine concepute.

De asemenea, Visual Studio se remarcă prin implementarea unor containere
conceptuale numite soluții și proiecte care permit mediului de dezvoltare integrat (Integrated
Developement Enviroment) aplicarea unei game largi de instrumente, template -uri,
designeri și setări.

Un proiect include un set de fișiere sursă, la care se adaugă metadate asociate, cum ar
fi refer ințe de componente, necesare pentru a construi instrucțiuni. Proiectele produc, în
general, unul sau mai multe fișiere de ieșire atunci când a fost construit. La rândul său, o
soluție poate include una sau mai multe proiecte, plus fișiere și metadate care ajută la
definirea soluției în ansamblu.

Visual Studio generează automat o soluție atunci când se crează un nou proiect. După
cum vom avea nevoie, putem adăuga apoi alte proiecte la soluția respe ctivă. Solution
Explorer permite vizualizarea grafică a întregii soluții, care ne ajută să gestionăm proiectele
și fișierele sale pe mă sură ce aplicația se dezvoltă.

30
3.3.1 Caracteristicile limbajului C#

Fiind creat ca instrument de dezvoltare pentru arhitectura .NET, limbajul C# oferă o
modalitate facilă și eficientă de a scrie programe pentru sistemul Windows, internet,
componente software etc.

C# derivă din două dintre cele mai de succes limbaje de programare, și anume C++ și
C. De asemenea, limbajul este o ”rudă” apropiată a limbajului Java. Limbajul C# conține
mai multe facilități inovatoare, dintre care cele mai importante se referă la suportul
încorporat pentru componente software. Poate cea mai importantă facilitate de care dispune
C# este posibilitatea de a lucra într -un mediu cu limbaj mixt.

Principalele calități pe care limbajul C# le are sunt următoarele:
 Modernitate, simplitate, utilitate generală, productivitate mare;
 Stabilitate în cadru l aplicațiilor complexe, durabilitate;
 Este un limbaj total orientat pe obiect, astfel că orice entitatre din acest limbaj este
defapt un obiect;
 Este un limbaj orientat către componente;
 Oferă suport complex pentru dezvoltarea de component e necesare în medii
distribuite.
Încapsularea, moștenirea și polimorfismul constituie principiile de bază ale
programării orientate pe obiecte și sunt totodată elemente fundamentale ale programării în
limbajul C#.

O aplicație C# este formată din una sau mai multe clas e, grupate în spații de nume,
numite și namespaces. Este obligatoriu ca doar una dintre aceste clase să copnțină un punct
de intrare (entry point), și anume metoda/funcția Main.

Principalul element structural și de organizare în limbajele orientate pe obiecte este
Clasa (class) , care nu face altceva decât să grupeze date și funcții care prelucrează datele
respective.

31
Spațiul de nume (Namespaces) este o componentă extrem de importantă, astfel că
fiecare mulțime de definiții dintr -o librărie sau program este grupată într -un spațiu de nume,
existând astfel posibilitatea de a avea într -un program definiții cu nume identic, dar situate
în alte Namespa ces.

3.3.2 Părțile componente ale unei aplicații C #

Un limbaj de programare este compus dintr -o serie de cuvinte cheie care au
semnificații speciale. Un program folosește aceste cuvinte alături de alte cuvinte adiționale
și simboluri într -o formă organizată. Un progra m C# poate include următoarele:
 Spații;
 Cuvinte cheie C#;
 Lirerali;
 Indicatori.

Tipurile de date ale limbajului C# sunt:
 Tipuri valoare:
 Tipul simple: byte, char, int, float, etc.;
 Tipul enumerare: enum;
 Tipul structură: struct.
 Tipuri referință:
 Tipul interfață: interface;
 Tipul delegat: delegate;
 Tipul tablou: array.
Printre cuvintele cheie utilizate de limbajul C#, se numără: bool, byte, catch,checked,
class, decimal, double, else, false, for, float, foreach, object, new, private, public, reado nly,
string, try, unchecked, using, void, etc.

Un operator poate fi definit ca fiind un simbol care indică acțiunea pe care o
efectuează.

32
Operatorii care se folosesc în C# sunt prezentați în tabelul următor, astfel:

Tabelul 7. Operatorii C#
Sursa: docs.microsoft.com

TIPUL OPERATORI
Primar ( ) [ ] x++ x – typeof checked unchecked sizeoff new
Unar + – ! +x -x true false
Multiplicativ * / %
Aditiv + –
De deplasare << >>
Relațíonal < > <= >= is as
De egalitate = !=
AND (Și) logic &
OR (Sau) logic ^ |
AND (Și) condițional &&
OR (Sau) condițional | |
Condițional ?:
De atribuire = *= += -= &= <<= >>= |=

33
CAPITOLUL IV. PROIECTAREA SI REALIZAREA BAZEI DE DATE

Voi începe prin a prezenta o scurtă definiție a bazei de date, care reprezintă un set de
date sau de informații, stocate într -un mod organizat. Altfel spus, dacă ar fi să transpunem
această definiție într -un exemplu concret, aș considera baza de date ca fi ind un magazin în
care toate produsele sunt așezate pe rafturi și pe raioane, în funcție de sortiment, pentru a
putea fi găsite cu ușurință.

Pentru a putea crea baza de date de care voi avea nevoie mai târziu în cadrul aplicației
informatice, am utilizat programul SQL Management Studio.

Am început prin a crea o nouă bază de date, denumită Employees, în care am întocmit
6 tabele care îmi vor fi de folos pe parcurs, pentru a putea gestiona și executa comenzile de
care voi avea nevoie.

Figura 11. Crearea noii baze de date
Sursa: prelucrare proprie

După ce am trecut de această etapă, suntem nevoiți să îi oferim bazei de date un nume
reprezentativ, în cazul meu Employees, lucru ce poate fi observat cu uș urință în imaginea de
mai jos:

34
Figura 12. Baza de date, cu denumirea Employees
Sursa: prelucrare proprie

Odată întocmită baza de date Employees, trecem la următorul pas, și anume crearea
tabelelor de care vom avea nevoie pentru a stoca informațiile necesare aplicației informatice.
Un tabel nu rep rezintă altceva decât un anumit fișier cu o structură bine definită, care poate
conține date de un anumit tip.
De asemenea, toate tabelele sunt alcătuite din mai multe coloane, fiecare coloană
având asociat un anumit tip de date, care se referă în mod direct la conținutul coloanei
respective. Spre exemplu, voi avea nevoie de o coloană denumită DateOfBirth, adică data
nașterii, astfel că această coloană va utiliza date de tip datetime.

Fiecare linie sau rând din tabel reprezintă o înregistrare. Spre ex emplu, în tabelul
Candidates am realizat o înregistrare în funcție de tipurile de date cerute de colo anele
tabelului: ID_Candidate ( int), FirstName (nvarchar), LastName (nvarchar), DateOfBirth
(datetime) etc.

Printre tabelele necesare realizării sistemulu i informatic se numără : tabelul
Candidates (candidați/angajați), SignIn (referitor la datele de autentificare în cadrul
aplicației), Questions (întrebările la care vor răspunde candidații), etc. În imaginea de mai
jos se pot observa toate cele 6 tabele cr eate în cadrul bazei de date Employees:

35

Figura 13. Tabelele create
Sursa: prelucrare proprie

Așadar, pentru a crea un tabel, dăm click dreapta pe folderul Tables care s -a creat
automat odată cu baza de date Employees, după care selectăm opțiunea New Table .
Figura 14. Crearea unui tabel în baza de date Employees
Sursa: prelucrare proprie

Primul tabel pe care l -am creat este tabelul dbo.Candidates , pe care îl voi prezenta mai
detaliat în imaginea ce va urma. Am setat ca și cheie primară coloana ID_Candidate. Primary
key sau cheia primară reprezintă acea coloană a unui tabel relațional care identifică în mod
unic una sau mai multe coloane în toate l iniile unui tabel. De asemenea, dbo.Candidates
conține și o cheie străină care f ace legătura cu tabelul dbo. SignIn.

36
Ca și o scurtă definiție, Foreign Key sau cheia străină stabilește o relație între o cheie
primară și o cheie unică, în același tabel sau în tabele diferite.
Tabela dbo.Candidates a bazei de date Employees va conține informații utile
referitoare la personalul angajat din cadrul băncii BRD – Groupe Société Gé nérale , stabilind
pentru fiecare informație în parte tipul de date adecvat. Aici ne referim la informații
personale, cum ar fi data nașterii, adresa, CNP, postul ocupat în cadrul companiei,
departamentul din care face parte, etc.

Figura 15. Setare cheie pri mară și stabilire tipuri de date
Sursa: prelucrare proprie

Pentru a putea crea o cheie primară, este necesar să apăsăm click dreapta pe
ID_Candidate, după care să optăm p entru opțiunea Set Primary Key .

Figura 16. Setare cheie primară
Sursa: prelucrare proprie

37
Tabelul dbo.SignIn deține informații extrem de utile referitor la autentificarea
angajatului/candidatului în cadrul aplicației informatice pe care o voi î ntocmi, și anume
Username -ul (sau numele de utilizator ), rolul pe care îl are în firmă și bineînțeles parola.

Acest tabel relaționează cu tabelul dbo.Candidates prin intermediul cheii primare
ID_SignIn, care se leagă de cheia străină ID_SignIn din cadrul celuilalt tabel menționat
anterior.

Totoda tă, acest tabel conține și informații referitoare la rolul întregului personal din
cadrul firmei , fie că vorbim despre un admin, fie despre un angajat.

Figura 17. Tabelul dbo.SignIn
Sursa: prelucrare proprie

Tabelul dbo.Questions a fost conceput pentru a stoca date referitoare la întrebările la
care fiec are candidat în parte va trebui să răspundă, pe baza cărora vor obține un anumit
punctaj care va fi cu antificat ulterior . După cum veți putea observa în figura de mai jos, acest
tabel conține și coloana Image, pentru care vom alege ca și tip de date imagine (image).

Figura 18. Tabelul dbo.Questions
Sursa: prelucrare proprie

38
Tabelul dbo.Quizes face referire la testele pe care cand idații le vor parcurge, un quiz
însemnând o colecție de întrebări care formează defapt acel test și care sunt stocate în tabelul
prezentat anterior. Pe lângă acestea, tabelul mai conține informații referitoare la valoarea
maximă pe care un candidat o poate obține, pe care o vom seta mai târziu (acea stă valoare
va reprezenta defapt nota cea mai mare pe care angajatul o va putea obține în urma rezolvării
corecte a testului, în cazul nostru 100).
Figura 19. Tabelul dbo.Quizes
Sursa: prelucrare proprie

Tabelul dbo.Choices se referă la variantele de răspuns de care dispune fiecare întrebare
în parte, tabel care va conține câmpuri cum ar fi: ChoiceText (textul variantei de răspuns),
IsCorrect (corectitudinea variantei respective) și bineînțeles punctajul aferent fiecărei
variante, suprins prin intermediul coloanei Value . Astfel, dacă varianta de răspuns este
corectă, coloana Value va fi completată cu punctajul stabilit de către examinator, în caz
contrar aceasta va fi 0. De asemenea, putem observa că în tabela dbo.Choices avem o cheie
străină ID_Question care este relaționată cu tabela dbo.Questions.

Figura 20. Tabelul dbo.Choices
Sursa: prelucrare proprie

39
Ultimul tabel, respectiv dbo.Results , este tabelul în care vor fi stocate rezultatele
testelor care vor fi completate de fiecare angajat în parte și care ne va oferi informații pe
baza cărora ulterior vom realiza o serie de interpretări în cadrul aplicației informatice.
Fiecare angajat va av ea un punctaj aferent testului pe care l -a parcurs, punctaj care constituie
defapt nota pe care acesta a obținut -o și care va fi salvat în baza de date, pentru a se putea
ține o evidență cât mai clară și mai concisă a performanțelor și a evoluției personal ului.

Figura 21. Tabelul dbo.Results
Sursa: prelucrare proprie

Odată create toate cele 6 tabele de care voi avea nevoie, următorul pas îl constituie
realizarea diagramei bazei de date, prin intermediul căreia vom crea legături între tabele .
Figura 22. Crearea diagramei bazei de date Employees
Sursa: prelucrare proprie

40

Figura 23 . Adăugarea tabelelor în cadrul diagramei
Sursa: prelucrare proprie
Figura 24. Diagrama bazei de date Employees
Sursa: prelucrare proprie

Imediat ce am finalizat crearea bazei de date, împreună cu tabelele necesare și
diagrama aferentă, vom începe să populăm și să completăm fiecare tabel cu înregistrări,
pentru ca mai apoi să putem transfera proiectul în Visual Studio și să modelăm intrerfața
grafică a ap licației informatice.

41
CAPITOLUL V. REALIZAREA FERESTRELOR APLICAȚIEI ȘI
PREZENTAREA MODULUI DE LUCRU

Pentru ca aplicația în Visual Studio să poată fii realizată , trebuie să deschidem
programul iar mai apoi să alegem op țiunea New Project din meniul File. Acest lucru va crea
în cadrul mediului de dezvoltare Visual Studio un nou proiect, care va reprezenta aplicația
informatică pe care am realizat -o. Figura de mai jos reprezintă fereastra de dialog în care
selectăm Windows Forms Application, pentru a crea o interfață cu utilizatorul.

Figura 25. Crearea formei Windows
Sursa: prelucrare proprie

Figura 26. Forma Windows principală FormStart
Sursa: prelucrare proprie

42

După cum putem observa în figura de mai sus, în urma creării proiectului , acesta va
conține o formă Windows care pentru mine va reprezenta forma principală din care se vor
ramifica celelalte forme, așadar va primi denumirea de FormStart .

Compilarea programului se execută cu ajutorul opțiunii Build Solution , în timp ce
rularea acestuia se realizează cu ajutorul opțiunii Start Debugging. Componentele vizuale
ale aplicației pot fi prelucrate în modul Designer pentru a plasa noi obiecte și pentru a stabili
proprietăț ile lor. ToolBox -ul conține controale standard dar și com ponente utilizat e în crearea
aplicației Windows. Gruparea c ontroale lor din ToolBox este prezentată în figura următoare:

Figura 27. Controalele ToolBox
Sursa: prelucrare proprie

43
Pasul următor este foarte important deoarece prin intermediul său vo i importa baza de
date creată în SQL Management Studio în cadrul proiectului meu . Astfel, îmi voi indrepta
atenția asupra panoului Server Explorer , acolo unde voi apăsa click dreapta pe câmpul Data
Connections , voi adăuga o nouă conexiune și voi alege conexiunea de care am nevoie, în
cazul meu cu baza de date Employees. Vom realiza un test pentru a putea observa dacă noua
conexiune s -a realizat cu succes, prin apăsarea butonului Test Connection .

Figura 28. Adăugarea unei noi conexiuni
Sursa: prelucrare proprie
Figura 29. Alegerea conexiunii
Sursa: prelucrare proprie

44
Următorul pas contribuie la utiliz area tehnologiei LINQ to SQL, care realizează defapt
o mapare de la modelul relațional la cel obiectual. Așadar, odată ce am stabilit conexiunea
cu baza de date Employees, mă voi întoarce în panoul Solution Explorer , acolo unde va
trebui adăuga t la proiect un nou item de tip LINQ to SQL Classes , astfel: click dreapta pe
proiect – Add new item – LINQ to SQL classes.

Figura 30. Crearea item -ului de tip LINQ to SQL Classes
Sursa: prelucrare proprie

Această tehnologie este extrem de utilă deoarece prin utilizarea acesteia se vor crea
automat atât clasele necesare cât și contextul de date, pornind de la baza de date realizată în
SQL Management Studio.

Figura 31. Diagrama Employees
Sursa: prelucrare proprie

45
După ce am adăugat item -ul de tip LINQ to SQL Classes, îl vom deschide, iar pe planșa
de Design a modelului se vor ”trage” datele cu mouse -ul (drag -and drop ) și se vor adăuga
tabelele necesare din panoul Server Explorer , obținând în ace st fel întreaga diagramă a bazei
de date Employees în proiectul Visual Studio, lucru pe care îl putem observa în figura
prezentată anterior.

În acest moment, baza de date Employees este importată cu succes în cadrul proiectului
Visual Studio. Atenția mea se va îndrepta asupra interfeței grafice cu utilizatorul, adică la
aspectul formelor Windows ce vor alcătui într -un final aplicația informatică.

Cum spuneam, FormStart .cs va constitui forma centrală, din care se vor putea accesa
alte forme, în funcție de acțiunile pe care vom dori să le realizăm în cadrul aplicației.

Figura 32. Forma principală FormStart
Sursa: prelucrare proprie

Această formă conține mai multe butoane prevăzute cu evenimentul click, în așa fel
încât la apăsarea fiecaruia dintre ele, aplicația să ne conducă la o altă pagină creată. Așadar,
butonul Angajați ne va conduce către o fereastră special creată pentru afișa rea personalului
angajat din baza de date Employees, butonul Teste de evaluare este destinat testelor pe care
utilizatorul le va putea parcurge, etc. Cele două label -uri, Signed -in as și Status , vor indica

46
numele întreg al utilizatorului care a realizat autentificarea, dar și rolul pe care acesta îl are
în cadrul aplicației: admin și angajat.
După cum se poate observa însă din imaginea de mai sus, aceste butoane au o nuanță
de gri, adică toate butoanele sunt dezactivate, atâta timp cât nu s -a realizat autentificarea.
Singurul buton disponibil este butonul de Sign -In, care va deschide o fereastră nouă ce îi
oferă posibilitatea utilizatorului să introducă username -ul și parola. Dacă procesul de
autentificare va fi realizat cu succes, atunci butoanele vor deveni active iar userul va putea
interacț iona cu aplicația . Codul funcției de autentificare este prezentat în Anexa 1.

De asemenea, nu toți utilizatorii vor putea avea acces total la aplicație. Întregul
person al este diferențiat de către administratorul aplicației, care va putea gestiona în totalitate
sistemul informatic. Astfel, există 2 categorii: admin și angajat. În timp ce admin -ul va putea
accesa toate paginile puse la dispoziție de acest program, angajat ul va fi restricționat , adică
nu i se va permite să aducă modificări bazei de date (adăugare, ștergere, modificare).

Cea de -a doua fereastră creată este fereastra FormSignIn.cs , care face conexiunea la
baza de date, preia datele introduse în aplicație și le salvează în baza de date creată în SQL.
Pentru această fereastră am introdus din ToolBox un picturebox în care am introdus logo -ul
băncii BRD , două label -uri pe care le -am folosit pentru datele de autentificare (username și
password), un textbox pen tru a introduce numele utilizatorului și un maskbox pentru a
masca parola. Pe lâ ngă instrumentele enumerate anterior , această fereastră mai conține și
două butoane, respectiv: butonul buttonSignIn care permite accesul la aplicație cu condiția
ca utilizatorul introdus să existe și sa cor espundă cu cel din baza de date și butonul
buttonHome suspendă accesul și anulează autentificarea.

Figura 33. Aspectul ferestrei FormSignIn
Sursa: prelucrare proprie

47
Odată realizată autentificarea, vom fi redirecționați din nou către pagina principală,
acolo unde am utilizat 4 label -uri, care vor afișa pe de o parte numele întreg al utilizatorului
care s -a logat în aplicație, pe de altă parte statu sul pe care îl are (aici vorbim despre admin
sau an gajat). Totodată, butonul Sign-In, care avea aferent evenimentul de logare, acum va fi
destinat pentru delogarea utilizatorului autentificat.

Figura 34. Fereastra principală înainte și după logare
Sursa: prelucrare proprie

În concluzie , fereastra FormStart este un meniu care cuprinde toate formele vizuale
ale aplicației, codul sursă cuprinde toate evenimentele care se produc la apasarea unui buton,
pozitionarea tuturor labelu rilor, textbox urilor și imaginilor , etc.

Referitor la aspectul ferestrelor, butoanelor, label -urilor, la aranjarea și dimensionarea
acestora, la fontul și culorile utilizate, dar și la alte detalii de design, toate acestea pot fi
găsite în sursa de cod a programului .

La apăsarea butonului Angajați din forma principală va putea fi accesată fereastra
ShowEmployees , care va conține informații referitoare la toți angajații existenți în baza de
date Employees, de la datele personale, până la detalii legate de postul pe care îl ocupă în
cadrul co mpaniei. Pentru acest lucru am utilizat un datagridview care conține tabelul
Candidates cu toți angajații din firma BRD. Realizarea acestor pași se face prin adăugarea
unei noi surse de date la forma în care se dorește afișarea, astfel: accesăm tabloul Data
Sources , facem click pe Add new Data Source , alegem tipul sursei de date ca fiind Object ,
după care selectăm obiectul de care avem nevoie, în cazul meu Candidates .

48

Figura 35. Crearea unei surse de date de tip Object
Sursa: prelucrare proprie

Figura 36. Selectarea obiectului Candidates
Sursa: prelucrare proprie

49
CAPITOLUL VI. MODUL DE LUCRU AL APLICAȚIEI
INFORMATICE

Această aplicație informatică a fost concepută cu scopul de a facilita munca
persoanelor din departamentul de resurse umane, în ceea ce privește evidența și testarea
personalului angajat . Conform studiului de caz întocmit și pe baza datelor culese, pare destul
de dificil să poți ține evidența personalului din cadrul unei multinaționale , în situația de față
BRD – Groupe Société Générale .

Astfel, am ales ca această aplicație să poată realiza următoarele:
1. Să țină evidența tuturor angajaților din cadrul BRD – Groupe Société Générale ;
2. Să permită administratorului gestionarea și să modificarea testelor, întrebărilor și
variantelor de răspuns pe care fiecare angajat va fi nevoit să le parcugă;
3. Să ofere utilizatorului un mediu interactiv și usor de manipulat atunci când vine vorba
de accesarea unui test și de rezolvarea acestuia;
4. Să permită afișarea scorului obținut de candidatul respectiv în urma rezolvării
testului;
5. Să ofere posibilitatea salvării rezultatelor obținute în baza de date, pentru a reuși să
se țină o evidență cât mai riguroasă;
6. Să afișeze la finalul testului toate răspunsurile pe care utilizatorul le -a aco rdat, pe
baza cunoștințelor acumulate;
7. Să permită administratorului adăugarea sau ștergerea personalului, în funcție de
angajări sau demisionări;
8. Să permită administratorului modificarea datelor personale aferente fiecărui angajat,
fie că vorbim despre sch imbarea numelui, a domiciliului, etc.;
9. Să ofere posibilitatea filtrării angajaților după nume, pentru a oferi acces mult mai
ușor la date și pentru a reduce timpul necesar căutării;
Cum spuneam și în capitolul anterior, fereastra formStart este punctul principal al
aplicației informatice pe care am intocmit -o, din care vor putea fi accesate toate celelalte
ferestre, în funcție de necesități.

50
Accesul la toate facilitățile oferite de către sistemul informatic se bazează pe procesul
de autentificare al utilizatorului, care nu va putea să acceseze nimic până când nu se va loga
la aplicație. Vom remarca faptul că fiecare utilizator are atribuite anumite drepturi, în funcție
de rolul prestabilit în cadrul bazei de date. Există două tipuri d e utilizatori, și anume:
admin ul, adică cel care va avea drepturi depline la aplicația informatică, respectiv angajatul,
care va putea accesa doar o anumită parte a programului, fără să i se confere dreptul de a
realiza modificări în rândul personalului (c um ar fi ștergere, adăugare) sau să gestioneze
testele. Altfel spus, odată ce un utilizator cu rol de angajat se va loga, butoanele Angajați și
Editare teste vor fi dezactivate (buttonEmployees.Enabled = false). Funcția pentru activare
a butoanelor este pr ezentată în Anexa 2.

Figura 37 . Forma principală în urma logării unui ut ilizator cu drepturi de angajat
Sursa: prelucrare proprie

Fereastra Form EmployeesDisplay este acea fereastră care îi va oferi administratorului
drepturile de a vizualiza , modifica și șterge unul sau mai mulți angajați, asta pentru a reuși
să țină o evidență cât mai p recisă a situației personalului legată de angajări, concedieri sau
modificări ale datelor personale. Fiecare eveniment este asociat unui buton existent în bara
Data Bindin g Navigator . Aspectul paginii EmployeesDisplay poate fi observat în figura de
mai jos:

51

Figura 38 . Aspectul ferestrei FormEmployeesDisplay
Sursa: prelucrare proprie

În urma realizării acțiunilor enumerate anterior, la apăsarea butonului salvare va apărea
un messageBox, de forma:

Figura 39 . Mesaj la salvarea modificărilor realizate
Sursa: prelucrare proprie

Butonul Detalii angajat ne va conduce spre o nouă fereastră care va afișa fiecare
angajat sub formă d e detalii, formă care ne va oferi o imagine mult mai detaliată, de
ansamblu, a informațiilor aferente fiecărui individ, precum și posibilitatea de a modifica
datele personale ale acestuia, fie că vorbim despre schimbarea numelui, fie despre
modificarea adresei , etc.

52
Pe lângă acestea, am m ai adăugat un textbox și un buton care vor face posibilă filtrarea
angajatului după numele său, pentru a ne fi mult mai ușor de a căuta în baza de date, dar și
un buton care va salva toate modificările realizate. Design -ul aceste forme Windows poate
fi observat în figura de mai jos:

Figura 40 . Aspectu l ferestrei FormModifyEmployees
Sursa: prelucrare proprie

La apăsarea butonului Editare teste din fereastra principală FormStart , vom fi trimiși
spre o nouă fereastră care va putea fi accesată doar de c ătre utilizatorii care au rol de admin.
Acești utilizatori vor putea gestiona și manipula prin intermediul paginii FormEditQuiz
testele pe care angajații le vor parcurge, altfel spus vor putea adăuga/șterge/modifica atât
testele cât și întrebările și răspunsurile aferente fiecărui test. Forma care permite gestionarea
testelor și a întrebărilor, respectiv FormEditQuiz, funcționeaz ă după același principiu cu
forma EmployeesDisplay .
Pentru ca acest lucru să fie posibil am avut nevo ie și de această data de o sursă de date,
în acest caz făcând trimitere la tabelul Quizes al bazei de date și implicit la celelalte tabele
cu care este legat, respectiv Questions și Choices . La fel ca și în cazul precedent, datele sunt
încărcate automat din baza de date prin intermediul metodei private LoadData(), pentru care
s-a utilizat structura try -catch. Codul funcției LoadData() și SaveData() este prezentat în
Anexa 3.

53

Figura 41. Aspectul ferestrei FormEditQuiz
Sursa: prelucrare proprie

La apăsarea butonului Începe testul din pagina de start, vom ajunge la o nouă fereastră
care conține butonul aferent testului pe care un angajat îl va putea parcurge. Astfel, la
evenimentul click al butonului Test, se va deschide o nouă pagină care va conține colecția
de întrebări care alcătuiește testul cu ID_Quiz = 1, lucru care este specificat în cod.
Ca o analogie , dacă vom schimba în cod ID_Quiz = 2, atunci la apăsarea butonul ui
Începe testul , vom fi redirecționați către aceeași pagină cu întrebări, care va afișa de această
dată întrebările corespunzătoare testului cu ID_Quiz = 2 .

Figura 42 . Aspectul ferestrei FormQuizes
Sursa: prelucrare proprie

54
Așadar, când candidatul va apăsa butonul specificat anterior , aplicația va deschide
forma Windows FormQuestions, care va afișa o colecție de butoane, fiecare buton în parte
conținând o anumită întrebare. Dacă acesta va dori să răspundă la întrebarea 1, atunci va fi
nevoit să apese butonul buttonQ1, etc. După cum puteți observa în figura de mai jos, în
partea dreaptă a paginii am extras din sursa de date sub formă de label câteva detalii privind
utilizatorul care a accesat testul. Așadar, aceste label -uri ne vor in dica numele persoanei
respective și ID -ul său.

Figura 43 . Aspectul ferestrei FormQuiz
Sursa: prelucrare proprie

Pentru ca FormQuiz să gestioneze o colecție de întrebări citite din baza de date, avem
nevoie de un context de date, adică de folosirea tehnologiei LINQ to SQL, pentru acces la
baza de date. În acest fel, toate datele stocate în cadrul bazei de date vor fi disponibile în
proiectul Visual Studio. Codul aferent afișării întreb ărilor este prezentat în Anexa 4 .

Figura 44 . Aspectul ferestrei FormQuestions
Sursa: prelucrare proprie

55
Figura anterioară ne arată aspectul ferestrei care afișeaza întrebările testului. Pentru
fiecare variantă de răspuns s -au utilizat butoanele radio (radiobutton), care permit bifarea
unui singur răspuns, astfel că fiecărui buton în parte i s -a atribuit o anumită variantă. Dacă
utilizatorul va apăsa butonul OK, care este acordul pentru preluarea răspunsului, se preia
răspunsul dat de către utilizator din CandidateAnswer. La apăsarea butonului Cancel,
CandidateAnswer = null iar răspunsul nu va fi preluat.

Dacă vom face click pe butonul Salvare rezultate , vom fi înștiințați dacă procesul de
salvare s -a realizat cu succes printr -un messagebox pe care îl voi prezenta în figura de mai
jos:

Figura 45 . Messagebox -ul de salvare reușită a datelor
Sursa: prelucrare proprie

Odată parcurse toate întrebările, butonul Finalizare test va fi cel care va culege toate
răspunsurile candidatului și le va cuantifica, formând astfel un scor care va constitui
punctajul final la testul respectiv. Afișarea acestui scor se va face prin utilizarea unui label
numit labelScore , căruia i se va atribui v aloarea totală obținută de utilizator.
De asemenea, odată ce acest buton a fost apăsat, vor mai apărea încă două butoane:
butonul buttonShowResults , care permite afișarea răspunsurilor date de utilizator într -o listă
de tip gridview și butonul buttonSaveR esults , care va salva răspunsurile în baza de date.

Figura 46 . Aspectul formei FormQuiz după apăsarea butonului Finalizare test
Sursa: prelucrare proprie

56

După cum am amintit și mai sus, apăsarea butonului Afișare rezultate va face ca
această formă să se extindă și să afișeze răspunsurile pe care utilizatorul le -a acordat în cadrul
testului, pentru acest lucru utilizându -se un split container, care conține două panel -uri: cel
care alcătuiește fereastra prezentată mai sus, re spectiv cel care va afișa răspunsurile. Codul
forme i Quiz este prezentat în Anexa 5 .

Figura 47 . Fereastra FormQuiz după afișarea rezultatelor
Sursa: prelucrare proprie

Așadar, ierarhia care stă la baza acestei părți a aplicației este următoarea:
 Fereastra FormQuizes , care este punctul de pornire al unui anumit test, reprezintă o
colecție de teste;
 Fereastra FormQuiz , din care se ramifică tipurile de teste existente, nu este altceva
decât o colecție de întrebări;
 Fereastra FormQuestions , care afiș ează colecția de întrebări a testului ales.

Figura 48 . Aspectul ferestrei FormInfo
Sursa: prelucrare proprie

57
Revenind la pagina principala FormStart, în urma apăsării butonului Info, vom
deschide o pagină nouă care, după cum spune și denumirea butonului, ne va furniza anumite
informații generale cu privire la activitatea companiei BRD – Groupe Société Générale .

58
CAPITOLUL VII. CONCLUZII ȘI PROPUNERI

În urma parcurgerii și îndeplinirii scopului și obiectivelor prezentare anterior în
Capitolul II, am ajuns la următoarele constatări și concluzii referitoare la compania bancară
BRD –Groupe Société Générale .
Pentru a putea identifica nevoile referitoare la activi tatea de pregătire, perfecționare
și testare a angajaților din cadrul BRD , a fost nevoie de întocmirea unui studiu de caz pe care
am încercat să îl realizez în așa fel încât să scot în evidență toate detaliile referitoare la aceste
activități. Deși compani a este o multinațională, care are filiale pe întreg teritoriul României,
mi-am îndreptat atenția asupra filialei de la Baia Mare, dat fiind faptul că numărul de angajați
la nivel national este unul foarte ridicat.
Odată ce am reușit să culeg toate informa țiile necesare întocmirii studiului de caz, am
identificat tehnilogiile pe care le-aș putea folosi pentru realizarea aplicației informatice,
astfel încât toate cunoștințele dobândite de -a lungul anilor universitari să poată fi aplícate cu
ușurință. Astfel, î n cadrul cur surilor parc urse în timpul facultăți , am studiat tehno logiile
Visual Studio, .NET Framework și Microsoft SQL Server. Am ales folosirea acest or
tehnologii deoarece se pliază extrem de bine cu scopul pentru care a fost conceput sistemul
informatic . Așadar, p entru a implementa soluția aleasă, am folos it Microsoft Visual Studio
2015 și Microsoft SQL Server 2012.
Deși a fost întocmită pentru compania BRD –Groupe Société Générale , această
aplicație informatică poate fi aplicată în domeniul e conomic în cadrul oricărei firme sau
întreprinderi care are în subordine un număr mai ridicat de angajați, ajutând în acest mod la
organizarea mult mai eficientă a firmei respective.
Sunt de părere că aplicația realizată pentru testarea angajaților BRD con stituie un
avantaj pentru companie și că poate eficientiza activitatea organizației deoarece pentru
obținerea unui profit semnificativ este nevoie de angajați bine pregătiți, capabili să se
adapteze locului de muncă oferit. Așadar, de fiecare dată când con ducerea va considera că
este necesară o reevalu are a cunoștințelor angajaților sau de ce un testarea noilor cunoștințe
acumulate în urma programelor de dezvoltare, această aplicație poate reprezenta soluția cea
mai optimă. Pe lângă faptul că fiecare candid at va fi testat, toate rezultatele obținute în urma
parcurgerii testelor vor fi stocate în baza de date și vor putea fi accesate ulterior, existând și

59
posibilitatea de a realiza anumite rapoarte și diagrame pentru a putea observa evoluția
personalului anga jat pe o anumită perioadă de timp. Totodată, aplicația poate veni în ajutor
și în momentul în care compania dorește să angajeze sau să promoveze pe cineva, deoarece
în acest fel, departamentul de resurse umane va putea observa extrem de ușor care este
cand idatul care a obținut cel mai mare punctaj și implicit care deține cunoștințele necesare
ocupării postului respectiv.
În pofida acestui fapt însă, condsider că s -ar putea realiza o serie de îmbunătățiri asupra
aplicației deja existente. Una dintre aceste propuneri ar fi la nivelul testelor, acolo unde s -ar
putea alege o serie de întrebări cu mai multe variante de răspuns corecte . În acest fel, fiecare
variantă corectă va avea asociat un anumit procent din punctajul total al întrebării, așadar
dacă candidat ul va bifa două din cele trei variante de răspuns corecte, va primi doar o parte
din valoarea totală a întrebării. Acest lucru ar putea crește dificultatea testelor și ar putea
ajuta personalul din cadrul departamentului de resurse umane să facă alegerea p otrivită în
ceea ce privește promovarea/angajarea unei anumite persoane.
După cum am amintit și mai sus, s -ar putea adăuga o nouă fereastră, menită să afișeze
anumite rapoarte și grafice care să scoată în evidență evoluția unui anumit angajat, pe o
perioa dă de timp determinată. Acest lucru ar oferi o vizualizare de ansamblu asupra
activității angajatului respectiv și astfel s -ar putea stabili dacă are nevoie de anumite
programe sau cursuri pentru perfecționare.

60
BIBLIOGRAFIE

1 ANSI/ISO/I EC International Standard (1999), Database Language SQL , disponibil
la http://web.cecs.pdx.edu/~len/sql1999.pdf , accesat la 15.05.2017
2 BRD – Group Societe Generale (2017) , disponibil la https://www.brd.ro/despre –
brd/noutati -si-presa/ultimele -noutati , accesat la 18.05.2017
3 C. Leither, D. Wood, M. Cierkowski, A. Boettger (2009) “Beginning Microsoft SQL
Server 2008 Administration” editura WROX
4 Chris, F. (2004) Visual Quick Start Guide , Editura ALL, București
5 Galeș C. (2015), Microsoft Visual Studio, disponibil la
http://www.math.uaic.ro/ ~mapetrii/POO/deposit/Curs7.pdf , accesat la 17.05.2017
6 Galeș C. (2013), Programare C# , disponibil la
http://www.math.uaic.ro/ ~cgales/csharp/Curs1.pdf , accesat la 17.05.2017
7 HR Club (2015), Proiect de formare și dez voltare profesională , disponibil la https://hr –
club.ro/en/descriere -candidati/2593 , accesat la 23.05.2017
8 Ioniță C . (2014), Tutoriale C# – Prezentarea limbajului , disponibil la http://www.code –
it.ro/tutorial -c-prezentarea -limbajului/ , accesat la 18.05.2017
9 Microsoft MSDN (2017) , C# Programming Guide , disponibil la
https://msdn.microsoft.com/en -us/library/67ef8sbd(v=vs.100).aspx , accesat la
18.05.2017
10 Microsoft MSDN (2017) , Operators (C# Programming Guide) , disponibil la
https://docs.microsoft.com/en -us/dotnet/csharp/programming -guide/statements –
expressions -operators/operators , accesat la 27.05.2017
11 Rădulescu F. (2013), Introducere în SQL , disponibil la
http://cursuri.cs.pub.ro/~radulescu/bd/sql7/oracle2.html , accesat l a 15.05.2017
12 Scripcariu L. (2006), Limbajul SQL , disponibil la
http://telecom.etc.tuiasi.ro/telecom/staff/lsc ripca/discipline%predate/SQL.pdf , accesat
la 20.05.2017
13 Sirbu J. , (2011), Formarea și pregătirea profesională , disponibil la
http://mail.ubv.ro/~janeta.sirbu/MMC3_4.pdf , accesat la 10.05.2017
14 Toader, C. (2016 ), Programarea aplica țiilor Windows, suport de curs (electronic),
CUNBM – Centrul Universitar de Nord Baia Mare, Facultatea de Științe

61
ANEXE

ANEXA 1. Codul func ției Sign-In

private void SigninUser()
{
FormSignIn f = new FormSignIn ();
f.ShowDialog();

isUserConnected = true;

if (f.DialogResult == DialogResult .Cancel) return;

SignIn user = null;

string username = f.Username;
string password = f.Password;

if(username != "" && password != "")
{
EmployeesDataContext context = new EmployeesDataContext ();

var query = from u in context.SignIns
where u.Username == username && u.Password == password
select u;
user = query.FirstOrDefault();

if(user != null)
{
isUserConnected = true;
this.ID_Candidate = user.ID_Candidate.GetValueOrDefault();

buttonSignIn.Text = "Sign-out";
userRole = user.Role;
realName = user.RealName;
labelUsername.Text = realName;
labelRole.Text = userRole;
ActivateButtons(isUserConnected);
}
else
{
isUserConnected = false;

string message = "Datele de autentificare au fost introduse
gresit." ;
string caption = "Sign-in";
MessageBox .Show(message, caption, MessageBoxButtons .OK,
MessageBoxIcon .Error);
}
}
}

62
ANEXA 2. Codul fun cției de activare a butoanelor

private void ActivateButtons( bool enabled)
{
buttonInfo.Enabled = enabled;
buttonIesire.Enabled = enabled;
buttonQuizes.Enabled = enabled;

// butoanele Angajati si Editare teste raman inactive pentru
utilizatorii cu rol de angajat
if (string.IsNullOrEmpty(userRole) || userRole.ToLower() == "angajat" )
{
buttonEmployees.Enabled = false;
buttonEditQuiz.Enabled = false;
}
else
{
buttonEmployees.Enabled = enabled;
buttonEditQuiz.Enabled = enabled;
}
}

63
ANEXA 3. Funcția de încărcare și de salvare a datelor

private void LoadData()
{
try
{
var candidate = context.Candidates;

candidateBindingSource.DataSource = candidate;
}
catch (Exception ex)
{
// mesaj cu exceptia la incarcarea datelor
string message = ex.Message;
string caption = "Exceptie la incarcarea datelor" ;
MessageBox .Show(message, caption, MessageBoxButtons .OK,
MessageBoxIcon .Error);
}
}

private void SaveData()
{
try
{
candidateBindingSource.EndEdit();

context.Subm itChanges();

string message = "Modificarile au fost salvate cu succes." ;
string caption = "Salvarea datelor" ;
MessageBox .Show(message, caption, MessageBoxButtons .OK,
MessageBoxIcon .Information);
}
catch (Exception ex)
{
string message = ex.Message;
string caption = "Exceptie la salvarea datelor" ;
MessageBox .Show(message, caption, MessageBoxButtons .OK,
MessageBoxIcon .Error);
}
}

64
Anexa 4 . Codul ferestrei FormQuestions

public partial class FormQuestions : Form
{
private Question question;

public string QuestionText { get; set; }
public string CandidateAnswer { get; set; }
public bool IsCorrect { get; set; }
public decimal Score { get; set; }

public FormQuestions()
{
InitializeComponent();
}

public FormQuestions( Question question)
{
InitializeComponent();

this.question = question;
}

private void FormQuestions_Load( object sender, EventArgs e)
{
this.FormBorderStyle = FormBorderStyle .FixedSingle;
ShowQuestion();
labelScore.Visible = false;
}

private void ShowQuestion()
{
if (question != null)
{
questionBindingSource.DataSource = question;

// Se testeaza daca exista un raspuns corect nenul
if (string.IsNullOrEmpty(question.CorrectAnswer))
{
// Nu exista un raspuns corect in cadrul obiectului question
string message = "Nu este prevazut un raspuns cor ect.";
string caption = "Eroare" ;

MessageBox .Show(message, caption, MessageBoxButtons .OK,
MessageBoxIcon .Error);
}

// Se incarca variantele de raspuns in butoanele radio
if (question.Choices.Count > 0 && question.Choices[0] != null)
radioButton0.Text = question.Choices[0].ChoiceText;
else
radioButton0.Visible = false;

if (question.Choices.Count > 1 && question.Choices[1] != null)
radioButton1.Text = question.Choices[1].ChoiceText;
else
radioButton1.Visible = false;

65

if (question.Choices.Count > 2 && question.Choices[2] != null)
radioButton2.Text = question.Choices[2].ChoiceText;
else
radioButton2.Visible = false;

if (question.Choices.Count > 3 && question.Choices[3] != null)
radioButton3.Text = question.Choices[3].ChoiceText;
else
radioButton3.Visible = false;
}
}

private void EvaluareRaspuns()
{
// Se preia raspunsul dat d e candidat
CandidateAnswer = labelAnswer.Text;

QuestionText = question.QuestionText;
IsCorrect = false;
Score = 0;

// Se analizeaza raspunsul dat (Se compara cu raspunsul corect)
if (CandidateAnswer == question.CorrectAnswer)
{
IsCorrect = true;
Score = question.Value.Value;
}

// Se semnalizeaza in forma Windows punctajul
labelScore.Text = Score.ToStrin g();
}

66
ANEXA 5 . Codul ferestrei FormQuiz

public partial class FormQuiz : Form
{
EmployeesDataContext context;

List<Question > listOfQuestionsInDB;

List<Result> listOfOldResultsInDB;
List<Result> listOfNewResults;

int ID_Candidate = -1;
int ID_Quiz = -1;

// constructor implicit
public FormQuiz()
{
InitializeComponent();
}

// constructor specializat
public FormQuiz( int idCandidate, int idQuiz)
{
InitializeComponent();
this.ID_Candidate = idCandidate;
this.ID_Quiz = idQuiz;
}

private void FormTest_Load( object sender, EventArgs e)
{
labelScore.Visible = false;
buttonShowResults.Visible = false;
buttonSaveResults.Visible = false;
splitContainer1.Panel2Collapsed = true;

CreateContext();
LoadData();
}

private void CreateContext()
{
context = new EmployeesDataContext ();
}

private void LoadData()
{
// intrebarile la acest test sunt identificate prin ID_Quiz
// (ele nu depind de c andidat)
var queryQuestions = from q in context.Questions
where q.ID_Quiz == ID_Quiz
select q;

listOfQuestionsInDB = queryQuestions.ToList();

// candid atul este identificat prin ID_Candidate
var queryCandidate = from c in context.Candidates
where c.ID_Candidate == ID_Candidate
select c;

67

Candidate candidate = queryC andidate.FirstOrDefault();

if (candidate == null)
{
MessageBox .Show("Nu exista candidatul cu ID = " +
ID_Candidate.ToString() + "\n" +
"Nu se vor incarca datele." ,
"Eroare" , MessageBoxButtons .OK,
MessageBoxIcon .Error);
return;
}

candidateBindingSource.DataSource = candidate;

// raspunsurile candidatului curent la testul curent
// sunt identificate prin ID_Quiz si ID_Candidate

var queryResults = from r in candidate.Results
where r.ID_Quiz == ID_Quiz
select r;

listOfOldResultsInDB = que ryResults.ToList();

resultsBindingSource.DataSource = listOfOldResultsInDB;

// se copiaza vechile raspunsuri intr -o lista separata
List<Result> copyOfResults = new List<Result>();
foreach (Result r in listOfOldResultsInDB)
{
copyOfResults.Add(r);
}

// se sterg vechile raspunsuri din baza de date
foreach (Result r in copyOfResults)
{
resultsBindingSource.Remove(r);
context.Results.DeleteOnSubmit(r);
}

// se creeaza o lista de raspunsuri noi corespunzatoare listei de
intrebari
listOfNewResults = new List<Result>();

foreach (Question q in listOfQuestions InDB)
{
Result r = new Result();

r.ID_Candidate = ID_Candidate;
r.ID_Quiz = ID_Quiz;
r.ID_Question = q.ID_Question;
r.QuestionText = q.QuestionText;

//r.CandidateAnswer = null;
//r.IsCorrect = null;
//r.Score = null;

listOfNewResults.Add(r);
}

}

68
private void DisplayQuestion( int index)
{
//Din lista de intrebari se selecteaza Q1
Question q = listOfQuestionsInDB[index];

FormQuestions f = new FormQuestions (q);
f.ShowDialog();

if (f.DialogResult == DialogResult .OK)
{
// Se creeaza un nou obiect Result
Result r = new Result();

r.ID_Result = index;

r.ID_Candidate = this.ID_Candidate;

// valori care provin din detaliile intrebarii
r.ID_Quiz = q.ID_Quiz;
r.ID_Question = q.ID_Question;
r.QuestionText = q.QuestionText;

// valori care provin din forma Windows care a afisat intrebarea
r.CandidateAnswer = f.CandidateAnswer;
r.IsCorrect = f.IsCorrect;
r.Score = f.Score;

// Se adauga rezultatul in lista de rezultate
listOfNewResults[index] = r;
}
}

private void EndQuiz()
{
// Se dezactiveaza butoanele Q1, Q2 …
buttonQ1.Enabled = false;
buttonQ2.Enabled = false;
buttonQ3.Enabled = false;
buttonQ4.Enabled = false;
buttonQ5.Enabled = false;
buttonQ6.Enabled = false;
buttonQ7.Enabled = false;
buttonQ8.Enabled = false;
buttonQ9.Enabled = false;
buttonQ10.Enabled = false;

// Se calculeaza punctajul total
decimal total = 0;

foreach (Result r in listOfNewResults)
{
total = total + r.Score.GetValueOrDefault();
}

// se testeaza daca exista deja un set de raspunsuri date
if (resultsBindingSource.Count > 0)
{
string message = "Exista deja un set de rezultate. Doriti
actualizarea lor?" ;
string caption = "Confirmare" ;

69
DialogResult result = MessageBox .Show(message, caption,
MessageBoxButtons .YesNo, MessageBoxIcon .Question);

if (result == DialogResult .Yes)
{
List<Result> oldResults = new List<Result>();

// se preiau intr -o lista separata vechile rezultate
foreach (Result r in resultsBindingSource)
{
oldResults.Add(r);
}

// se sterg vechile rezultate
foreach (Result r in oldResults)
{
resultsBindingSource.Remove(r);
context.Results.DeleteOnSubmit(r);
}
}
}

// Se preiau noile rezultate in contextul de date
foreach (Result r in listOfNewResults)
{
resultsBindingSource.Add(r);
context.Results.InsertOnSubmit(r);
}

// Se afiseaza labelul cu punctajul total
labelScore.Text = total.ToString();
labelScore.Visible = true;

//se afiseaza butoanele de vizualizare si salvare a rezultatelor
buttonShowResults.Visible = true;
buttonSaveResults.Visible = true;
}

private void SaveData()
{
try
{
this.Validate();
candidateBindingSource.EndEdit();
resultsBindingSource.EndEdit();

//ChangeSet changeSet = context.GetChangeSet();
//int ch angeCount = changeSet.Inserts.Count +
changeSet.Updates.Count + changeSet.Deletes.Count;

context.SubmitChanges();

// mesaj cu exceptia la salvarea datelor
string message = "Răspunsurile au fost salvate in b aza de date." ;
string caption = "Salvare date" ;
MessageBox .Show(message, caption, MessageBoxButtons .OK,
MessageBoxIcon .Information);
}
catch (Exception ex)
{
// mesaj cu exceptia la salvarea datelor
string message = ex.Message;

70
string caption = "Exceptie la salvarea datelor" ;
MessageBox .Show(message, caption, MessageBoxButtons .OK,
MessageBoxIcon .Error);
}

}

private void ShowResultsPanel()
{
splitContainer1.Panel2Collapsed = !splitContainer1.Panel2Collapsed;

if (splitContainer1.Panel2Collapsed)
Size = new Size(800, 540);
else
Size = new Size(1200, 540);
}

Similar Posts