Sunteți pe pagina 1din 75

UNIVERSITATEA ECOLOGIC din BUCURETI

FACULTATEA DE INGINERIE MANAGERIAL I A MEDIULUI










PROIECT de DIPLOM


Sistem informatic pentru gestiune i
facturare

-Information System for products management and
invoicing-


Coordonator:

Prof. univ. dr. ing. Cristin BIGAN



Absolvent:
BTC (Anghel) Mirela




- 2013 -
1
CUPRINS
INTRODUCERE 2
CAPITOLUL 1 CONTABILITEA DE GESTIUNE 3
1.1. Definiia i structura stocurilor de gestiune 3
1.2. Evaluarea stocurilor 7
1.3.Contabilitatea analitic 16
CAPITOLUL 2 BAZE DE DATE Microsoft ACCESS PENTRU APLICATII DE
GESTIUNE
22
2.1. Noiuni teoretice generale de baze de date si particularizarea in Access 22
2.2. Utilizarea limbajului SQL 27
2.3. Limbajul de programare Microsoft Visual Basic 30
2.3.1 Interfee Visual Basic 32
2.3.2 Formulare 33
2.3.3 Fereastra de cod 33
2.3.4. Caseta cu instrumente 34
2.3.5. Controale 34
2.3.6. Metode 37
2.3.7. Evenimente 38
CAPITOLUL 3 PROGRAM DE GESTIUNE INTRARI, IESIRI, INTOCMIRE SI
EMITERE FACTURI
40
3.1. Cerinele informaionale generale ale temei proiectului 40
3.2.Proiectarea si realizarea structurii BAZEI DE DATE pentru aplicaia de gestiune 41
3.2.1 Tabele 42
3.2.2 Legturile dintre tabele 46
3.3. Utilizarea programrii in Visual Basic pentru realizarea interfeei grafice 48
3.3.1. Module de cod Visual Basic 48
3.3.2. Formulare 50
CAPITOLUL 4. CALCULE TEHNICO ECONOMICE PENTRU EVALUAREA
EFICIENEI SISTEMULUI INFORMATIC PROIECTAT SI REALIZAT
65
CAPITOLUL 5 CONCLUZII ASUPRA IMPLEMENTARII SISTEMULUI
INFORMATIC
72
BIBLIOGRAFIE 74
2
INTRODUCERE

Informaia i ndeosebi, informaia economic este astzi prezent n toate
domeniile de activitate, fiind un element indispensabil al progresului.
Realitile societii moderne ne arat c odat cu dezvoltarea economiei de
pia i sporirea gradului de complexitate a acesteia, trebuie s se dezvolte
corespunztor - ca arie, coninut i operativitate, i informaia economic, pentru ca ea
s poat furniza elementele necesare lurii deciziilor, s poat reflecta exact situaia
patrimonial a unitilor i rezultatele activitii economico-financiar.
Informaia economic ne ajut s observm modul de utilizare a resurselor
materiale i umane, s sesizm i s examinm critic aspectele pozitive, dar i
deficienele existente, n vederea msurilor ce se impun.
Valorificarea deplin a informaiei economice se poate realiza numai n cadrul
unui sistem informaional economic, conceput ca un ansamblu a mijloacelor i a
metodelor de obinere, stocare i utilizare a informaiilor ntr-un anumit domeniu al
activitii social-economice.
Programul realizat de mine vine n ntmpinarea dorinei de valorificare a
informaiei economice, fiind accesibil unei largi categorii de utilizatori, i pentru prima
dat acetia nu mai trebuie s fie contabili, sau s aib largi cunot ine de contabilitate
pentru a ine o evident. Programul este conceput ca un modul, cel de stocuri, n
cadrul unui program mult mai complex care va acoperi n final toate aspectele legate de
capitaluri, imobilizri, datorii i creane, trezoreria, cheltuieli i venituri.
innd seama de faptul c instrumentul principal de cunoatere, gestiune i
control al patrimoniului i al rezultatelor obinute de ctre agenii economici, este
contabilitatea, acest program vine ntrutotul n ntmpinarea tuturor acestor doleane.






3
CAPITOLUL 1



CONTABILITEA DE GESTIUNE



1.1 Definiia i structura stocurilor de gestiune

Pentru buna desfurare a activitii unei ntreprinderi aceasta are nevoie de un
ansamblu de bunuri i servicii angrenate n procesul de exploatare pentru realizarea i
asigurarea continuitii relaiei: BANI VALORI sau UTILITI BANI. Termenul
median al acestei relaii este reprezentat de stocurile de valori materiale i de produse de
care dispune o entitate economic sau pe care le produce.

Stocurile sunt reprezentate de activele circulante aflate n una din urmtoarele situaii:
1. sunt deinute pentru a fi vndute pe parcursul desfurrii normale a activitii;
2. sau sunt n curs de producie n vederea unei vnzri n aceleai condiii ca mai
sus;
3. sau sunt sub form de materii prime, materiale i alte consumabile ce urmeaz a
fi folosite n procesul de producie sau prestarea de servicii.
O alt abordare consider stocurile i producia n curs de execuie ca fiind
ansamblul bunurilor i serviciilor din cadrul unitii patrimoniale destinate:
- fie a fi vndute n aceeai stare sau dup prelucrarea lor n procesul
de producie
- fie a fi consumate la prima lor utilizare.
Spre deosebire de imobilizri, stocurile i producia n curs de execuie se
consum la prima lor utilizare n procesul de producie, participnd la un singur ciclu de
exploatare care, n general, nu poate fi mai mare de un an. Ciclul de exploatare n care
apar stocurile i producia n curs de execuie se refer la fazele circuitului economic al
4
unitii productive: aprovizionare producie desfacere. Pe acest traseu stocurile se
modific mbrcnd diferite forme, servind anumite scopuri, avnd anumite proprieti i
particulariti.
n funcie de aceste aspecte i nu numai stocurile pot fi clasificate astfel:

1) Dup destinaia lor:
rezerve pentru producie: materii prime, materiale consumabile producia,
lucrrile i serviciile n curs de execuie. Aceste rezerve mai sunt denumite
i stocuri sau mijloace circulante din sfera produciei;
rezerve pentru circulaie: care cuprind: semifabricatele destinate livrrii:
produsele finite, mrfurile etc.
2) Sub aspectul gestionrii:
stocuri propriu-zise;
producie n curs de execuie.

n cadrul stocurilor propriu-zise se disting:
a) materiile prime, care particip direct la fabricarea produselor i se regsesc n
produsul finit integral sau parial, fie n starea lor iniial, fie transformat.
b) materialele consumabile, care particip sau ajut la procesul de fabricaie sau de
exploatare fr a se regsi, de regul n produsul finit. Cuprind materialele
auxiliare, combustibili, materiale pentru ambalat, piese de schimb, semine i
materiale de plantat, furaje i alte materiale consumabile.
c) materiale de natura obiectelor de inventar reprezentnd bunuri cu o valoare
mai mic dect valoarea prevzut de lege pentru a fi considerate mijloace fixe
indiferent de durata lor de serviciu, sau au o durata mai mic de un an indiferent de
valoarea lor. Sunt asimilate acestora echipamentul de protecie de lucru,
mbrcmintea special, mecanismele, dispozitivele, verificatoarele (S.D.V.-urile),
aparatele de msur i control, matriele folosite la executarea anumitor produse i
alte obiecte similare.
d) produse obinute din procesul de exploatare, destinate n principal livrrilor
5
ctre teri. Ele sunt reprezentate de:
semifabricate, prin care se neleg produsele al cror proces tehnologic a
fost terminat ntr-o secie (faz de fabricaie) i care trec n continuare n
procesul tehnologic a altei secii ( faze de fabricaie ) sau se livreaz terilor;
produsele finite, adic produsele care au parcurs n ntregime fazele
procesului de fabricaie i nu mai au nevoie de prelucrri ulterioare n cadrul
unitii patrimoniale, putnd fi depozitate n vederea livrrii sau expediate
direct clienilor;
produsele reziduale, reprezentnd rebuturile, materialele recuperabile sau
deeurile. Ele sunt valorificate de regul la preuri inferioare.
e) mrfurile, respectiv bunurile cumprate de unitatea patrimonial cu scopul
revnzrii lor n aceeai stare.
f) ambalajele, cuprind bunurile necesare pentru protecia produselor i
mrfurilor pe timpul transportului i depozitrii sau pentru prezentarea lor
comercial. Aici sunt incluse ambalajele refolosibile achiziionate goale sau o dat
cu materialele i mrfurile aprovizionate, cele confecionate n unitate i cele
restituite de clieni, etc.

n ceea ce privete producia n curs de execuie, aceasta cuprinde acele produse
care nu au trecut prin toate fazele de prelucrare prevzute n procesul tehnologic, precum
i producia terminat dar nesupus probelor i recepiei tehnice sau incomplete. Tot n
aceast categorie sunt evideniate lucrrile, serviciile i studiile n curs de execuie sau
neterminate.

3) Dup apartenena la patrimoniu:
stocuri aflate n gestiune care fac parte din patrimoniul propriu al unitii:
Ele se gsesc fie n depozitele sau spaiile proprii (depozite, magazine, magazii,
locuri de producie) fie se afl la teri (materii i materiale aflate la teri, produse
aflate la teri, mrfuri aflate n custodie sau n consignaie, etc.)
stocuri aflate n gestiune, dar care nu fac parte din patrimoniul propriu:
6
Acestea sunt stocurile primite spre prelucrare sau custodie i consignaie.
Ele se nregistreaz n conturi extrapatrimoniale deoarece nu sunt considerate
valori proprii. Acest caz este o expresie a influenei a exprimrii pe criterii
juridice a valorilor deinute.
4) Dup locul unde se afl la un moment dat:
a) stocuri aflate n depozitele ntreprinderii,
b) stocuri n curs de aprovizionare,
c) stocuri aflate la teri pentru prelucrare sau pstrare.

5) Din punctul de vedere al fazelor de exploatare:
stocuri ce in de sfera aprovizionrii: materii prime, materiale,
combustibili;
stocuri ce in de sfera produciei: producia neterminat, semifabricatele;
stocuri ce in de sfera comercializrii: produsele finite, mrfurile.

Activele circulante materiale, sub forma stocurilor i al produciei n curs de
execuie, se afl succesiv i nentrerupt n diferitele faze ale procesului de producie i
comercializare. Aceast caracteristic a stocurilor, de a participa continuu la stadiile
circuitului economic de a descrie n cadrul exerciiului mai multe rotaii, relev aportul
lor la realizarea cifrei de afaceri i la valorificarea capitalului.
Astfel, n cazul ntreprinderilor productive n faza de aprovizionare, activele
circulante sub forma disponibilitilor bneti se transform n active circulante sub
forma stocurilor de materii prime i materiale consumabile, n faza de producie
stocurile de materii prime i materiale consumabile se transform n stocuri de
semifabricate i produse finite i n faza de desfacere stocurile de semifabricate i de
produse finite sunt vndute clienilor, n urma decontrilor cu clienii se transform n
active circulante sub forma disponibilitilor bneti.


7
1.2 Evaluarea stocurilor

Evaluarea stocurilor are n vedere patru momente principale corespunztoare
strii lor n patrimoniu:
1) Evaluarea la intrarea n patrimoniul ntreprinderii;
2) Evaluarea la inventariere;
3) Evaluarea la bilan;
4) Evaluarea la ieirea din patrimoniul ntreprinderii.


1) Evaluarea la intrarea n patrimoniu
La intrarea n patrimoniu, stocurile sunt evaluate n funcie de modalitatea de
dobndire:
pentru stocurile din cumprri (materii prime, materiale consumabile,
mrfuri, ambalaje i alte produse cu titlu oneros), evaluarea se face la cost
de achiziie, cost standard sau pre de facturare.
pentru stocurile din producie proprie (produse finite, semifabricate,
ambalaje, producia n curs de execuie i alte stocuri produse n unitate),
evaluarea se face la costul de producie efectiv sau standard;
pentru stocurile aduse ca aport nregistrarea se face la valoarea de aport;
pentru stocurile primite cu titlu gratuit evaluarea se va face la valoarea de
utilitate;
pentru stocurile procurate prin schimb evaluarea se face la valoarea just.
Evaluarea la intrarea n patrimoniu are ca rezultat obinerea valorilor contabile
aferente stocurilor care reprezint de asemenea i costul istoric al acestora.

Costul de achiziie este format din preul de cumprare, taxele nerecuperabile
(taxe vamale, accize), cheltuielile de transport-aprovizionare i alte cheltuieli necesare
pentru punerea n starea de utilitate sau intrarea n gestiune a bunului respectiv. Din acest
cost sunt deduse reducerile comerciale i alte elemente similare ( ORDIN nr. 94 din 29
ianuarie 2001, cap TRATAMENTE CONTABILE, art. 5.13 alin. a ).
8
Standardele Internaionale de Contabilitate (prin IAS 2) consider aceast valoare
de intrare ca tratament de baz pentru evidena stocurilor procurate cu titlu oneros. n
aceast situaie conturile de diferene de pre privind stocurile de aceast natur nu sunt
utilizate deoarece toate elementele de cost sunt incluse direct n contul de eviden a
stocurilor sau n conturile de cheltuieli dac se folosete inventarul intermitent.

Costul sau preul standard este un pre prestabilit ce const n evaluarea i
nregistrarea stocurilor la preuri fixe, stabilite anterior pe baza preurilor medii ale
stocurilor respective realizate n perioada precedent. Se folosete ca i pre de
nregistrare n contabilitate cu condiia evidenierii distincte a diferenelor de pre fa de
costul de achiziie.

Diferenele de pre pot fi:
favorabile, cnd preul standard este mai mare dect costul efectiv i se nscriu n
rou
nefavorabile, cnd preul standard este mai mic dect costul efectiv i se nscriu n
negru.

Aceste diferene pot cuprinde urmtoarele:
diferena ntre preul standard i preul propriu-zis de facturare privind
cheltuielile de transport, ncrcare, descrcare, recepie, manipulare,
s.a.m.d., aferente stocurilor cumprate de la furnizorii interni;
cheltuielile de transport pe parcurs extern, comisioanele, asigurarea,
cheltuielile de tranzit etc. aferente bunurilor provenite din import;
taxele vamale i alte taxe nerecuperabile referitoare la stocurile
importate.
La sfritul fiecrei perioade de gestiune este necesar s se efectueze
repartizarea diferenelor de pre analizate att asupra bunurilor ieite din patrimoniu,
ct i asupra celor aflate n stoc, pe baza de coeficient de repartizare care se determin
cu date cumulate de la nceputul anului.
9
Coeficientul de repartizare se calculeaz prin raportarea soldului iniial al
diferenelor de pre cumulat cu diferenele aferente intrrilor, nregistrate de la
nceputul anului i pn la sfritul perioadei de referin, la valoarea stocului iniial,
stabilit n preuri standard, cumulat cu valoarea intrrilor de bunuri din cadrul
aceleiai perioade, de asemenea la preuri standard. Coeficientul de repartizare astfel
determinat se nmulete cu valoarea bunurilor ieite din gestiune la pre de
nregistrare, iar suma rezultat se repartizeaz i se nregistreaz n contul de
cheltuieli n care s-au reflectat bunurile ieite din gestiune.
La sfritul fiecrei perioade de gestiune sau atunci cnd este necesar se poate
determina valoarea de intrare a stocului la cost de achiziie sau de producie, prin
nsumarea algebric a soldului final al contului de diferene de pre cu soldul final existent
n contul de stoc.
Preul de facturare al furnizorului este preul indicat n factura furnizorului.
Cnd acesta este modificat, la livrrile ulterioare, cumprtorul va considera stocurile
aprovizionate ca sortimente diferite, chiar dac n esen ele sunt aceleai. Preurile
de facturare devin preuri de nregistrare n contabilitate cu condiia evidenierii
distincte a cheltuielilor de transport-aprovizionare, acestea repartizndu-se asupra
bunurilor ieite i asupra stocurilor cu ajutorul unui coeficient asemntor cu cel folosit
la preurile standard. Diferenele de pre vor fi n toate cazurile nefavorabile i
reprezint diferena dintre costul de achiziie i preul de facturare al furnizorului
La sfritul perioadei, soldul conturilor de diferene se cumuleaz cu soldul
conturilor de stocuri astfel nct aceste conturi s reflecte valoarea stocurilor la costul
de achiziie.
Utilizarea acestui pre pentru nregistrarea stocurilor cumprate aduce atingere
definiiei costului de achiziie dat de Standardele Internaionale de Contabilitate, preluat
i n Ordinul 94 din 29 ianuarie 2001 ( articolul 5.13 alineatul a). Aceast definiie cere
includerea cheltuielilor de transport-aprovizionare pe seama conturilor de stocuri pentru
care se efectueaz. Conturile de diferene de pre trebuie utilizate numai pentru
consemnarea diferenelor dintre costul standard i cel efectiv.

10
Costul de producie efectiv aferent stocurilor produse de unitate include:
1. costurile cumprrii sau achiziiei;
2. costurile de prelucrare;
3. alte costuri;

Costurile cumprrii cuprind preul de cumprare, taxe de import i alte taxe (cu
excepia acelora pe care ntreprinderea le poate recupera de la autoritile fiscale), costuri
de transport, manipulare i alte costuri care pot fi atribuite direct achiziiei de produse
finite, materiale i servicii. Reducerile comerciale, rabaturile i alte elemente similare
sunt deduse pentru a determina o valoare ct mai real;
Costurile de prelucrare includ costurile direct aferente unitilor produse, cum ar
fi costurile cu manopera direct. De asemenea, ele includ i alocarea sistematic a regiei
de producie, fix i variabil, generat de transformarea materialelor n produse finite.
Regia fix de producie const n acele costuri indirecte de producie care rmn relativ
constante, indiferent de volumul produciei, cum sunt: amortizarea, ntreinerea
seciilor i utilajelor, precum i costurile cu conducerea i administrarea seciilor. Regia
variabil de producie const n acele costuri indirecte de producie care variaz direct
proporional sau aproape direct proporional cu volumul produciei, cum sunt costurile
indirecte cu materiile prime i materialele i cu fora de munc.
Alocarea regiei fixe de producie asupra costurilor de prelucrare se face pe baza
capacitii normale de producie. Capacitatea normal de producie este producia
estimat a fi obinut, n medie, de-a lungul unui anumit numr de perioade sau sezoane,
n condiii normale, avnd n vedere i pierderea de capacitate rezultat din ntreinerea
planificat a echipamentului. Nivelul actual de producie poate fi folosit dac se
consider c acesta aproximeaz capacitatea normal. Valoarea regiei fixe alocate
fiecrei uniti produse nu se majoreaz ca urmare a obinerii unei producii sczute sau a
neutilizrii unor active. Regia nealocat este recunoscut drept cheltuial n perioada n
care a aprut, n exerciiile n care se nregistreaz o producie neobinuit (anormal) de
mare, valoarea regiei fixe alocate fiecrei uniti produse este diminuat, astfel nct
stocurile s nu fie evaluate la o valoare mai mare dect costul lor. Regia variabil este
alocat fiecrei uniti produse pe baza folosirii reale a facilitilor productive.
11
Alte costuri se includ n costul stocurilor numai n msura n care reprezint
costuri suportate pentru a aduce stocurile n forma i n locul n care se gsesc n prezent.
De exemplu, poate fi adecvat includerea n costul stocurilor, a regiilor generale sau
costul proiectrii produselor destinate anumitor clieni.

Pe lng aceste costuri care se regsesc direct sau indirect n costurile de
producie efective societatea mai efectueaz i alte cheltuieli cum ar fi cele legate de
sectorul administrativ sau de desfacere. Acestea nu pot fi incluse n costurile produselor
ci sunt considerate costuri ale perioadei i vor fi acoperite pe seama veniturilor obinute
fr a putea fi imputate acestora.
n determinarea costurilor produselor nu i gsesc locul cheltuielile privind
consumurile supranormale de: materii prime i materiale, manoper sau utiliti, precum
i cheltuielile suplimentare privind stocarea produselor cu excepia situaiei n care
vizeaz depozitarea ntre fazele unui proces de fabricaie. Acestea sunt excluse pe
considerentul c nu au fost angajate raional pentru obinerea produselor finite i denot o
slab gestionare a resurselor i utilitilor ntreprinderii. Prin urmare ele sunt suportate pe
seama costurilor perioadei.
Utilizarea costului de producie efectiv prezint dezavantajul c nu este cunoscut
dect la sfritul lunii deoarece numai n acel moment sunt colectate toate documentele
privind cheltuielile lunii care trebuiesc imputate asupra costurilor produselor realizate.
Acest cost poate fi utilizat cu uurin la evaluarea produciei n curs de execuie
i a semifabricatelor deoarece valoarea acestora se determin la sfritul lunii prin
inventariere.

Costul de producie standard reprezint o alternativ practic la dezavantajul
generat de costul de producie efectiv. Acest cost de nregistrare presupune ca n timpul
lunii, producia obinut s fie nregistrat n contabilitate la un cost mediu stabilit n
funcie de evoluiile costurilor n perioadele anterioare. Costul standard se determin
avnd n vedere premisele unor consumuri normale de materii prime i materiale,
manoper i alte utiliti precum i de capacitatea normal de producie i eficiena
acesteia.
12
La sfritul lunii are loc regularizarea costului standard pe seama diferenelor de
pre calculate, obinnd astfel costul efectiv al produselor obinute. Tot n acest moment
are loc i alocarea diferenelor de pre aferente produselor vndute n cursul lunii.

Valoarea de aport a stocurilor aduse ca i contribuie la capital se determin n
funcie de preul pieei utilitii, generarea de beneficii economice viitoare , starea i
locul unde se afl.
Valoarea de utilitate pentru bunurile obinute cu titlu gratuit este determinat pe
baza preului pieei, strii i amplasrii acestora. Aceast valoare exprim dimensiunea
preului pe care un potenial client l-ar accepta n funcie de utilitatea bunului pentru
unitatea respectiv.

Valoarea just pentru bunurile obinute prin schimb cu alte bunuri este suma la
care poate fi tranzacionat un activ sau decontat o datorie, de bunvoie, ntre pri aflate
n cunotin de cauz, preul fiind determinat obiectiv.

2) Evaluarea stocurilor cu ocazia inventarierii
Inventarierea periodic a stocurilor se face pentru cel puin dou scopuri:
1. verificarea realitii stocurilor scriptice, reflectate de contabilitate, cu
cele faptice, constatate la inventariere, ambele evaluate la preurile de intrare
reflectate n contabilitate.
2. determinarea valorilor de inventar a stocurilor. Aceasta se mai
numete i valoare actual sau valoare de utilitate; determinat n funcie de
preul pieei i utilitatea bunului pentru ntreprindere.
Valoarea de utilitate sau preul pieei, ca baz de evaluare a bunurilor la
inventariere, se identific, n principal, n funcie de destinaia lor:
bunurile destinate vnzrii sunt evaluate la valoarea net de
realizare care se calculeaz ca diferen ntre preul de vnzare estimat i
13
eventualele cheltuieli rmase de efectuat pentru comercializarea lor
(transport, garanii, etc.);
semifabricatele i producia n curs de execuie se evalueaz la
valoarea componentelor materiale ncorporate la care se adaug costurile
stadiilor de prelucrare tehnologic parcurse;
materiile prime i materialele consumabile destinate utilizrii n
exploatare se evalueaz la costul lor de nlocuire (reaprovizionare). La
stabilirea valorii de inventar se va aplica principiul prudenei, potrivit cruia
nu este admis supraevaluarea elementelor de activ i a veniturilor, respectiv
subevaluarea elementelor de pasiv i a cheltuielilor. n acest sens:
dac valoarea de inventar este mai mare dect costul istoric; diferena
nu este consemnat n contabilitate;
dac valoarea de inventar este mai mica dect costul istoric; diferena
este consemnat pe seama constituirii unui provizion, dac deprecierea
este reversibil, fr a produce modificri directe costului istoric.

3) Evaluarea cu ocazia ntocmirii bilanului
Aceasta se face la valoarea de intrare, respectiv valoarea contabil pus de acord
cu rezultatele evalurilor la inventariere. n acest scop valoarea de intrare se compar cu
valoarea de utilitate, reinndu-se cea mai mic dintre cele dou mrimi dup regula de
pruden lower of cost or market cea mai mic valoare dintre cost i preul pieei.
Pot interveni urmtoarele cazuri:
1. diferene constatate n plus ntre valoarea de inventar i valoarea de
intrare; acestea nu se nregistreaz n contabilitate, stocurile meninndu-
se la valoarea lor de intrare;
2. diferene constatate n minus ntre valoarea de inventar i valoarea de
intrare a stocurilor; acestea se nregistreaz pe seama provizioanelor
pentru depreciere dac aceasta este reversibil. n urma acestei situaii
14
stocurile i pstreaz valorile de intrare dar sunt nscrise n situaiile
financiare la valoarea realizabil net.
4) Evaluarea stocurilor la ieirea din patrimoniu
La ieirea din patrimoniu sau darea n consum, stocurile sunt evaluate i se
nregistreaz scderea acestora din gestiune la valoarea lor de intrare. n condiiile n
care pe parcursul desfurrii activitii, aceleai feluri de bunuri se procur la preuri
diferite, pentru evaluarea cantitii de stocuri ieite sau consumate valoarea de intrare
prezint o utilitate redus i necesit un volum de munc foarte mare pentru identificarea
valorilor pentru diferitele loturi vndute sau consumate. Valoarea de intrare poate fi
folosit n bune condiii pentru stocurile identificabile sau nefungibile.
Pentru stocurile fungibile exist mai multe metode de evaluare la scoaterea din
gestiune:
o Metoda costului mediu ponderat (CMP);
o Metoda prima intrare prima ieire (FIFO);
o Metoda ultima intrare prima ieire (LIFO);
o Metoda proxima intrare prima ieire (NIFO);
o Metoda costului standard.
Aplicarea uneia dintre metodele de evaluare a ieirilor din stoc trebuie analizat
n funcie de fenomenul de micarea preurilor i politica contabil a firmei deoarece
aceleai ieiri, evaluate dup metode diferite, conduc la valori diferite ale rezultatelor i
mrimii stocurilor.
Metoda aleas trebuie aplicat cu consecven pentru elemente similare stocurilor
i de la un exerciiu financiar la altul. Daca n situaii excepionale administratorii decid
s schimbe metoda pentru un anumit element de stocuri sau active fungibile, trebuie s se
prezinte urmtoarele informaii:
1. motivul schimbrii metodei;
2. efectele noii situaii asupra rezultatului exerciiului.
Reglementrile naionale permit utilizarea metodelor: CMP, FIFO i LIFO.
15
Metoda costului mediu ponderat CMP
Costul mediu ponderat se calculeaz ca raport ntre valoarea total a stocului
iniial plus valoarea total a intrrilor i cantitatea iniial plus cantitile intrate. Preul
mediu obinut este nmulit cu numrul de uniti consumate sau vndute obinndu-se
valoarea de scoatere din gestiune a acestora.
Aceast metod poate fi aplicat n dou variante:
1. actualizarea costului mediu ponderat dup fiecare intrare;
2. actualizarea periodic a costului mediu ponderat (lunar).
Metoda CMP este indicat a fi utilizat n condiii de stabilitate a preurilor
deoarece astfel se obin preuri medii apropiate de valorile de pia.

Metoda prima intrare prima ieire FIFO
Potrivit acestei metode, bunurile ieite din gestiune se evalueaz n funcie de
costul de achiziie al primului lot intrat, respectiv al articolului cel mai vechi n stoc. Pe
msura epuizrii lotului, bunurile ieite din gestiune se evalueaz la costul de achiziie
sau de producie al lotului urmtor, n ordine cronologic. n consecin, stocul final este
format din elemente evaluate la valorile cele mai recente.
Aceast metod este indicat a fi utilizat n condiiile creterii preurilor pentru
c evit stocarea loturilor ce au costuri de achiziie mai mici n raport cu cele curente.
Astfel se poate evita capitalizarea inflaiei prin nregistrarea unor cheltuieli mai mici cu
descrcarea gestiunii raportate la venituri actualizate.

Metoda ultima intrare prima ieire LIFO
Metoda presupune valorificarea ieirilor de stocuri din gestiune la costul de
achiziie sau producie al ultimului lot. Pe msura epuizrii succesive a fiecrui lot,
bunurile se evalueaz la costul de achiziie al lotului anterior. Stocul final este format din
elemente evaluate la valorile cele mai vechi. n perioadele de cretere a preurilor,
aplicarea acestei metode are drept consecin evaluarea consumurilor la valoarea
maxim, beneficiul i stocul final fiind prezentate la valori minime. n situaia invers, a
reducerii preurilor, efectele aplicrii metodei LIFO sunt diminuarea valorii
consumurilor, stocul final i beneficiile fiind prezentate la valori maxime.
16
1.3. Contabilitatea analitic

Asigurarea integritii stocurilor prin cunoaterea n detaliu a evoluiei
intrrilor, ieirilor i existenelor la un moment dat impune organizarea, la unitile
mari a unei contabiliti analitice a stocurilor. Unitile mici si mijlocii care folosesc
metoda inventarelor intermitente pentru contabilitatea sintetic a stocurilor nu au
nevoie de organizarea unei contabiliti analitice a stocurilor.
Teoria i practica financiar-contabil ne ofer numeroase variante de
organizare a evidenei analitice i operative a stocurilor, cum ar fi:
metoda cantitativ - valoric (pe fie de cont analitic)
metoda operativ-contabil (pe solduri);
metoda global-valoric.
Alegerea metodei sau a combinaiei acestora este o problem de opiune a
conducerii, o problem de management contabil. Decizia trebuie s in cont de
mrimea unitii, posibiliti, personal, necesiti etc. Se consider c, organizarea
contabilitii analitice a stocurilor trebuie s rspund urmtoarelor probleme:
ndeplinirea obligaiilor contractuale de aprovizionare i desfacere;
existena n cantiti suficiente a sortimentelor de materiale necesare
ntreinerii continuitii produciei, sau a mrfurilor solicitate de clieni;
depistarea imobilizrilor de stocuri fr micare, cu micare lent,
excedentare, nesolicitate de clieni, asezoniere, degradate sau cu termene de
garanie expirate;
respectarea legilor generale de consemnare n documente a intrrilor i
ieirilor, de gestionare a elementelor patrimoniale; inventarierea periodic i
controlul faptic al stocurilor, asigurndu-se astfel ncadrarea ntr-o disciplin
economic strict necesar funcionrii agenilor economici n condiii de
rentabilitate si eficien.



17
Metoda cantitativ-valoric (pe fie de cont analitic)
Pentru materii prime, materiale consumabile, obiecte de inventar n depozit,
baracamente, semifabricate, produse finite, produse reziduale, mrfuri, animale i
ambalaje, const n inerea evidenei cantitative pe feluri de stocuri n cadrul fiecrei
gestiuni, iar n contabilitate a celei cantitativ-valorice. Conturile sintetice ce reflect
stocurile de valori materiale se desfoar n analitic pe gestiuni. Verificarea exactitii
nregistrrilor din evidena de la locurile de depozitare i contabilitate se efectueaz
prin punctajul periodic dintre cantitile operate n fiele de magazie i cele
din fiele de cont analitic din contabilitate.
n metoda cantitativ-valoric (pe fie de cont analitic) se folosesc urmtoarele
formulare tipizate comune:
- Fia de magazie;
- Fia de cont analitic pentru valori materiale;
- Fia de cont pentru operaii diverse;
- Borderou de predare a documentelor;
- Balana analitic a valorilor materiale.
Evidena cantitativ a materialelor se ine la gestiune cu ajutorul fielor de
magazie care se aranjeaz n ordinea fielor de cont analitic din contabilitate. n fiele
de magazie nregistrrile se fac zilnic de gestionar sau persoana desemnat. n
contabilitate, documentele primite se nregistreaz n fiele de cont analitic pentru
valori materiale i se stabilesc soldurile i stocurile, dup ce n prealabil s-a verificat
modul de emitere i completare a documentelor privind micarea materialelor. De
asemenea, pe baza acelorai documente se ntocmesc situaiile centralizatoare
privind intrrile i ieirile de materiale pentru nregistrare n contabilitatea sintetic.
Controlul nregistrrilor din conturile sintetice i cele analitice ale stocuril or se
asigur lunar, cu ajutorul balanei de verificare analitice, ntocmit separat pentru
fiecare cont de stoc.
n vederea ntocmirii balanei de verificare este necesar ca, lunar, s se efectueze
controlul asupra concordanei stocurilor scriptice din fiele de magazie cu cele
faptice din fiele de cont analitic pentru valori materiale.
18
Metoda cantitativ-valoric de eviden analitic a produselor finite si produselor
reziduale se aplic n acelai mod ca i pentru celelalte stocuri, cu urmtoarele
particulariti:
att intrrile ct i ieirile valorice pot fi nregistrate n fiele de cont analitic
pentru stocuri numai lunar, prin nmulirea cantitilor totale de produse
finite i produse reziduale cu preurile unitare respective, fr a mai fi necesar
evaluarea cantitilor de produse n documente;
pentru controlul nregistrrilor din contabilitatea sintetic i cea analitic a
produselor finite, n locul balanei de verificare se poate folosi registrul
stocurilor.

Metoda operativ-contabil (pe solduri)
Presupune inerea n cadrul fiecrei gestiuni, a evidenei cantitative a
valorilor materiale, pe feluri, cu ajutorul fielor de magazie, iar n contabilitate a
evidentei valorice pe conturi de materiale, desfurate pe gestiuni, iar n cadrul
acestora, pe grupe sau subgrupe de materiale, dup caz.
Controlul exactitii nregistrrilor din evidena gestiunilor i din contabilitate
se asigur lunar prin evaluarea stocurilor cantitative, transcrise din fiele de magazie n
registrul stocurilor.
n metoda operativ-contabil (pe solduri) se folosesc urmtoarele formulare tipizate
comune:
- Fi de magazie
- Fi de cont pentru operaii diverse
- Borderou de predare a documentelor
- Registrul stocurilor
Fiele de magazie servesc pentru evidena cantitativ, pe feluri de stocuri, la
locul de depozitare, iar n contabilitate, pentru controlul operaiilor nregistrate de
gestionar sau persoana desemnat, pentru preluarea n registrul stocurilor a cantitilor
aflate n stoc, precum i pentru calculul valorii bunurilor existente n stoc la sfritul
lunii, n scopul confruntrii cu datele din contabilitatea sintetic.
19
La gestiune, fiele de magazie se in n ordinea n care sunt nscrise materialele n
registrul stocurilor, n aceste fie cantitile se nregistreaz zilnic de gestionar sau
persoana desemnat, pe baza documentelor de intrare (factur, aviz de nsoire a
mrfii, not de recepie i constatare de diferene etc.) i a documentelor de ieire (bon
de consum-individual i colectiv, fia limit-individual i colectiv, aviz de nsoire a
mrfii, factur etc.), poziie cu poziie.
Documentele de intrare i de ieire a materialelor vor fi puse la dispoziia
persoanei din compartimentul financiar-contabil desemnat pentru evidena
materialelor, care rspunde de verificarea documentelor i controlul operaiilor
efectuate n fiele de magazie.
Preluarea documentelor de ctre persoana desemnat se face dup ce se verific
emiterea i completarea corect a documentelor de intrare i de ieire a valorilor
materiale, nregistrarea corect a acestora n fiele de magazie i stabilirea exact a
stocului scriptic n aceste fie. Erorile constatate n evidena gestiunilor se corecteaz n
prezena persoanei care rspunde de nregistrrile efectuate n fiele de magazie, iar
abaterile de la regulile de ntocmire si utilizare a documentelor se aduc la cunotina
conductorului compartimentului financiar-contabil sau a persoanei desemnate s
conduc contabilitatea, dup caz, pentru stabilirea msurilor care se impun.
Semntura persoanei desemnate pentru evidena stocurilor n fiele de magazie
constituie dovada verificrii nregistrrilor efectuate i prelurii documentelor de
intrare i de ieire a materialelor.
Preluarea documentelor privind micarea stocurilor se face pe baza borderoului
de predare a documentelor.
n contabilitate, documentele privind micarea stocurilor se grupeaz pe
gestiuni, surse de aprovizionare ( de la furnizori, din prelucrare la teri, consum intern
etc. ) i n cadrul acestora, pe conturi de materiale i gestiuni, iar n cadrul gestiunilor
pe grupe sau subgrupe de materiale, dup caz.
Intrrile sau ieirile de bunuri de natura stocurilor se nregistreaz n
contabilitatea sintetic i analitic, fie direct pe baza acestor documente, fie cu ajutorul
unor situaii ntocmite zilnic sau la alte perioade stabilite de unitate prin centralizarea
datelor din documentele respective.
20
Verificarea nregistrrilor efectuate n conturile de stocuri i fiele de magazie
se face cu ajutorul registrului stocurilor. n acest scop, n registrul stocurilor la sfritul
fiecrei luni se nscriu pe feluri de stocuri, grupate pe magazii ( depozite ), conturi
grupe, eventual subgrupe, stocurile cantitative din fiele de magazie, se calculeaz
valoarea cantitilor aflate n stoc pe baza preurilor de nregistrare i se totalizeaz
valoarea acestora pe pagini ale registrului stocurilor, pe subgrupe de materiale, grupe
de stocuri, conturi i magazii ( depozite ).
n msura n care nu se constat diferene ntre valoarea cantitilor n stoc din
fiele de magazie i soldurile conturilor de materiale din contabilitate, registrul
stocurilor se poate ntocmi trimestrial.
n cazul n care se constat c exist frecvente diferene ntre soldurile
conturilor de stocuri din registrul stocurilor i cele din contabilitate, provenind din
nregistrarea operaiilor, evaluarea cantitilor de stocuri din documentele de intrare i
de ieire, prelucrarea acestora, etc. diferenele respective pot fi localizate printr-o nou
centralizare a intrrilor i ieirilor valorice de materiale, pe grupe sau feluri de
materiale i confruntarea totalurilor obinute cu datele din registrul stocurilor.
Pentru produsele finite i produsele reziduale, metoda operativ-contabil (pe
solduri) se aplic n acelai mod ca i pentru stocuri de materii prime i materiale
consumabile, n acest caz evidena cantitativ pe feluri de produse se ine la magazie
(depozit ) cu ajutorul fielor de magazie, iar evidena valoric se ine n contabilitate
cu ajutorul contului sintetic de produse finite, desfurat n analitic pe gestiuni, n care
nregistrrile se fac pe baza datelor obinute prin centralizarea zilnic a documentelor
de micare a produselor respective.
Verificarea nregistrrilor la sfritul lunii se face de asemenea, cu ajutorul
registrului stocurilor n care se stabilesc soldurile pe feluri de produse finite i pe total
cont prin transcrierea cantitilor n stoc din fiele de magazie i evaluarea acestora pe
baza preurilor de nregistrare.
Dup opinia unor specialiti n domeniu, metoda operativ-contabil (pe
solduri) este mai eficient n practic dect celelalte metode de conducere a
contabilitii analitice a stocurilor, prezentnd unele avantaje, cum ar fi:
1. registrul stocurilor scutete unitile de a mai conduce fiele contabile
21
analitice pentru valorile materiale;
2. registrul stocurilor nlocuiete balanele analitice lunare de verificare care
se ntocmesc n condiiile aplicrii metodei cantitativ-valorice (pe fie
contabil-analitice);
3. contribuie la aprarea integritii valorilor din gestiune, prin urmrirea atent,
de ctre contabilitate, a operaiunilor nregistrate n fiele de magazie de
gestionar.
Metoda global - valoric se aplic pentru evidena mrfurilor i
ambalajelor aflate n unitile de desfacere cu amnuntul (magazine,
restaurante, bufete etc.). Potrivit acestei metode, contabilitatea analitic a
mrfurilor i ambalajelor se ine global-valoric, att la gestiune, ct i n
contabilitate, iar controlul concordanei nregistrrilor din evidena gestiunii i
din contabilitate se efectueaz numai valoric la perioade stabilite de unitate.
Raportul de gestiune se completeaz pe baza documentelor de intrare i de
ieire a mrfurilor i ambalajelor i de depunere a numeralului din vnzare, iar n fiele
valorice (inute pe gestiuni n cadrul conturilor de mrfuri i ambalaje din
contabilitate) nregistrrile se fac pe baza acelorai documente.
Metoda global-valoric se folosete, de asemenea, pentru evidena rechizitelor
de birou, imprimatelor, materialelor destinate ambalrii i pentru evidena crilor
tehnice. n acest caz evidena cantitativ se ine pe feluri de rechizite, imprimate,
materiale pentru ambalare i cri tehnice, la locurile de gestionare, cu ajutorul fielor
de magazie, care se completeaz de gestionar sau de persoana desemnat.
Evidena valoric a micrilor se ine n contabilitate, pe gestiuni, n cadrul
contului de materiale consumabile, cu ajutorul fielor de cont pentru operaii diverse,
nregistrrile n fiele de magazie se fac pe baza documentelor de intrare i de ieire a
materialelor consumabile respective i se preiau de ctre contabilitatea stocurilor, n
prealabil fcndu-se verificarea nregistrrilor din fiele de magazie. Prin centralizarea
datelor din documentele respective se asigur nregistrarea acestora, att n fiele
valorice pe gestiuni, ct i n conturile sintetice de stocuri.


22
CAPITOLUL 2

BAZE DE DATE
Microsoft ACCESS PENTRU APLICATII DE
GESTIUNE

2.1. Noiuni teoretice generale de baze de date si
particularizarea in Access

O baz de date conine toate informaiile necesare despre obiectele ce intervin
ntr-o mulime de aplicaii, relaiile logice ntre aceste informaii i tehnicile de prelucrare
corespunztoare. n bazele de date are loc o integrarea a datelor, n sensul c mai multe
fiiere sunt privite n ansamblu, eliminndu-se pe ct posibil informaiile redundante. De
asemenea se permite accesul simultan la aceleai date, situate n acelai loc sau distribuite
spaial, a mai multor persoane de pregtiri diferite, fiecare cu stilul personal de lucru.
Sistemul de programe care permite construirea unor baze de date, introducerea
informaiilor n bazele de date i dezvoltarea de aplicaii privind bazele de date se
numete sistem de gestiune a bazelor de date (SGBD). Un SGBD d posibilitatea
utilizatorului s aib acces la date folosind un limbaj de nivel nalt, apropiat de modul
obinuit de exprimare, pentru a obine informaii, utilizatorul fcnd abstracie de
algoritmii aplicai pentru selecionarea datelor implicate i a modului de memorare a lor.
SGBD-ul este o interfa ntre utilizatori i sistemul de operare.
Un model relaional de baze de date cuprinde trei componente principale i anume
structura datelor prin definirea unor domenii (valori atomice) i a relaiilor, integritatea
datelor prin impunerea unor restricii sau a unor constrngeri, i prelucrarea datelor prin
operaii din algebra relaional sau calculul relaional.


23
Obiecte Access
Microsoft Access este un sistem interactiv computerizat pentru gestiunea bazelor
de date relaionale, conceput s funcioneze n mediul Microsoft Windows. La fel ca i n
alte SGBD-uri, Access ofer posibilitatea de a organiza, memora, corela i de a regsi
datele de care dispune sistemul.
Baza de date Access este format din tabele, interogri, formulare, rapoarte i alte
obiecte, care se memoreaz n acelai fiier cu extensia MDB. Datorit faptului c toate
obiectele sunt stocate n acelai loc, se poate vorbi de o mare uurin i vitez n
cutarea, analiza, urmrirea i protecia datelor.

Realizarea unei baze de date Access
Etapele ce trebuie parcurse pentru realizarea aplicaiei sunt:
Analiza problemei de rezolvat. Etapa se finalizeaz prin realizarea unui model al
sistemului studiat, de exemplu: modelul relaional obinut prin transformarea modelului
entitate-relaie i presupune:
-studierea scopului i a domeniului de interes (tema);
-identificarea entitilor sistemului i precizarea legturilor dintre acestea;
-precizarea datelor de intrare, a prelucrrilor necesare i a prezentrii rezultatelor.
Proiectarea , cnd se definesc proprietile obiectelor, evenimentele la care trebuie
s rspund aplicaia i felul n care vor rspunde obiectele la diferitele
evenimente, cu subetapele:
-proiectarea obiectelor bazei de date;
-proiectarea interfeei aplicaie-utilizatori.

Tabele
Tabela este obiectul din baza de date destinat pstrrii datelor privind un anumit
subiect. Tabelele sunt identificate printr-un nume; numele unei tabele este unic n cadrul
bazei de date, poate conine spaii, dar nu pot depi 64 de caractere alfanumerice.
Tabela este bidimensional, pe linii avnd informaii despre fiecare exemplar al
subiectului respectiv, iar pe coloane atributele. O tabel Access conine dou tipuri de
informaii: structura i datele.
24
Prin urmare a crea o tabel nseamn a-i defini structura i a o ncrca cu date.
Structura cuprinde informaii despre numrul, tipul de date i proprietile cmpurilor,
cmpurile cheii primare, cmpurile indexate i tipul indexrii.
Proprietile sunt stabilite n faza de proiectare a structurii i pot fi vizualizate n
fereastra pentru proprieti. O tabel poate fi creat prin definirea tabelelor de ctre
utilizator, prin definirea structurii, stabilirea cmpurilor, a tipurilor de date, a
proprietilor i a cheii primare precum i ncrcarea cu date.
Descrierea structurii tabelelor presupune introducerea cmpurilor pentru fiecare
cmp introducndu-se numele acestuia, tipul de dat i opional o descriere.
Cmpurile reprezint obiecte din tabel. Stabilirea proprietilor pentru fiecare
cmp difer in funcie de tipul datelor.

Crearea Relatiilor ntre tabele
ntr-o baz de date relaional tabelele sunt corelate. Aceasta nseamn c datele
memorate n tabele diferite vor putea fi asociate corect atunci cnd din baza de date se
solicit anumite informaii.
Access fiind un SGBD relaional memoreaz datele n tabele diferite, dar permite
corelarea lor, realiznd asocierea dup criterii logice i de nrudire a datelor. Aceast
asociere este posibil dac n faza de definire a structurii tabelelor sunt precizate tipurile
de legturi permise.
Cmpurile comune prin care se face corelarea sunt cheia primar pentru o tabel
i respectiv cheie extern pentru tabela asociat.

Tipuri de legturi
-relaia unu la unu (1 1), numit i relaie biunivoc
Se caracterizeaz prin aceea c unei nregistrri dintr-o tabel i corespunde o
nregistrare din cealalt tabel. Acest tip de corelaie se poate crea atunci cnd tabelele au
subiecte diferite cu chei primare diferite.
-relaia unu la mai muli (1 n)
Se caracterizeaz prin aceea c unei nregistrri dintr-o tabel i corespund mai
multe nregistrri din cealalt tabel.
25
-relaia mai muli la mai muli (m n)
Se caracterizeaz prin aceea c unei nregistrri din prima tabel i corespund 0, 1
sau mai multe nregistrri iar unei nregistrri din cea de a doua tabel i corespund 0, 1
sau mai multe nregistrri din prima tabel. n cazul acestei legturi se va aduga o tabel
suplimentar prin care se sparge corelaia m la n n dou legturi 1 la n. Aceast tabel
suplimentar va avea drept cmpuri, cheile primare ale tabelelor aflate n corelaia m la n.
Sistemul permite precizarea tipului de legtur (join).
Figura 2.1 Fereastra Join Properties

Opiunea 1 reprezint INNER JOIN (asocieri interne) sau asocieri echivalente
(EQUI JOIN), sunt cele mai utilizate tipuri de asocieri i combin asocierile din dou
tabele cnd sunt identice valorile dintr-un cmp comun celor dou tabele. De regul,
asocierea este de tip unu la mai muli, bazndu-se pe cmpul cheie principal dintr-un
tabel i pe un cmp cheie extern din cealalt tabel. Asocierile interne afieaz toate
nregistrrile care au corespondente n cealalt tabel.
Opiunea 2 reprezint LEFT JOIN (asocieri externe la stnga ) i afieaz toate
nregistrrile din tabelul din partea unu a relaiei, care conine, cheia principal unic,
indiferent dac exist nregistrri corespondente n tabela din partea mai muli a
relaiei.
Opiunea 3 reprezint RIGHT JOIN (asocieri externe la dreapta ) i afieaz toate
nregistrrile din tabelul din partea mai muli a relaiei i numai acele nregistrri din
tabela din partea unu a relaiei pentru care cmpurile comune sunt egale.
26
Asigurarea integritii refereniale
Access poate s impun regulile de integritate reverenial atunci cnd sunt
ndeplinite urmtoarele condiii:
-cmpul asociat din primul tabel este cheie primar sau are un index unic;
-cmpurile asociate au acelai tip de date.
Regulile impuse de Access pentru asigurarea integritii refereniale pot fi
rezumate astfel:
-cnd adugm nregistrrile ntr-un tabel corelat i introducem o valoare n
cmpul pe care se face asocierea , trebuie s existe deja o nregistrare cu aceast valoare
n tabelul principal;
-nu se poate elimina o nregistrare din tabelul principal atta timp ct mai exist
nregistrri asociate acestuia n tabelul corelat.
Figura 2.2 Fereastra Relationships

Opiunile posibile pentru stabilirea acestor reguli sunt:
-Cascade Update Related Fields (actualizare n cascad a cmpurilor asociate).
Efectul este c ori de cte ori se modific valoarea cheii primare a unei nregistrri din
tabelul principal, Access va modifica automat valorile din cmpurile asociate ale
nregistrrilor corespunztoare din tabelul corelat.
-Cascade Delete Related Records (eliminarea n cascad a nregistrrilor). Efectul
este c ori de cte ori vom elimina nregistrri din primul tabel, Access va elimina
automat nregistrrile asociate din tabelul corelat.
27
Indexarea tabelelor
Indecii sunt fiiere complementare tabelelor care ajut la identificarea direct a
uneia sau mai multor nregistrri dintr-o tabel.
Dup creare, indecii sunt salvai mpreun cu tabelul i sunt actualizai n mod
automat la introducerea datelor n tabele. Vizualizarea indecilor nu este posibil.
De exemplu cnd se stabilete un cmp cheie primar, Access realizeaz automat
un index al cmpului respectiv. Acest index nu accept valori duplicate. Dac se
construiesc indeci pe alte cmpuri (care nu sunt chei primare), aceti indeci pot conine
valori duplicate.

2.2. Utilizarea limbajului SQL

Prin utilizarea comenzilor, a predicatelor, a clauzelor, a operatorilor, a funciilor
globale i a asocierilor, limbajul structurat de interogare SQL (Structured Query
Language) poate compune cu succes o interogare care napoiaz un anumit domeniu de
cmpuri.
SQL este un limbaj corelat ndeaproape de Microsoft Jet Engine i Data Access
Object (DAO). Prin indicarea relaiilor ntre tabele i alte interogri dintr-o baz de date
prin intermediul SQL, nregistrrile sunt create temporar i transmise napoi obiectului set
de nregistrri al obiectului baz de date n Visual Basic.

Clasificarea instruciunilor SQL
Instruciunile se mpart n dou categorii distincte. Prima categorie, limbajul de
definire a datelor (Data Definition Language - DDL) este folosit pentru crearea,
modificarea sau eliminarea definiiilor existente ntr-o anumit baz de date. Cea de a
doua categorie, limbajul de manipulare a datelor (Data Manipulation Language - DML)
este folosit pentru crearea, modificarea, eliminarea sau adunarea informaiilor rezidente
n structura bazei de date. Cu alte cuvinte, se va folosi DDL pentru crearea de tabele,
cmpuri i indexuri, iar DML servete la popularea, modificarea i obinerea informaiilor
rezidente n tabele i cmpuri.

28
Sintaxa SQL
FROM este folosit pentru a indica tabelul sau interogarea folosite la adunarea
informaiei pentru instruciunea SQL. Folosind clauza FROM este posibil specificarea
mai multor tabele sau interogri n cadrul instruciunii.
WHERE prezint condiia sau condiiile care trebuie satisfcute pentru includerea
unei nregistrri n rezultatele interogrii. Fiecare condiie este evaluat folosind
operatorii condiionali (>, >=, <, <=, =, <>, BETWEEN, LIKE) sau operatorii logici
(AND, OR, NOT).
GROUP BY este folosit pentru gruparea setului de rezultate al interogrii.
Folosete minim un nume de cmp dintr-un tabel sau nregistrare prezentate n
clauza FROM pentru a evalua nregistrrile i valorile de tip grup. De asemenea se poate
folosi o funcie global ntr-o instruciune SQL pentru a crea sumare ale grupurilor din
setul de nregistrri. Funciile globale disponibile sunt: AVG care calculeaz valoarea
minim a unui cmp specificat, COUNT calculeaz numrul de nregistrri dintr-o
interogare, SUM calculeaz suma valorilor dintr-un cmp specificat, MAX calculeaz
valoarea cea mai mare a unui cmp specificat, MIN calculeaz valoarea cea mai mic a
unui cmp specificat.
HAVING specific condiii (de aceeai sintax folosit pentru clauza WHERE)
care trebuie satisfcute de grupuri ca s fie incluse n setul de nregistrri rezultant.
ORDER BY folosete nume de cmpuri pentru a ordona setul de rezultate ntr-un
anumit mod.

Limbajul de manipulare a datelor
Comenzile DML creeaz o combinaie de interogri de aciune i de selecie.
Acestea sunt:
Comanda SELECT este o component a unei interogri de selecie, nu a unei
interogri de aciune. La utilizarea unei interogri de selecie ntr-o aplicaie Visual Basic,
aceasta este stabilit ntr-un obiect set de nregistrri al unei baze de date specificate.
Presupunnd c rs este un set de nregistrri valid i db este un obiect de baz de date deja
stabilit la un fiier de baze de date valid, se poate folosi urmtoarea instruciune pentru a
aduna toate nregistrrile dintr-un tabel:
29
Set rs=db.OpenRecordset (SELECT * FROM tabel)
Aceasta este ns forma elementar cea mai general, a unei instruciuni SELECT.
Programatorul poate folosi fiecare component pentru o sortare i o filtrare eficient a
nregistrrilor, n funcie de necesiti. Sintaxa instruciunii SELECT este urmtoarea:
SELECT [predicate] {* (table.*}
FROM tableexpression
[WHERE]
[GROUP BY]
[HAVING]
[ORDER BY]
Printre predicatele disponibile ntr-o instruciune SELECT se numr: ALL
obine toate nregistrrile, chiar i duplicatele, DISTINCT - obine numai nregistrrile
unice, bazate pe cmpurile specificate n instruciune. Clauza HAVING se comport
similar cu clauza WHERE, cu excepia testrii condiiei specificate dup efectuarea
gruprii, spre deosebire de clauza WHERE, care testeaz condiiile pentru includerea
nregistrrilor n grupuri.
Unirile reprezint o funcie foarte frecvent folosit a instruciunii SELECT i
servesc la crearea de relaii temporare ntre tabele la evaluarea unei interogri de selecie.
Sintaxa de utilizare a unirilor ntr-o instruciune SELECT este:
SELECT
FROM table1 [LEFTRIGHT] JOIN table2 ON (table1.field1 CompOp
table2.field2)
CompOp este un operator de comparaie. O unire de stnga (denumit i unire
exterioar de stnga) include toate nregistrrile din tabelul table1, chiar dac n tabelul
table2 nu exist nregistrri corelate. O unire de dreapta (denumit i unire exterioar de
dreapta) include toate nregistrrile din tabelul table2, chiar dac n tabelul table1 nu
exist nregistrri corelate. Pentru a crea o unire care obine numai nregistrrile incluse
n ambele tabele (unire interioar) se va folosi clauza INNER JOIN.
Comanda UPDATE este folosit pentru stabilirea informaiei dintr-un tabel curent
la o valoare nou. Sintaxa comenzii UPDATE este urmtoarea:
UPDATE table
30
SET value
WHERE criteria
Valoarea specificat n clauza SET a instruciunii UPDATE este o expresie de
atribuire, care va modifica valoarea curent a nregistrrilor selectate din tabelul
specificat. Dac nu este specificat nici o clauz WHERE, interogarea UPDATE
efectueaz modificrile necesare pentru toate nregistrrile din tabelul specificat.
Comanda DELETE este folosit pentru efectuarea de tergeri masive de
nregistrri dintr-un tabel specificat, dintr-o singur operaie. Se pot meniona condiii de
selecie a nregistrrilor de ters dintr-un tabel. La folosirea comenzii DELETE, sunt
terse nregistrri ntregi, nu numai cmpuri individuale. Sintaxa comenzii DELETE este:

DELETE table.*
FROM table
WHERE

2.3. Limbajul de programare Microsoft Visual Basic

Microsoft Visual Basic este un mediu interactiv de programare vizual a
aplicaiilor informatice. Microsoft specific termenul Visual deoarece este posibil
proiectarea de programe cu ajutorul unor formulare care conin elemente vizuale, precum
butoane i casete de afiare i diferite componente vizuale numite controale. Visual Basic
ofer mai multe controale (obiecte care se folosesc pentru implementarea unui mod
simplu de interaciune ntre utilizatori i aplicaii) care permit utilizatorilor s obin, s
afieze sau s nscrie date, s afieze imagini i aa mai departe. Controalele pun la
dispoziia programatorului diferite proprieti (caracteristici ale controlului), metode
(aciuni asupra controlului) i evenimente (proceduri n care se specific rspunsuri la
aciunile asupra controlului).
Faciliti Microsoft Visual Basic:
Visual Basic pune la dispoziie controale, utilizate pentru proiectarea unei
interfee ce v permite interaciunea dintre utilizator i aplicaie.
31
Un control este un obiect care se utilizeaz n programe pentru a le face mai
accesibile utilizatorilor i pentru a nlesni modul n care ele vor rspunde la aciunile
utilizatorilor. Un control este el nsui un program folosit n cadrul programelor Visual
Basic n vederea simplificrii codului acestora.
Visual Basic pune la dispoziie formulare, folosite pentru plasarea de controale.
Visual Basic pune la dispoziie controale utilizator i documente utilizator,
folosite n scopul proiectrii componentelor ActiveX pentru proiectele i programele
Visual Basic care vor rula pe World Wide Web.
Visual Basic pune la dispoziie module, utilizate pentru organizarea codului,
separarea codului de o anumit component vizual i, eventual, punerea la dispoziie a
codului pentru unul sau mai multe formulare.
Visual Basic permite dezvoltarea proiectelor n grupuri, ceea ce ofer posibilitatea
de a include controalele proprii, mai multe fiiere executabile i biblioteci cu legare
dinamic n cadrul unui singur proiect Visual Basic.
Programarea orientat pe obiect reprezint un stil de programare care presupune
mprirea programelor n componente obiectuale i apoi dezvoltarea programelor pentru
gestionarea componentelor obiectuale respective i a interaciunilor dintre ele. Pentru a
stabili dac un limbaj de programare este orientat pe obiect, programatorii iau n
consideraie, de regula, trei caracteristici - motenirea, polimorfismul si ncapsularea.
Programarea orientat pe eveniment reprezint un mod de programare n care
accentul cade pe rspunsul programului la aciunile i operaiile efectuate de utilizator.
Visual Basic combin elementele de programare orientat pe obiect cu elementele
de programare orientat pe eveniment.
O interfa de programare a aplicaiilor (API - Application Programming
Interface) permite programelor accesul la facilitile oferite de programul API. Spre
exemplu biblioteca API din Windows permite programelor accesul direct la funciile
sistemului de operare Windows i utilizarea acestora n cadrul operaiilor din programe.
O biblioteca API const ntr-o serie de funcii, proceduri, tipuri de date i constante
simbolice ce pot fi accesate de ctre programe. n Visual Basic se pot folosi mai multe
astfel de biblioteci API, puse la dispoziie de ctre sistemul de operare Windows, pentru a
spori puterea programelor dezvoltate.
32
Lansarea mediului Microsoft Visual Basic nseamn i nceperea unui nou
proiect. Un proiect poate conine unul sau mai multe formulare, module, controale
utilizator sau documente utilizator. Pentru dezvoltarea interfeei unui proiect se pot folosi
formulare, controale utilizator sau documente utilizator. Majoritatea interfeelor vor
conine, de altfel, unul sau mai multe controale utilizate pentru a mbunti rspunsul
interfeei la operaiile i aciunile efectuate de ctre utilizatorul aplicaiei.
Un proiect Visual Basic poate conine, de asemenea, unul sau mai multe module.
Modulele sunt folosite n cadrul proiectelor pentru plasarea de cod. Exist posibilitatea de
a preciza dac programul poate accesa codul dintr-un modul numai n cadrul acelui
modul sau dac respectivul cod va putea fi accesat din orice parte o programului. Un
modul conine exclusiv cod de program. ntr-un proiect pot fi adugate mai multe
module. Inserarea n proiect a unui modul adiional va presupune i o organizare a
proiectului, deoarece se poate permite accesul tuturor formularelor la codul din module
sau se pot proteja anumite poriuni de cod din fiecare modul n parte, astfel nct accesul
s fie permis numai funciilor i procedurilor din modulul respectiv.
Din toat suita de medii de dezvoltare vizuale de la Microsoft (Visual Studio),
Visual Basic este cel mai eficient instrument (din punct de vedere al timpului de
dezvoltare) pentru dezvoltarea aplicaiilor care lucreaz cu baze de date.

2.3.1 Interfee Visual Basic

La crearea unui program pentru Windows trebuie s optm pentru una dintre cele
dou tipuri de interfee de baz din Windows: interfaa document multiplu sau interfaa
document singular. Aplicaiile cu interfa document multiplu (MDI Multiple-
Document Interface) sunt standard n Windows. Cuvintele document multiplu se refer la
capacitatea unui program de a ntreine mai multe reprezentri sau fiiere n interiorul
aceleai ferestre cadru. Aplicaiile cu interfaa document singular (SDI Singular
Document Interface) sunt succesoare ale aplicaiilor DOS prin aceea c toate
reprezentrile sunt la acelai nivel. Atunci cnd se trece de la o reprezentare la alta n
cadrul unei aplicaii cu interfaa document singular, n mod normal programul va ascunde
33
sau nchide prima reprezentare. Interfeele document singular sunt cele mai simple
programe.

2.3.2 Formulare

Un formular reprezint o suprafa rectangular, similar unei ferestre, care poate
conine controale. Un formular Visual Basic este el nsui un control, putnd conine
totodat alte controale pe care le adugam. Un control, altul dect un formular, este un
obiect auto-coninut pe care programatorul l poate aduga ntr-un formular i care
conine, de regul, o component vizual. Controalele se folosesc n cadrul programelor
pentru a face ca interfaa cu utilizatorul s fie mai sugestiv. Dup plasarea unui control
pe un formular, se poate scrie codul care permite interaciunea dintre utilizator i acel
control.

2.3.3 Fereastra de cod
La dezvoltarea proiectelor se va aduga, mai devreme sau mai trziu, cod pentru
majoritatea obiectelor adugate n proiect. Pentru scrierea codului de program asociat
unui obiect din proiect vom apela la fereastra de cod din Visual Basic. Fereastra de cod
este o fereastr distinct cu dou meniuri derulante n partea superioar. Cele dou casete
derulante din partea superioar a ferestrei de cod ne permit selectarea procedurii sau a
funciei pe care dorim s o vizualizm. Modul n care fereastra de cod organizeaz
procedurile i funciile poate varia, n funcie de obiectul cu care lucrm. Aceast
seciune ne d posibilitatea s declarm variabile pe care le va putea utiliza orice funcie,
eveniment sau procedur. Toate variabilele declarate n seciunea de declaraii generale
vor fi disponibile n ntreg formularul, ceea ce nseamn c orice eveniment sau
procedur scrise n cadrul formularului vor putea accesa aceste variabile.
De fiecare dat cnd se scrie n fereastra de cod o procedur, un eveniment sau o
funcie, codul n cauz se va afla n afara seciunii de declaraii generale. Fereastra de cod
afieaz numele procedurii n cmpul din dreapta al prii superioare a ferestrei. Atunci
cnd ne deplasm n cadrul ferestrei de cod, Visual Basic afieaz fiecare procedur,
eveniment i funcie din obiectul de program deschis curent (de exemplu, un control
34
buton de comanda sau caset de editare) n cadrul celor dou casete derulante aflate n
partea superioar a ferestrei de cod, aceasta pe msur ce cursorul se deplaseaz n
procedura, evenimentul sau funcia n cauz.

2.3.4. Caseta cu instrumente
Visual Basic pune la dispoziie mai multe controale pe care le putem plasa pe un
formular. Un control este un obiect cu care utilizatorul interacioneaz n cadrul
aplicaiilor. nainte de a putea plasa un control pe suprafaa unui formular, va trebui s se
acceseze acel control n cadrul casetei cu instrumente. Visual Basic conine o caset cu
instrumente pe care sunt afiate mai multe pictograme. O pictogram este o reprezentare
grafic de dimensiune mic a unui alt obiect. Spre exemplu, Windows folosete
pictograme pentru a reprezenta, printre altele, fiiere i directoare. n cadrul casetei cu
instrumente, pictogramele reprezint controalele care se pot folosi n cadrul proiectului.
Caseta cu instrumente este, de fapt, o simpl fereastr care afieaz pictogramele ce
reprezint controalele. nainte ca interaciunea dintre utilizator i un control s fie
posibil, controlul respectiv trebuie adugat ntr-un formular. Un proiect poate conine
mai multe formulare.

2.3.5. Controale
Deoarece un formular este tot un control, nu este necesar adugarea unui control
la un formular pentru crearea unui proiect. Atunci cnd adugm un control ntr-un
formular, ceea ce rezult are mai mult utilitate dect un simplu formular gol. Fiecare
control din Visual Basic are un scop bine definit. Se poate rezolva un proiect cu mai
multe controale. De exemplu, utilizatorul ar putea s efectueze un click pe un control
buton de comand pentru a ntrerupe un program, s selecteze o singur opiune din dou
sau mai multe controale buton de opiune, s enumere mii de elemente ntr-un control
caset cu list i tot aa.
Deoarece un formular este tot un control i, la baz, o reprezentare vizual a unei
clase de obiecte, ne va fi de ajutor s nelegem ce sunt obiectele. Putem considera un
control ca fiind un obiect. De exemplu, atunci cnd pornim calculatorul apsm, de
regul, un buton de pe carcasa fizic a calculatorului. Butonul este un obiect. Dar cum
35
calculatorul va urma o serie de instruciuni pentru pornire dup apsarea butonului,
butonul este totodat un control. Putem vedea un control ca un obiect care face ceva
numai dup ce efectum o aciune asupra sa. Prin comparaie, un creion este tot un obiect,
dar nu face nimic pn nu l lum n mn i scriem ceva cu el.
Controlul este un obiect pe care l putem vedea pe un formular i care are form,
dimensiune, culoare i, de obicei, un text sau o etichet. n plus, un control dispune de
proprieti, metode i evenimente. Fiecare control din Visual Basic are un scop bine
definit.
Visual Basic ne permite s scriem cod pentru proprietile, metodele i
evenimentele unui control. Aceasta nseamn c putem modifica modul n care un control
se comport n cadrul programelor. Proprietile unui control descriu controlul respectiv;
exemple de proprieti sunt dimensiunea i culoarea. Metodele unui control ne permit
efectuarea unor aciuni asupra controlului, cum ar fi poziionarea i redimensionarea.
Evenimentele unui control ne permit scrierea de cod pentru a se rspunde la o aciune,
precum efectuarea unui click sau apsarea unei taste.
Atunci cnd dezvoltm un proiect Visual Basic care conine formulare, controale
utilizator sau documente utilizator, putem plasa unul sau mai multe controale pe unul sau
mai multe formulare, controale utilizator sau documente utilizator.
Fiecare control din Visual Basic dispune de proprieti, metode i evenimente.
Proprietile unui control pot fi modificate att n momentul proiectrii, ct i n
momentul execuiei. Unele controale au proprieti ce sunt disponibile numai la
momentul execuiei; altele au proprieti disponibile exclusiv n momentul proiectrii.
Momentul proiectrii se refer la dezvoltarea proiectului i cele mai multe modificri ale
unui control la momentul proiectrii vor fi relativ statice. Cu alte cuvinte, proprietile nu
se vor schimba semnificativ pe durata rulrii programului. Fiecare control are una sau
mai multe proprieti. Proprietile unui control descriu controlul respectiv, aa cum sunt
dimensiunea, culoarea i poziia acestuia. De exemplu, controlul bara cu instrumente din
cadrul proiectului dispune de proprieti ce privesc alinierea, aspectul pictogramelor,
numrul pictogramelor, etc.
Visual Basic ne ofer flexibilitatea de a modifica proprietile unui control prin
cod sau prin fereastra de proprieti. Visual Basic conine o fereastr de proprieti care
36
afieaz proprietile unui control. Modificarea proprietilor unui control n cadrul
ferestrei de proprieti reprezint o modificare a proprietilor n momentul proiectrii.
Proprietile unui control sunt stabilite mai nti pe baza valorilor din fereastra de
proprieti. Apoi, Visual Basic proceseaz codul pe care l-am scris, eventual pentru a
altera proprietile unui control.
Unul dintre cele mai uzuale controale din Visual Basic este controlul buton de
comand, care apare pe un formular ca un buton rectangular. Printre proprietile unui
buton de comand se afl culoarea de fond (BackColor), eticheta (Caption), starea de
activare (Enabled), fontul (Font), nlimea (Height), poziia pe orizontal (Left), poziia
pe vertical (Top) i limea (Width).
Atunci cnd modificm proprietatea Caption a unui control buton de comand,
Visual Basic nscrie pe suprafaa controlului noua etichet. La modificarea proprietii
Enabled a controlului, Visual Basic fie ne va permite utilizarea controlului la momentul
execuiei (Enabled are valoarea True), fie va desena controlul cu gri i l va dezactiva
(Enabled are valoarea False). Schimbarea proprietii Font a unui control va determina
Visual Basic s afieze eticheta curent cu fontul indicat de valoarea selectat.
Controlul Tabel flexibil va afia activitile planificate pe linii i coloane care pot
s fie fixe sau standard. Coloanele i liniile fixe nu se deplaseaz odat cu derularea
celorlalte coloane sau linii. n mod implicit, controlul tabel flexibil afieaz un rnd fix i
o linie fix. Numrul de linii i de coloane ce pot fi afiate de ctre controlul tabel flexibil
este limitat de memoria virtual disponibil pentru proiect.
Fiecare linie i coloan dintr-un control tabel flexibil este specificat printr-o
valoare ntreag. Controlul asociaz valoarea ntreaga 0 pentru prima linie, valoarea 1
pentru a doua linie i tot aa. n mod similar, controlul tabel flexibil asociaz valoarea
ntreag 0 pentru prima coloan, valoarea 1 pentru a doua coloan i aa mai departe.
Atunci cnd se efectueaz un clic pe suprafaa controlului tabel flexibil, Visual Basic
stabilete valorile a dou proprieti, Row i Col. Aceste proprieti conin valorile pentru
linia i coloana selectate n cadrul controlului tabel flexibil. Perechea de proprieti Row
i Col identific o locaie specific n cadrul controlului tabel flexibil, locaie numit
celul. Spre exemplu, poziia din controlul tabel flexibil pentru care Row=1 si Col=2 se
numete i celula de la Row=1 i Col=2.
37
Numrul total de linii i de coloane ale unui control tabel flexibil poate fi stabilit
fie prin cod, ntr-o procedur sau ntr-o funcie, fie prin intermediul ferestrei de
proprieti. Memoria virtual disponibil pe calculator este cea care determin numrul
maxim de linii i coloane.

2.3.6. Metode
Fiecare control are proprieti i orice control poate fi descris pe baza acestor
proprieti. Pe lng proprieti, majoritatea controalelor ofer cel puin o metod. Putem
vedea o metod ca o aciune pe care programul o poate efectua asupra controlului (prin
contrast cu un eveniment, care este rspunsul unui control la aciunea unui utilizator sau
la o aciune a programului). Spre exemplu, s presupunem c pentru controlul bar cu
instrumente exist o metod Move (de fapt, chiar exist). Metoda Move a unui control
bar cu instrumente permite deplasarea unui astfel de control din poziia iniial ntr-o
nou poziie. Putem scrie n codul programului o procedur care s apeleze la metoda
Move a controlului bar cu instrumente pentru a deplasa controlul din partea superioara a
formularului n partea sa inferioar. Putem scrie, apoi, o alt procedur care s foloseasc
metoda Move a controlului bar cu instrumente pentru a deplasa acest control din partea
dreapta a formularului n partea sa stng.
Aproape fiecare control din Visual Basic ofer cel puin o metod. nainte de a
apela la o metod a unui control este ntotdeauna recomandat s nelegem ce anume face
acea metod. Visual Basic include un fiier de asisten cuprinztor pe care l putem
utiliza pentru a afla informaii despre cele mai multe dintre controale. Atunci cnd apare
o nelmurire n ceea ce privete un control i Visual Basic afieaz informaii de asisten
pentru acel control, putem studia fiecare metod pe care o ofer controlul n cauz. Pe
lng studierea metodelor de controale cu ajutorul sistemului de asisten din Visual
Basic, avem i posibilitatea de a vedea descrieri ale metodelor unui control prin
intermediul bibliotecii de obiecte (Object Browser) din Visual Basic. Biblioteca de
obiecte consta ntr-o fereastr pe care Visual Basic o folosete pentru a afia proprietile,
metodele i evenimentele unui control. Biblioteca de obiecte afieaz att controale, ct i
alte elemente.
38
Unul dintre controalele cele mai utilizate din Visual Basic este controlul buton de
comand. Una dintre metodele controlului buton de comand este Move. Metoda Move
permite deplasarea controlului care ofer aceast metod (aa cum este controlul buton de
comand) dintr-o poziie pe formular n alta. Metoda Move presupune cuvntul cheie
Move i patru parametrii Left, Top, Width si Height. Putem stabili cte o valoare pentru
fiecare parametru. Parametrii Left i Top sunt folosii pentru a determina poziia
controlului, i anume distana dintre marginea stng a formularului i cea a controlului
i, respectiv, distana dintre extremitatea superioar a formularului i cea a controlului.
Parametrii Width i Height sunt folosii pentru a determina dimensiunea controlului.
Putem apela la biblioteca de obiecte pentru a vedea proprietile, metodele i
evenimentele controlului buton de comand. Pentru a afia biblioteca de obiecte,
selectm comanda Object Browser din cadrul meniului View.

2.3.7. Evenimente
Majoritatea controalelor din Visual Basic dispun de proprieti i de metode.
Putem descrie un control prin intermediul proprietilor sale i putem utiliza metodele
unui control pentru a efectua aciuni asupra acestuia. Pe lng proprieti i metode,
majoritatea controalelor dispun i de cel puin un eveniment. Un eveniment este ceva ce
s-ar putea sau nu s se produc pentru un control atunci cnd programul se afl n
execuie. Atunci cnd utilizatorul sau Visual Basic efectueaz o aciune asupra unui
control, Windows rspunde la acea aciune. Aciunea poate produce un eveniment, sau
evenimentul poate fi o consecin a aciunii. De exemplu, atunci cnd efectum un click
cu mouse-ul pe un control buton de comand la momentul execuiei (adic atunci cnd
programul ruleaz), programul va invoca elementul Click al controlului. Pe de alt parte,
atunci cnd efectum un click pe butonul de nchidere al unui formular, acesta va genera
dou evenimente (Unload si QueryUnload), rezultate ale aciunii de click cu mouse-ul,
chiar dac aciunea n sine nu invoc de fapt nici un eveniment (formularul este cel care o
face).
Pentru un eveniment putem s scriem un cod. De exemplu, dup ce efectum un
click pe un control buton de comand i programul apeleaz evenimentul Click al
acestuia, el va executa totodat codul pe care l-am plasat n zona corespunztoare
39
evenimentului Click. Aceast capacitate de a extinde procesarea unui eveniment
nseamn c putei determina Visual Basic s rspund la o aciune n forme mai
complexe, fr a fi necesar crearea unui nou control. De exemplu, un singur click pe un
buton ar putea s creeze un nou formular, s completeze cmpurile acelui formular cu
informaii, s actualizeze o nregistrare n cadrul unei baze de date asociate cu programul
i s afieze un mesaj pentru utilizator. Visual Basic pune la dispoziie un sistem de
asisten cuprinztor prin intermediul cruia putem afla informaii despre cele mai multe
controale. Atunci cnd avem o nelmurire n ceea ce privete un control i Visual Basic
afieaz informaii de asisten pentru acel control, putem folosi acele informaii pentru a
studia fiecare eveniment de care dispune controlul n cauz. Pe lng studierea
controalelor cu ajutorul sistemului de asisten din Visual Basic, avem posibilitatea de a
obine descrieri ale controalelor i ale proprietilor, metodelor i evenimentelor acestora
prin intermediul bibliotecii de obiecte din Visual Basic.





40
CAPITOLUL 3
PROGRAM DE GESTIUNE INTRARI, IESIRI,
INTOCMIRE SI EMITERE FACTURI


3.1. Cerinele informaionale generale ale temei
proiectului

Acest proiect reprezint un exemplu de aplicaie a crui interfa a fost realizat n
Microsoft Visual Basic ce utilizeaz o baz de date Access.
Tema aleas se refer la activitatea de ntocmire i emitere a facturilor dintr-o
firm oarecare. Efectuarea acestor operaii se realizeaz cu ajutorul programului Calcul.
Operaia de ntocmire a facturilor se bazeaz pe definirea unei structuri
organizatorice a firmei, ce presupune o eviden a clienilor i a produselor de care
dispune firma.
Factura se va ntocmi cu ajutorul programului Calcul, utilizatorul innd cont de
comanda clientului.
Evidena informatic a produselor este fcut pe categorii de produse. Fiecrei
categorii i corespunde o valoare TVA.
Ca principiu general, prezentul program nu ine o eviden i a documentelor de
aprovizionare a firmei cu marf, stocul fiind introdus de ctre utilizator i actualizat
automat dup fiecare vnzare a produsului. Se va ine ns cont de preul de achiziionare
i cel de vnzare al produselor. Preul de vnzare reprezint preul unitar al unui produs la
care se va aduga valoarea TVA-ului specific categoriei din care face parte produsul
41
respectiv i se va calcula n momentul vnzrii produsului, ce corespunde cu adugarea
lui pe factur .
n concluzie, o factur se consider emis n momentul n care cantitatea de
produse de pe aceasta va fi ncrcat ntr-un mijloc de transport al unui client.
Programul Calcul , prin intermediul rapoartelor, va permite:
-evidena facturilor emise i a valorii totale a acestora ntr-o perioad stabilit de
utilizator;
-evidena facturilor emise pentru fiecare client;
-evidena zilnic a stocului de produse, pentru fiecare categorie n parte, precum i
valoarea total a acestuia
-evidena preului unitar i a preului de vnzare al fiecrui produs.


Proiectarea si realizarea structurii BAZEI DE DATE pentru
aplicaia de gestiune

Proiectul prezentat n aceast lucrare folosete o baz de date realizat n
Microsoft Access ce conine cinci tabele.
Figura 3.1 Structura bazei de date
42
Structura tabelelor bazei de date este prezentat n continuare.
3.2.1 Tabele
Tabelul Categorii
Figura 3.2 Structura tabelului Categorii

Tabelul Categorii ajut la stabilirea nomenclatoarelor de produse din cadrul unei
firme. Acest tabel cuprinde urmtoarele cmpuri:
-cmpul Cod_categorie este de tip AutoNumber (numr cu incrementare
automat) i ajut la determinarea n mod unic a unei nregistrri din cadrul tabelului.
-cmpul Denumire este de tip Text ce are o lungime de maxim 25 de caractere.
cmpul TVA este de tip Number i reprezint TVA-ul stabilit pe fiecare categorie
de produse. Acest cmp v-a ajuta la calcularea preului de vnzare al produselor.

43
Tabelul Clieni
Figura 3.3. Structura tabelului Clieni

Tabelul Clieni a fost realizat pentru o structurare eficient a activitii firmei care
utilizeaz programul. Acest tabel cuprinde urmtoarele cmpuri:
-cmpul Cod_client este de tip AutoNumber (numr cu incrementare automat) i
ajut la determinarea n mod unic a unei nregistrri din cadrul tabelului.
-cmpurile Denumire, Adresa i Cod_fiscal sunt de tip Text cu o lungime de
maxim 25 de caractere.
-cmpul Nr_telefon este de tip Number.

44
Tabelul Facturi
Figura 3.4 Structura tabelului Facturi

Tabelul Facturi reflect informatic desfurarea activitii unei firme. Pentru
cmpurile din acest tabel s-au stabilit urmtoarele proprieti:
-cmpul Nr_factur este cheie primar, de tip AutoNumber (numr cu
incrementare automat).
-cmpul Data_factur este de tip Date/Time.
-cmpurile Cod_client, Cod_agent i Nr_aviz au fost alese chei externe de tip
Number pentru a stabili legtura cu tabelul Clieni, oferi respectiv Avize.
-cmpul Valoare_total este de tip Currency i reprezint valoarea total a unei
facturi. Acest cmp se va calcula n momentul n care se va genera de ctre utilizatorul
programului ntocmirea unei facturi pe care s-au adugat produse.


45
Tabelul Produse
Figura 3.5. Structura tabelului Produse

Tabelul Produse ajut la stabilirea nomenclatoarelor de produse din cadrul unei
firme. Acest tabel cuprinde urmtoarele cmpuri:
-cmpul Cod_produs este de tip AutoNumber (numr cu incrementare automat)
i ajut la determinarea n mod unic a unei nregistrri din cadrul tabelului.
-cmpul Denumire este de tip Text ce are o lungime de maxim 30 de caractere.
-cmpul Pre_fr_TVA este de tip Currency i reprezint preul unitar frTVA
al produsului.
-cmpul Cod_categorie a fost ales cheie extern de tip Number pentru a stabili
legtura cu tabelul Categorii.
-cmpul Stoc este de tip Number i asigur o eviden permanent a stocului de
produse al firmei.


46
Tabelul Produse/Factur
Figura 3.6. Structura tabelului Produse/Factur

Tabelul Produse/Factur a fost creat pentru a descompune legtura muli la
muli ce exista ntre tabelele Produse i Facturi, ntr-o succesiune de 2 legturi de unu
la muli. Tabelul conine:
-cheile primare ale celor dou tabele menionate mai sus, i anume Nr_factur i
Cod_produs de tip Number, denumite i chei externe n acest tabel;
-cmpul Cantitate de tip Number, necesar specificrii cantitii de produse ce va fi
adugat pe factur;
-cmpurile Valoare_fr_TVA i Valoare_cu_TVA de tip Currency i reprezint
valoarea total cu TVA i fr TVA a cantitii de produse ce se adaug pe o factur.

3.2.2 Legturile dintre tabele
ntre tabelele Clieni i Facturi s-a creat o legtur unu la muli ceea ce justific
faptul c unui client i pot fi ntocmite una sau mai multe facturi, iar o factur nu poate fi
ntocmit dect unui singur client.
47
Legtura dintre tabelele Facturi i Produse este muli la muli, adic un produs
poate exista pe mai multe facturi, iar o factura poate conine mai multe produse. Pentru
descompunerea acesteia n dou relaii unu la muli s-a adugat tabela suplimentar
Produse/Factur.
ntre tabelele Categorii i Produse s-a realizat o legtur unu la muli ceea ce
justific c unei categorii i corespund mai multe produse, iar un produs nu aparine dect
unei singure categorii. n continuare este prezentat diagrama de legturi a bazei de date
folosit n acest proiect. Relaiile descrise mai sus sunt prezentate vizual i sugestiv n
figura 3.7.
Figura 3.7. Diagrama de legturi







48
3.3. Utilizarea programrii in Visual Basic pentru
realizarea interfeei grafice

Interfaa grafic a programului Calcul a fost realizat n Visual Basic.
n diagrama urmtoare sunt prezentate toate componentele aplicaiei: Formulare,
Module i Rapoarte.

Figura 3.8 Componentele aplicaiei
3.3.1. Module de cod Visual Basic

Startul aplicaiei se face prin procedura Main, din modulul modDeclaraii, care
are ca sarcin validarea conexiunii i afiarea ferestrei Login. Conexiunea la baza de date
Calcul s-a realizat cu ajutorul obiectelor metodei DAO n felul urmtor: se deschide baza
de date n spaiul de lucru curent (g_WRK) cu ajutorul metodei OpenDatabase a
obiectului Workspace.Dup validarea conexiunii se ncarc forma Login. Option Explicit
Public g_WRK As DAO.Workspace
Public g_DB As DAO.Database
Sub Main()
49
On Error GoTo errHandler
Set g_WRK = DAO.Workspaces(0)
Set g_DB = g_WRK.OpenDatabase(App.Path & "\Calcul2004.mdb")
If g_DB Is Nothing Then
MsgBox ("Conexiunea la baza de date nu a reuit")
End
End If
Meniu.Show
Exit Sub
errHandler:
MsgBox "Eroare nr. " & Err.Number & Chr(13) & "Denumire eroare " &
Err.Description, vbCritical
End Sub
Public Sub ClearTexts(inObj As Form)
Dim ctrl As Control
If Not inObj Is Nothing Then
For Each ctrl In inObj.Controls
If TypeOf ctrl Is TextBox Then
If ctrl.Tag = "n" Then
ctrl.Text = "0"
ElseIf ctrl.Tag = "t" Then
If TypeOf ctrl Is TextBox Then ctrl.Text = Format(Now, "hh:mm:ss")
If TypeOf ctrl Is DTPicker Then ctrl.Value = Format(Now, "hh:mm:ss")
Else
ctrl.Text = ""
End If
End If
Next
End If
End Sub
Celelalte module de program sunt prezentate in anexa in format electronic.
50
3.3.2. Formulare
Meniul principal

Figura 3.9. Formularul Meniu

Formularul principal al aplicaiei conine meniul principal, ce a fost creat cu
ajutorul meniului Visual Basic MenuEditor, o caset text care va afia numele
utilizatorului conectat la baza de date i o bar de stare care prezint numele programului
i data de lucru curenta.
n momentul efecturii unui click pe o opiune de meniu, selectat din bara de
meniu a acestei ferestre, va fi apelat evenimentul click al acesteia ce va executa apariia
unei noi forme sau raport, n funcie de ce se opteaz.

Meniurile aplicaiei
Meniul Clieni permite o eviden informatic a clienilor firmei.
Aciunea ce se execut asupra acestui meniu este asemntoare ca n cazul
celorlalte meniuri.
Private Sub mnuClienti_Click()
Dim frm As Clienti
Set frm = New Clienti
frm.Show , Me
End Sub
Meniul Facturi permite nregistrarea informatic a desfurrii activitii firmei,
ce presupune intocmirea facturilor:
Aciunea ce se va executa asupra meniului Facturi va determina apariia formei
Facturi Netrimise.
Private Sub mnuFacturi_Click()
Dim frm As FacturiNetrimise
Set frm = New FacturiNetrimise
51
frm.Show , Me
End Sub
Formularul CLIENI
Formularul Clieni a fost realizat pentru o structurare eficient a activitii firmei
care utilizeaz programul. Datele introduse n aceast seciune vor fi utile pentru
reducerea timpului de ntocmire a unei facturi prin realizarea unor cutri ce vor fi
efectuate dup numele clientului.
Cu ajutorul acestui utilitar se pot ntreine datele despre clienii cu care lucreaz
firma. Ofer toate operaiile de ntreinere a acestor date i anume adugare, modificare,
salvare i tergere. n acest proiect, datele despre oferi sunt utilizate la ntocmirea
avizelor, acetia fiind cei care distribuie marfa de la firm la clieni.
Acest utilitar este reprezentat de forma Clieni. Conine un control de tipul
MSFlexGrid (tabel flexibil), casete text folosite pentru modificri i adugri de noi
nregistrri, meniuri de Adugare, Salvare, tergere i Anulare, un control de tip Image
folosit pentru revenirea la meniul principal al programului i un control label ce va afia
pentru fiecare meniu, n momentul aciunii, o descriere specific.
Apelul i execuia evenimentelor i procedurilor se va face n mod asemntor ca n
cazurile precedente.

Figura 3.10. Formularul Clieni
52
Codul pentru formularul Clienti este prezentat n anexa n format electronic.

Formularul PRODUSE
Cu ajutorul acestui utilitar se definesc categoriile i produsele pe care firma le
pune la dispoziia clienilor si.
Utilitarul este realizat cu ajutorul formei Produse, pe care s-au amplasat casete de
text, un control ListBox pentru afiarea categoriilor, butoane de comand care permit
adugarea de noi nregistrri sau modificarea nregistrrilor existente, un control
MSFlexGrid pentru afiarea produselor pentru fiecare categorie n parte, un contro Image
necesar revenirii la meniul principal al programului i un control StatusBar care afieaz
data i ora curent.

Figura 3.11. Formularul Produse
53
Apelul evenimentului Load al formei se va face n momentul n care forma este
ncrcat prin aciunea asupra submeniului Produse i va executa secvena de cod
specific:
Private Sub Form_Load()
On Error GoTo errHandler
cmdDelete.Enabled = False
Call ReincarcaDate
Exit Sub
Exit Sub
errHandler:
MsgBox "Description " & Err.Description
End Sub

Apelul funciei RencarcDate execut deschiderea unui nou obiect Recordset ce
va conine toate nregistrrile din tabelul Categorii care vor fi adugate n lista
lstCategorii cu ajutorul metodei AddItem al acesteia. Tot n momentul apelrii
acestei funcii se va executa i crearea nceputului de tabel.

Public Function ReincarcaDate() As Boolean
Dim rst As DAO.Recordset
Set rst = g_DB.OpenRecordset("SELECT * FROM Categorii",
dbOpenForwardOnly)
lstCategorii.Clear

Do While Not rst.EOF
lstCategorii.AddItem IIf(IsNull(rst.Fields(1).Value), "", rst.Fields(1).Value) & "
(" & IIf(IsNull(rst.Fields(2).Value), "", rst.Fields(2).Value) & ")"
lstCategorii.ItemData(lstCategorii.ListCount - 1) =
rst.Fields("Cod_categorie").Value
rst.MoveNext
Loop
54
rst.Close
Set rst = Nothing
With flxProduse
Cols = 5
Rows = 1
TextMatrix(0, 0) = "Cod produs"
ColWidth(0) = flxProduse.Width * 0.1
TextMatrix(0, 1) = "Produs"
ColWidth(1) = flxProduse.Width * 0.3
TextMatrix(0, 2) = "Pret"
ColWidth(2) = flxProduse.Width * 0.25
TextMatrix(0, 3) = "Stoc"
ColWidth(3) = flxProduse.Width * 0.25
ColWidth(4) = 0
End With
End Function

Adugarea de noi categorii se va face prin efectuarea unui click pe butonul de
comand Adaug categorie nou. La efectuarea aciunii se va apela evenimentul
corespunztor acestei comenzi.

Private Sub cmdNewInreg_Click()
LblStatus.Caption = "Adauga o noua categorie!"
ifNew = True
Categ.CodCateg = 0
Categ.Den = ""
Categ.Adaos = 0#
txtCategorie.SetFocus
Call ClearTexts(Me)
cmdsterg.Enabled = False
cmdNewInreg.Enabled = False
55
cmdSave.Enabled = True
Casute True
cmdcancel.Enabled = True
lstCategorii.Enabled = False
End Sub

Salvarea nregistrrii adugate se realizeaz prin apelarea evenimentului Click
corespunztor butonului de comand Salveaz. n cadrul acestui eveniment se vor
verifica mai nti datele introduse i dac acestea sunt corecte se va efectua salvarea
nregistrrii n baza de date cu ajutorul metodei AddNew respectiv Update ale variabilei
obiect rst, dac nregistrarea este nou, sau cu ajutorul metodei Edit a obiectului
Recordset, dac se realizeaz o modificare n cadrul setului de nregistrri. Dup
realizarea acestor modificri lista de categorii va fi i ea actualizat.

Valoarea TVA-ului introdus pentru fiecare categorie se va utiliza la calcularea
preului de vnzare al produselor.
Afiarea produselor n tabelul flexibil flxProduse se va face n urma selectrii unei
categorii din lista de categorii la apelarea urmtoarei secvene de cod:

Private Sub lstCategorii_Click()
cmdDelete.Enabled = True
If lstCategorii.ListIndex >= 0 Then
Call PutData
Dim rst As DAO.Recordset
Dim strline As String
Dim contor As Long
Set rst = g_DB.OpenRecordset("SELECT * FROM Produse WHERE
Cod_categorie = " & lstCategorii.ItemData(lstCategorii.ListIndex),
dbOpenForwardOnly)
flxProduse.Rows = 1
contor = 1
56
Do While Not rst.EOF
With flxProduse
strline = ""
strline = contor & vbTab
strline = strline & rst!Denumire & vbTab
strline = strline & rst!Pret_fara_TVA & vbTab
strline = strline & rst!Stoc! & vbTab
strline = strline & rst!Cod_produs & vbTab
AddItem strline
End With
flxProduse.Refresh
rst.MoveNext
contor = contor + 1
Loop
rst.Close
Set rst = Nothing
Else
Categ.CodCateg = 0
Categ.Den = ""
Categ.Adaos = 0#
Call ClearTexts(Me)
End If
cmdSave.Enabled = True
Casute True
cmdcancel.Enabled = True
cmdsterg.Enabled = True
cmdNewInreg.Enabled = False

End Sub

57
Funcia PutData este apelat la execuia evenimentului Click specific listei
lstCategorii i execut afiarea n casetele de text de pe form a categoriei i a valoarii
TVA-ului specific nregistrrii selectate de utilizator din list.

Private Sub PutData()
If lstCategorii.ListIndex >= 0 Then
Categ.CodCateg = lstCategorii.ItemData(lstCategorii.ListIndex)
Dim l_poz As Integer
l_poz = InStr(1, lstCategorii.List(lstCategorii.ListIndex), "(", vbTextCompare)
Categ.Den = Trim(Mid(lstCategorii.List(lstCategorii.ListIndex), 1, l_poz - 1))
txtCategorie.Text = Categ.Den
Dim l_strTVA As String
l_strTVA = Trim(Mid(lstCategorii.List(lstCategorii.ListIndex), l_poz + 1,
Len(lstCategorii.List(lstCategorii.ListIndex)) - l_poz - 1))
If IsNumeric(l_strTVA) Then
Categ.Adaos = CSng(l_strTVA)
txtTVA.Text = Categ.Adaos
Else
Categ.Adaos = 0
End If
End If
End Sub

Adugarea sau modificarea unui produs se face cu ajutorul formei
ModificriProduse. Adugarea produsului se face selectnd mai nti categoria n cadrul
creia vrem s adugm produsul i apoi apsnd butonul Adaug produse. La apsarea
acestui buton se acioneaz evenimentul Click corespunztor acestuia ce va duce la
apariia formei ModificriProduse. Secvena de cod specific acestui eveniment este
urmtoarea :

Private Sub cmdAdd_Click()
58
If lstCategorii.ListIndex >= 0 Then
Pretproduse.myCodcategorie = lstCategorii.ItemData(lstCategorii.ListIndex)
Pretproduse.Show 1, Me
Pretproduse.txtProdus.Enabled = True
Pretproduse.txtStoc.Enabled = True
Call ClearTexts(Me)
Call lstCategorii_Click
Else
MsgBox "Selectati mai intai categoria de produse!", vbInformation
End If
End Sub

Cum am specificat mai sus aceast form este folosit pentru a aduga sau a
modifica produsele selectate n tabelul existent pe forma Produse.
Salvarea nregistrrilor adugate sau modificate se va face executnd codul
specific evenimentului Click al butonului de comand Salveaz.
Pentru ntocmirea unei facturi va fi nevoie de introducerea n casetele text a
clientului cruia i se ntocmete factura. Casetele text de pe aceast form au proprietatea
Enabled setat pe False. n cazul de fa utilizatorul nu va avea acces direct la datele din
aceste casete. Afiarea datelor n aceste casete va fi generat n momentul apelrii
evenimentul Click al butonului de comand Adaug de pe forma selecie clieni. Pentru
ncrcarea acestei forme va fi necesar apelarea evenimentului Click al controlului Image
specific cutrii clienilor.
59

Figura 3.12. Formularul Selecie clieni

Afiarea clienilor n lista lstClieni va fi executat la apelul evenimentului Load
af formei Selecie clieni.

Private Sub Form_Load()
On Error GoTo errHandler
Call ReincarcaDate
Exit Sub
Exit Sub
errHandler:
MsgBox "Description " & Err.Description
End Sub
60

Public Function ReincarcaDate() As Boolean
Dim rst As DAO.Recordset
Set rst = g_DB.OpenRecordset("SELECT * FROM Clienti",
dbOpenForwardOnly)
lstClienti.Clear
Do While Not rst.EOF
lstClienti.AddItem IIf(IsNull(rst.Fields(1).Value), "", rst.Fields(1).Value) & "
" & IIf(IsNull(rst.Fields(2).Value), "", rst.Fields(2).Value)
lstClienti.ItemData(lstClienti.ListCount - 1) = rst.Fields("Cod_client").Value
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Function

n cadrul acestei forme s-a fcut o cutare dup numele clientului. La apelarea
evenimentului KeyUp al casetei de text txtcaut se va crea un nou obiect Recordset ce va
conine toi clienii din tabelul Clieni al bazei de date al cror nume ncepe cu litera
introdus de utilizator n caseta txtcaut, n acelai timp actualizndu-se i lista lstClieni.
Private Sub txtcauta_KeyUp(KeyCode As Integer, Shift As Integer)
Dim rst As DAO.Recordset
Set rst = g_DB.OpenRecordset("Select * From Clienti Where denumire like """ &
txtcauta.Text & "*""", dbOpenDynaset, dbForwardOnly)
If Not rst.EOF Then
lstClienti.Clear
Do While Not rst.EOF
lstClienti.AddItem (rst.Fields(1).Value & " - " & rst.Fields(2).Value)
rst.MoveNext
Loop
End If
61
End Sub
Adugarea clientului selectat din list se va face prin execuia urmtoarei
secvene de program:

Private Sub mnuAdauga_Click()
ifNew = True
LblStatus.Caption = "Adauga o noua inregistrare"
txtDenumire.SetFocus
If FlxClienti.Row > 0 Then
If Not ifSaved Then
If MsgBox("Salvati modificarile facute?", vbQuestion Or vbYesNo) = vbYes
Then
'salvare inregistrare
If CulegDate Then
Call SaveData
Else
Exit Sub
End If
Else
'initiez o noua inregistrare
End If
End If
End If
Call ClearTexts(Me)
myReg.IDClient = 0
ifSaved = False
mnuSterge.Enabled = False
mnuAdauga.Enabled = False
mnuSave.Enabled = True
Casute True
mnuAnuleaza.Enabled = True
62
FlxClienti.Enabled = False
End Sub
Dup selectarea clientului cruia i se ntocmete factura, a agentului care a adus
comanda de la client ce ajut la ntocmirea facturii i a datei curente se va putea apsa
butonul de comand Save.
Private Sub mnuSave_Click()
LblStatus.Caption = "Salveaza inregistrarea"
If CulegDate Then
If SaveData Then
ifSaved = True
End If
Call ClearTexts(Me)
End If
mnuAdauga.Enabled = True
Casute True
mnuSave.Enabled = True
mnuAnuleaza.Enabled = True
mnuSterge.Enabled = True
FlxClienti.Enabled = True
End Sub

Procedura SaveFactura apelat n cadrul evenimentului anterior execut
adugarea unei noi nregistrri n tabelul Facturi al bazei de date i afiarea valorilor
existente n controalele text, respectiv combobox de pe forma Facturi netrimise, n
casetele text existente pe forma Intocmire factur, casete ce nu sunt accesibile
utilizatorului, fiind folosite numai pentru afiarea datelor despre factur (date despre
client, despre agent i numrul i data ntocmirii facturii).
63
Figura 3.13. Formular ntocmire factur

Pe aceast form, pe lng casetele text folosite pentru afiarea datelor despre
factur, mai sunt adugate butoane de comand folosite pentru adugri de produse pe
factur, calculul valorii totale al facturii, controale etichete folosite pentru afiarea valorii
facturii i un tabel flexibil pentru vizualizarea produselor ce sunt adugate prin
intermediul formei Selecie produse.
n momentul aciunii asupra butonului Adaug produs, va fi apelat evenimentul
Click corespunztor acestui produs.
64

Figura 3.14. Formular Selecie produse









65
CAPITOLUL 4

CALCULE TEHNICO ECONOMICE PENTRU
EVALUAREA EFICIENEI SISTEMULUI
INFORMATIC PROIECTAT SI REALIZAT


Volumul mare al activittii necesare pentru a dezvolta si ntreine programele (si
deci implicit nivelul nalt al costurilor asociate), justific interesul din ce n ce mai larg
pentru asigurarea unei calitti corespunztoare aplicaiilor precum si minimizarea
costurilor de elaborare a acestora. Sunt utilizate metode si instrumente adecvate analizei
n detaliu a cerinelor software si de elaborare sau testare a programelor, ce asigur un
minimum de erori admisibile si o productivitate ct mai mare.

Evaluarea de software
Factorii de evaluare pentru software:
- eficiena: rezultatele oferite n urma prelucrrii, viteza de prelucrare, performanele;
- flexibilitatea: posibilitatea de a prelucra datele oferite de alte soft-uri sau de a folosi
rezultatele prelucrrii altor programe;
- securitate: msura n care datele nu sunt afectate de atacuri informatice, virui i
posibilitatea de a asigura secretul acestora;
- limbaj: dac soft-ul se gsete n limba local;
- hardware: existena de conflicte cu hardware;
- cost: preul de achiziie;
- disponibilitate: posibilitile de livrare imediat sau data livrrii;
- compatibilitate: cu alte soft-uri sau sisteme de operare existente sau n curs de
achiziie;
66
- tehnologie: data fabricaiei, versiunea programului sau generaia din care face parte;
- documentaia: dace este complet, forma n care se gsete, limba n care este scris;
- ergonomie: dac softul este uor utilizabil n exploatare i accesibil;
- suport: dac exist asisten on-line, perioada ct dureaz aceasta.
Ciclul de viat al produsului software poate fi exprimat si prin procentul de timp alocat
fiecrei etape din procesul de dezvoltare. Un exemplu tipic ar fi urmtorul:
Analiza cerintelor: 7%
Elaborarea specificaiilor pentru programe: 12%
Proiectarea programelor: 21%
Implementarea programelor: 20%
Instalarea si testarea programelor: 40%
Pentru a nvinge concurenta produsele trebuie s coste ct mai puin, s fie de calitate si
s apar pe piat ct mai repede. Acest obiectiv se poate atinge doar printr-o abordare
organizat, planificat, a procesului de dezvoltare. Unul din primii pai realizai atunci
cnd se ia decizia de elaborare a unui nou program este evaluarea calitativ si cantitativ
a acestuia pentru a stabili n mod corect necesarul de resurse umane, materiale si de timp.
Iat n continuare o descriere a celor mai recente metode de evaluare, impuse pe scar
larg. Atenia se va concentra n special asupra metodelor de evaluare dimensional si
functional, acestea fiind cel mai des utilizate datorit performantelor lor.

Metode de evaluare a sistemelor informatice de ctre dezvoltatori
Sistemul informatic poate fi evaluat n mod direct fie indirect. Prin evaluarea direct a
procesului de inginerie software se nelege determinarea costurilor si a eforturilor
asociate. Ea presupune calculul numrului liniilor de cod (LOC - lines of code) scrise,
determinarea vitezei de execuie, a dimensiunii memoriei, precum si a numrului de
defecte raportat ntr-un anumit interval de timp.
Evaluarea indirect a produsului reprezint n fapt o analiz a functionalittii, calittii,
complexittii, eficientei, fiabilittii, ntreinerii si multor altor caracteristici.
67
Costul si efortul necesar pentru a dezvolta software, calculul numrului de linii de cod
(LOC) precum si alte estimri directe sunt relativ uor de estimat iniial. Totui, calitatea
si funcionalitatea sau eficienta si ntreinerea sunt mult mai dificil de evaluat si pot fi
msurate doar n mod indirect. Metodele de evaluare ale produsului pot fi descrise dup
cum urmeaz:
Evaluarea productiv se concentreaz asupra rezultatelor finale ale procesului de
inginerie software;
Evaluarea calitativ ofer o indicaie a ct de aproape este produsul software de
cerinele implicite si explicite ale clientului;
Evaluarea tehnic evideniaz mai degrab caracteristicile produsului software (ex.:
complexitatea logic, gradul de modularizare) dect procesul prin care acesta a
fost dezvoltat;
Evaluarea dimensional este utilizat pentru a "colecta" evalurile directe ale
rezultatelor si calittii procesului de inginerie software;
Evaluarea functional ofer o evaluare indirect;
Evaluarea orientat pe resursele umane ofer informaii asupra modului n care
programatorii dezvolt un produs software precum si asupra percepiei eficientei
instrumentelor si modelelor de dezvoltare.
n continuare vom face o abordare detaliat a dou dintre metodele de evaluare expuse ce
sunt mai frecvent utilizate de ctre casele de soft.
Metoda evalurii dimensionale
Evaluarea dimensional a produsului software reprezint o estimare direct a acestuia
precum si a procesului prin care el este dezvoltat. Daca un manager de proiect menine
nregistrri simple, poate fi creat un tabel cu datele ordonate dup criteriul dimensiunii.
Pentru fiecare proiect, datele dimensionale uzuale sunt:
-efortul estimeaz necesarul de resurse umane si se msoar n programatori-pe-lun
sau programatori-pe-an;
KLOC (Kilo Lines of Code) - mii de linii de cod;
68
-valoarea este exprimarea bnesc a efortului;
-pagini de documentaie;
-numrul de erori raportate de utilizatori ntr-o perioad de timp (de pild un an).
-numrul de programatori care au lucrat la dezvoltarea produsului software.
Din datele primare coninute ntr-un astfel de tabel (vezi caseta "Evaluarea
dimensional")poate fi realizat o evaluare a productivittii si una a calittii, orientate
dimensional, pentru fiecare proiect n parte:
Productivitatea = KLOC / Programatori-pe-lun
Calitatea = Numr de erori / KLOC
n completare, pot fi calculai ali parametri interesani:
Cost = Valoare / KLOC
Documentaie = Pagini de documentaie / KLOC
Utilizarea parametrilor dimensionali (KLOC, efort, etc.) este controversat si ei nu sunt
universal acceptai ca reprezentnd cea mai bun metod de evaluare a procesului de
dezvoltare software. Controversa se nvrte n jurul utilizrii liniilor de cod LOC ca
mrime principal. Sustintorii variabilei LOC afirm c aceasta este un artefact al
tuturor proiectelor de dezvoltare software si poate fi uor calculat, ca multe modele de
estimare utilizeaz LOC sau KLOC ca date de intrare principale si c exist deja o
literatur imens (plus date asociate) dedicat LOC. Pe de alt parte, opozanii reclam c
variabila LOC este dependent de limbajul de programare, c LOC poate penaliza
programe bine proiectate dar scurte, c nu se poate asocia usor limbajelor neprocedurale
si c utilizarea ei n estimare necesit un nivel de detaliere care poate fi dificil de obinut
(ex: managerul de proiect trebuie s estimeze numrul de linii de cod ce trebuie produse
cu mult nainte ca analiza si proiectul programului s fi fost ncheiate).
Evaluarea Functional
Parametrii ce caracterizeaz din punct de vedere funcional produsul software reprezint
o evaluare indirect a acestuia si a procesului prin care el este dezvoltat. Evitnd calculul
LOC, parametri funcionali se concentreaz asupra "functionabilittii" sau "utilittii"
programului. Acest tip de evaluare a fost propus pentru o abordare prin msurarea
69
productivittii, numit metoda scorului funcional. Scorul funcional (SF) este obinut
utiliznd o relaie empiric bazat pe estimri calculabile ale domeniului de informaie al
produsului precum si pe evaluri ale complexittii aplicaiei.
Valorile domeniului de informaie se definesc n urmtorul mod:
Numrul de intrri a utilizatorului: Fiecare intrare a utilizatorului care furnizeaz
aplicaiei date distincte orientate ctre aceasta este luat n calcul. Intrrile vor
trebui distinse de interogri, care sunt calculate separat.
Numrul de ieiri a utilizatorului: Fiecare ieire ctre utilizator, care furnizeaz
acestuia informaii orientate ctre aplicaie, este luat n calcul. n acest context
termenul "iesire" se refer la rapoarte, ecrane, mesaje de eroare, etc. Datele
individuale ale unui raport nu sunt calculate separat.
Numrul de interogri a utilizatorului: O interogare este definit ca o intrare on-line
ce are drept rezultat generarea unui rspuns imediat al aplicaiei sub forma unei
ieiri on-line. Fiecare interogare distincta este luat n calcul.
Numrul de fiiere: Fiecare fiier logic de tip "master", cum ar fi o colecie logic de
date care poate fi parte a unei baze de date largi sau a unui fiier individual, este
luat n calcul.
Numrul de interfee externe: Toate interfeele citibile de ctre masin (fiiere de date
pe band sau disc dur) care sunt utilizate pentru a transmite informaii ctre alt
sistem sunt luate n calcul.
Odat ce datele de mai sus au fost colectate, un indice de complexitate este asociat
fiecrui calcul. Organizaiile care utilizeaz metoda scorului funcional dezvolt criterii
pentru a stabili faptul dac o anumit intrare este simpl, medie sau complex.
Bineneles, determinarea complexittii este un proces relativ subiectiv. Pentru a calcula
scorul funcional, este utilizat urmtoarea relaie:
SF = totalul-de-calcul * 0.65 + 0.01 * SUM (Fi);
unde totalul-de-calcul este suma rezultatelor pariale obinute prin ponderarea valorilor
domeniului de informaie . Valorile constante din ecuaia de mai sus precum si factorii de
influent care sunt aplicai calculului domeniului de informaii sunt determinai empiric.
70
Valorile de ajustare a complexittii (Fi, i=1...14) se determin evalund 14 factori:
Necesit sistemul back-up si recovery?
Sunt necesare facilitti de comunicaii de date?
Sunt necesare funcii de procesare distribuit?
Este criteriul performantei critic?
Va rula sistemul ntr-un mediu operaional utilizat intens?
Necesit sistemul intrri de date n regim on-line?
Necesit sistemul de intrri de date n regim on-line, ca procesul de introducere al datelor
s aib loc pe ecrane sau prin operaiuni multiple?
Sunt fiierele actualizate on-line?
Sunt intrrile, ieirile si interogrile complexe?
Este procesul intern complex?
Este codul proiectat astfel nct s fie reutilizat?
Sunt conversia si instalarea programului incluse n design?
Este sistemul proiectat pentru instalri multiple n organizaii diferite?
Este aplicaia proiectat astfel nct s faciliteze modificarea si uurina n utilizare din
partea beneficiarului?
Fiecare factor este evaluat cu o not de la 0 la 5, avnd semnificaiile:
0 - Nu influenteaz;
1 - Incidental;
2 - Moderat;
3 - Mediu;
4 - Semnificativ;
5 - Esenial;
Odat ce scorul funcional a fost calculat, el este utilizat ntr-o manier asemnatoare cu
metoda LOC ca o msur a productivittii, a calittii si a altor atribute ce definesc
programul:
Productivitatea = SF / Programatori-pe-lun
Calitatea = Numr Defecte / SF
Costul =Valoare / SF
71
Documentaia = Pagini de Documentaie / SF
Evaluarea pe baza scorului funcional a fost conceput iniial pentru a putea fi utilizat n
sistemele de informaii pentru afaceri. Totui, extinderea propus ulterior, denumit scor
caracteristic (SC), poate permite aplicarea acestei metode si n cazul programelor din
domeniul sistemelor inginereti. Scorul caracteristic este adecvat descrierii aplicaiilor n
care complexitatea algoritmilor este nalt. Aplicaiile n timp real, de control al
proceselor precum si cele orientate spre obiecte au tendina de a avea o complexitate
algoritmic mare si sunt prin urmare potrivite evalurii prin metoda scorului caracteristic.
Pentru a calcula acest scor valorile domeniului informaional sunt din nou contorizate si
ponderate. Spre deosebire de calculul scorului funcional, scorul caracteristic ia n
considerare nc un domeniu de informaie (algoritmi) iar valorile de ponderare sunt fixe.
Valoarea scorului caracteristic final se obine din ecuaia:
SC = totalul-de-calcul * 0.65 + 0.01 * SUM (Fi);


REZULTATELE EVALUARII PROGRAMULUI REALIZAT COMPARATIV
TIP PARAMETRU
( in general adimensional)
APLICATIA
REALIZATA
DOMENIU VALORI PROGRAME SIMILARE
KLOC (Kilo Lines of Code)
7,8 N/A
SF (scorul funcional)
6,4 5-8
Productivitatea
14 10-15
Calitatea
2 1-1,5
Costul
400 1000-1400
Documentaia
1 2-3
SC (scorul caracteristic final)
1425 500-3000



72
CAPITOLUL 5

CONCLUZII ASUPRA IMPLEMENTARII
SISTEMULUI INFORMATIC

1. Realizarea programului a respectat fazele dezvoltrii unui produs software
Faza de analiza
Faza de proiectare
Faza de implementare
Faza de testare
2. Din cadrul metodologiilor de dezvoltare a programelor, metodologii generice
abordate au fost: Metodologia secvenial si Metodologia ciclica iar din cadrul
metodologiilor concrete, Metodologia cascada si Prototipizarea.
3. S-au respectat etapele necesare pentru managementul unui proiect software:
Planificarea proiectului
Controlul proiectului
Managementul configuraiei
Managementul echipei ( Managementul forei de munc si Organizarea echipei).
4. Estimarea costurilor programului s-a realizat prin Modele algoritmice clasice in
care s-a inut cont si de Distribuirea forei de munca in timp.
5. Fiind un program puternic dependent de legislaia financiara si din domeniul
contabil s-a inut cont in dezvoltarea aplicaiei de posibilitatea de reutilizare a
resurselor.
Posibilitatea de Reutilizare a produselor intermediare, a unor Biblioteci si componente
software, abloane, Reutilizarea proiectrii, Reutilizarea instrumentelor si a tehnicilor
precum si de unele Aspecte non-tehnice ale reutilizrii software: Economia refolosirii
software si de aspecte psihologice ale refolosirii software .


73
De exemplu, programul trebuie s permit trecerea la oricare din metodele declarate c vor
fi utilizate in raportri ctre administraia financiar pentru gestiunea stocurilor:
o Folosind metoda Cost mediu unitar ponderat
o Folosind metoda FIFO (primul intrat primul ieit)
o Folosind metoda LIFO (ultimul intrat primul ieit)

6. Ingineria cerinelor
Pentru proiectare si realizare s-a inut cont de: Metode pentru identificarea cerinelor
utilizatorilor, Metode pentru specificarea cerinelor utilizatorilor si crearea unui
Document al cerinelor utilizatorului.





















74

BIBLIOGRAFIE

1. Burada, Corneliu. Contabilitatea stocurilor cumprate in metodele cost standard si
pre cu amnuntul. In : Gestiunea si contabilitatea firmei, v.10, nr. 7, p. 15-20,
2007;
2. Ilie, Vasile. Gestiunea financiara a ntreprinderii. Bucureti : Meteor Press, 2006;
3. Moroan, Ioan. Monografie contabila privind stocurile partea I -. In : Contabilitatea,
expertiza si auditul afacerilor, nr. 3, p. 25-33, 2007;
4. Ristea, Mihai. Tratamente contabile si informaionale privind imobilizrile corporale.
In : Gestiunea si contabilitatea firmei, v. 10, nr. 8, p. 2-23, 2007;
5. tefnescu, Aurelia ; Nisuleascu, Ileana. Practici contabile privind stocurile in
entitile sectorului public. In : Gestiunea si contabilitatea firmei, v. 9, nr. 5, p. 29-30, 35-
37, 2006;
6. Bigan Cristin Gestiunea Bazelor de date ed. Agerpress Bucureti 2007
7. Bigan Cristin, Sisteme informatice , Ed. Bren 2010
8. Microsoft Corporation Microsoft Office Users Guide www.microsoft.com

S-ar putea să vă placă și