-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