66
CUPRINS Introducere ....................................................... ................................................................... ........ 2 Capitolul I : Analiza gestiunii stocurilor ................................................................... .................. 3 I. 1 Stocurile ................................................................... .............................................................. 3 I.1.1 Definirea stocurilor .................................................................... ................................. 3 I.1.2 Tipuri de stocuri .................................................................... ...................................... 3 I.1.3 Rolul stocurilor .................................................................... ....................................... 3 I. 2 Gestiunea stocurilor ................................................................... ............................................ 4 I.2.1 Sfera gestiunii stocurilor .................................................................... ........................ 4 I.2.2 Obiective şi rezultate ale gestiunii ştiinţifice a stocurilor .......................................... 4 I.2.3 Funcţiile gestiunii stocurilor .................................................................. ..................... 5 I.2.4 Elementele principale ale unui proces de stocare ....................................................... 5 I.2.5 Factorii de influenţă a gestiunii stocurilor .................................................................. 5

Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Embed Size (px)

Citation preview

Page 1: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

CUPRINS

Introducere .................................................................................................................................. 2

Capitolul I : Analiza gestiunii stocurilor ..................................................................................... 3

I. 1 Stocurile ................................................................................................................................. 3I.1.1 Definirea stocurilor ..................................................................................................... 3I.1.2 Tipuri de stocuri .......................................................................................................... 3I.1.3 Rolul stocurilor ........................................................................................................... 3

I. 2 Gestiunea stocurilor ............................................................................................................... 4I.2.1 Sfera gestiunii stocurilor ............................................................................................ 4I.2.2 Obiective şi rezultate ale gestiunii  ştiinţifice a stocurilor .......................................... 4I.2.3 Funcţiile gestiunii stocurilor ....................................................................................... 5I.2.4 Elementele principale ale unui proces de stocare ....................................................... 5I.2.5 Factorii de influenţă a gestiunii stocurilor .................................................................. 5I.2.6 Situaţii periculoase în gestiunea stocurilor ................................................................. 6I.2.7 Modalităţi practice de gestiune a stocurilor ................................................................ 6I.2.8 Indicatori ai eficienţei gestiunii stocurilor .................................................................. 10

Capitolul II : Proiectarea programului de gestiune a stocurilor unei farmacii ............................ 11

II.1 Noţiuni de proiectare a bazelor de date .................................................................................. 11II.2 Analiza principalilor indicatori şi operatori relaţionali .......................................................... 12

II.2.1 Caracteristici ale bazelor de date relaţionale ............................................................. 12II.2.2 Operatorii relaţionali ai bazelor de date relaţionale.................................................... 13II.2.3 Noţiunile şi conceptele bazelor de date relaţionale, modelul entitate-relaţie ........... 14 II.2.4 Modelarea grafică a bazelor de date relaţionale ........................................................ 15

II.3 Analiza detaliată a proiectării bazei de date relaţionale care va gestiona stocurile unei farmacii ........................................................................................................... 16

Capitolul III : Realizarea programului de gestiune a stocurilor unei farmacii realizat în Microsoft Access 2000 ....................................................................................... 18

III.1 Prezentare Access ................................................................................................................. 18III.2 Crearea bazei de date de gestiune a stocurilor unei farmacii ............................................... 19III.3. Crearea de filtre, interogări şi rapoarte ............................................................................... 24III.4. Crearea unei interogări de tip crosstab ................................................................................ 31III.5.Utilizarea programului de gestiune a stocurilor unei farmacii realizat în

Microsoft Access 2000 ........................................................................................................ 38

Concluzii ..................................................................................................................................... 42

BIBLIOGRAFIE ........................................................................................................................ 43

Page 2: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Introducere

Tema proiectului ”Proiecatarea unui sistem informatic pentru gestiunea stocurilor” este în strânsă legătură atât cu disciplina „Sisteme informatice de asistare a deciziilor” la care se prezintă acest proiect, cât şi cu cu specialitatea Facultăţii de Ştiinţe Economice, Contabilitate şi Informatică de Gestiune, din a cărei programă face parte disciplina menţionată.

După cum reiese şi din titlul temei, proiectul cuprinde două componente: o componentă informatică şi o componentă economică. Acestea sunt tratate separat din punct de vedere al bazelor teoretice, după care acestea devin un tot unitar, la realizarea practică a sistemului informatic, materializat prin obţinerea unui program de gestiune a stocurilor, în mod arbitar ales al uneii farmacii, deoarece este un model simplu de gestiune a stocurilor, folosind platforma de programare a Microsoft Access 2000.

Pentru realizarea unei unităţi în expunerea proiectului, s-a făcut în primul rând prezentarea noţiunilor teoretice ale componentei economice, urmată de prezentarea noţiunilor teoretice ale componentei informatice, iar în final se arată pas cu pas modul de programare al softului de gestiune al farmaciei. În momentul utilizării bibliografie a unor relaţii, noţiuni sau paragrafe, acestea sunt indicate corespunzător în proiect, prin folosirea notelor de subsol.

La tratare noţiunilor teoretice ale componentei economice s-a făcut o prezentare amănunţit stocurile şi gestiunea stocurilor. Sunt arătate modalităţile de definire a stocurilor, tipurile şi rolul acestora. La gestiunea stocurilor se dezbat ariile de cuprindere ale gestiunii stocurilor, obiectivele şi rezultatele unei gestiuni informatice a stocurilor, funcţiile gestiunii stocurilor, elementele procesului de stocare, factorii de influenţă şi situaţiile periculoase întâlnite în cazul unei gestiuni informatizate a stocurilor, modalităţile practice de gestiune şi indicatorii eficieţei gestiunii stocurilor.

La tratarea noţiunilor teoretice ale componentei informatice s-au prezentat criteriile unei proiectări de baze de date, analiza principalilor indicatori şi operatori ai unei baze de date relaţionale, noţiunile, conceptele, caracteristicile şi modelarea grafică a bazelor de date relaţionale bazate pe modelul entitate-relaţie, precum şi analiza detaliată a proiectării în cazul particular ales al unei baze de date relaţionale care va gestiona stocurile unei farmacii.

Prezentarea teoretică a platformei de programare a programului Microsoft Acces 2000 este urmată de expunerea pas cu pas a proiectării bazei de date, a creării acesteia precum şi a creării filtrelor, interogărilor şi rapoartelor.

În ultima parte a proiectului este dezbătută utilizarea sistemului informatic de gestiune a stocurilor unei farmacii, din punct de vedere al unui utilizator de program, care în cazul analizat poate fi reprezentat de persoana care vinde medicamentele aflate în stocul şi respectiv în gestiunea farmaciei.

2

Page 3: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Capitolul I : Analiza gestiunii stocurilor

I.1 Stocurile

I.1.1 Definirea stocurilorStocurile reprezintă cantităţi de resurse materiale sau produse finite sau într-un stadiu oarecare

de fabricaţie, acumulate în depozitele de aprovizionare ale unităţilor economice într-un anumit volum şi o anumită structură, pe o perioadă de timp determinată, în vederea unei utilizări ulterioare.

Stocul este o rezervă de material destinat să satisfacă cererea beneficiarilor, aceştia identificându-se, dupa caz, fie unei clientele (stoc de produse finite), fie unui serviciu de fabricaţie (stocuri de materii prime sau de semifabricate), fie unui serviciu de întreţinere (articole de consum curent sau piese de schimb), fie unui serviciu de după vânzare (piese detaşate).

Stocul reprezintă ansamblul de bunuri care se formează în ciclul de exploatare al intreprinderii pentru a fi vândut în starea în care se gaseşte în urma unui proces de producţie în curs sau viitor, sau pentru a fi consumat la prima necesitate1.

Stocul reprezintă un ansamblu de bunuri sau de articole acumulate în aşteptarea unei utilizări ulterioare, mai repede sau mai târziu şi care permite alimentarea utilizatorului pe măsura nevoilor sale, fără a fi perturbat de întârzieri în livrări sau de incapacitatea furnizorului de a fabrica temporar respectivele bunuri.

Noţiunea de stoc grupează: aprovizionarea: materiile prime, furnizorii; produsele: intermediare şi finite; intermediarii: cumpărătorii care revând marfa.

Orice stoc se caracterizează printr-un flux de intrare pe care intreprinderea îl poate previziona într-un anumit grad, precum şi printr-un flux de ieşire, pe care rareori intreprinderea îl poate stapâni, fiind impus de clienţi, dar şi de un nivel de bunuri în aşteptare.

I.1.2 Tipuri de stocuriDin punct de vedere al producţiei, stocurile pot fi de producţie (stoc în amonte), de desfacere

(stoc în aval) şi stoc interoperaţional.Din punct de vedere al rolului jucat pe plan  economic, stocurile pot fi cu rol de regulator, cu

rol strategic şi stocuri speculative.Din punct de vedere al modului de depozitare, care ţine seama şi de unele proprietăţi fizico-

chimice ale elementelor, avem: produse periculoase, voluminoase, fragile etc.Din punct de vedere al modului de gestionare există stocuri cu gestiune normală, stocuri cu

“afectare directă” (comandate special pentru o anume comandă), stocuri “fără gestiune” (din magaziile intermediare, cu o supraveghere globală) şi stocuri de produse consumabile.

Din punct de vedere al caracteristicilor formării şi destinaţiei lor, există stoc curent, stoc de siguranţă, stoc de pregătire sau de condiţionare, stoc pentru transport intern şi stoc de iarnă.

I.1.3 Rolul stocurilorRolul determinant al stocurilor este evidenţiat de faptul că acestea asigură certitudine, siguranţă

şi garanţie în alimentarea continuă a producţiei şi ritmicitatea desfacerii rezultatelor acesteia2. Altfel spus, procesul de stocare apare ca un regulator al ritmului aprovizionărilor cu cel al producţiei, iar stocul reprezintă acel “tampon inevitabil” care asigură sincronizarea cererilor pentru consum cu

1 Pleşea Doru - Bazele contabilităţii, vol. II, Ed. Omnia Uni SAST, Braşov, 20052 Gheorghe Basanu, Mihai Pricop - Managementul aprovizionării şi desfaceri, Ed. Economica, 1996

3

Page 4: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

momentele de furnizare a resurselor materiale. Rolul stocului este multiplu şi are numeroase raţiuni economice, financiare, tehnice, comerciale.

Justificarea existenţei stocurilor de  materii prime, componente sau produse finite rezultă din:a) Raţiuni financiare: stocarea produselor scumpe pentru un scop speculativ specific

perioadelor de criză sau inflaţie, menţinerea valorii anumitor materii prime sau produse, eliminându-se astfel riscul creşterii exagerate a cheltuielilor de fabricaţie datorită penuriei;

b) Raţiuni economice: reducerea cheltuielilor de transport prin achiziţionarea unor cantităţi mai mari decât stocul curent necesar, acceptarea ofertei propuse de furnizor cu cantităţi fixe de livrare la preţuri foarte avantajoase pentru produsele care nu implică costuri mari de stocare, stocarea producţiei excedentare în raport cu cererea în cazul în care oprirea şi repornirea activităţilor productive costă, fiind preferată realizarea unei producţii constante cu stocuri care să raspundă cererilor suplimentare ocazionale;

c) Raţiuni tehnice: ameliorarea calităţii produselor (uscarea lemnului, şampanizarea vinului);d) Raţiuni comerciale: reducerea termenelor de livrare mai ales cand clienţii doresc produsele

într-un timp scurt, achiziţii în perioada reducerilor oferite de furnizori, pentru a promova un produs, politica de marketing prevăzând şi acţiuni punctuale când se realizează reduceri de preţuri, perioadă în care cererile cresc şi se justifică crearea stocului, pentru a realiza un răspuns prompt la cererile aleatoare.

I.2 Gestiunea stocurilor

Intreprinderile sunt supuse unei duble constrângeri: cadenţa de aprovizionare foarte scazută generează stocuri mari şi costuri importante de stocare în timp ce ritmul de aprovizionare ridicat multiplică costurile de lansare a comenzilor. Faţă de aceste consideraţii, gestiunea materialelor cuprinde o serie de activităţi prin care:

se efectuează normarea stocurilor; se optimizează sistemul logistic de aprovizionare, depozitare, manipulare, conservare; se reduc cheltuielile de stocare; se realizează evidenţa strictă a materialelor.

I.2.1 Sfera gestiunii stocurilorCa proces economic complex, gestiunea stocurilor are o sferă largă de cuprindere, aceasta

incluzând atat probleme de conducere, dimensionare, de optimizare a amplasării stocurilor în teritoriu, de repartizare a lor pe deţinători, de formare şi evidenţă a acestora, cât şi probleme de recepţie, de depozitare şi păstrare, de urmărire şi control, de redistribuire şi mod de utilizare.3

I.2.2 Obiective şi rezultate ale gestiunii  ştiinţifice a stocurilorObiectivele principale ale conducerii proceselor de stocare pot fi sintetizate astfel:

prevenirea formării de stocuri supranormative, cu mişcare lentă sau fără mişcare şi valorificarea operativă a celor existente (devenite disponibile);

asigurarea unor stocuri minim necesare, asortate, care să asigure desfaşurarea normală a activităţii economico-productive a agenţilor economici prin alimentarea continuă a punctelor de consum şi în condiţiile unor cheltuieli cât mai mici;

asigurarea unor condiţii de depozitare-păstrare corespunzatoare în vederea prevenirii degradării materialelor existente în stocuri;

folosirea unui sistem informaţional simplu, operativ, eficient, util şi cuprinzător care să evidenţieze în orice moment starea procesului de stocare;

aplicarea unor metode eficiente de urmărire şi control care să permită menţinerea stocului în anumite limite, să prevină imobilizările neraţionale.

Soluţionarea oricărei probleme de stoc trebuie să conducă la obţinerea răspunsului pentru următoarele două chestiuni, care constituie de fapt obiectivele principale ale gestiunii:

1) determinarea mărimii optime a comenzii de aprovizionare;3 http://www.biblioteca.ase.ro/eresurse/reviste/contabilitate

4

Page 5: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

2) determinarea momentului (sau frecvenţei) optime de aprovizionare.

I.2.3 Funcţiile gestiunii stocurilorPrincipalele funcţii ale gestiunii stocurilor se pot nominaliza prin:

crearea siguranţei şi certitudinii cu privire la asigurarea alimentării continue a procesului de producţie;

imobilizarea unor cantităţi cat mai reduse în materiale stocate; diminuarea continuă a cheltuielilor de stocare; formarea de stocuri pentru situaţii neprevăzute.

I.2.4 Elementele principale ale unui proces de stocareStabilirea politicii de gestiune a stocurilor este nemijlocit legată de cunoaşterea elementelor

prin care se caracterizează procesele de stocare şi care determină nivelul de formare al stocurilor:A. Cerere ce consum, element de bază în funcţie de care se determină nivelul şi ritmul ieşirilor,

volumul şi ritmul necesar pentru intrări şi nivelul stocului. Cererea de consum reprezintă numărul de produse solicitate în unitatea de timp. Acest număr nu coincide întotdeauna cu cantitatea vândută deoarece unele cereri pot ramâne nesatisfăcute datorită deficitului în stoc sau întârzierilor în livrare. Evident, dacă cererea poate fi satisfacută în întregime, ea reprezintă cantitatea vândută.

B. Costurile reprezintă cheltuielile ce trebuie efectuate pentru derularea procesului de aprovizionare-stocare (respectiv cele cu comandarea, contractarea, transportul, depozitarea, stocarea materialelor etc.). În calculul stocurilor se au în vedere:

costurile de stocare - cuprind suma cheltuielilor ce trebuie efectuate pe timpul staţionarii resurselor materiale în stoc;

costul de penurie sau costul ruperii stocului - definit atunci când volumul cererii depăşeşte stocul existent;

cheltuieli datorate variaţiilor ritmului de producţie - cheltuielile fixe legate de creşterea ritmului de producţie, de la nivelul zero, la un anumit nivel dat;

preţul de achiziţie sau cheltuielile directe de producţie. C. Cantitatea de reaprovizionat reprezintă necesarul de aprovizionat care se stabileşte în funcţie

de necesarul pentru consum pentru întreaga perioada de gestiune.D. Lotul reprezintă cantitatea cu care se face aprovizionarea la anumite intervale, în cadrul

perioadei de gestiune stabilită (trimestru, semestru, an)  şi care este funcţie de caracterul cererii.E. Parametri temporali sunt specifici dinamicii proceselor de stocare: perioada de gestiune,

intervalul de timp între două aprovizionări consecutive, durata de reaprovizionare, momentul calendaristic  la care se emit comenzile de reaprovizionare, coeficientul de actualizare.

F. Gradul de prelucrare a produselor: cu cât bunurile păstrate în stoc sunt într-un stadiu mai avansat de finisare, cu atât mai repede pot fi satisfăcute comenzile, dar cu atât mai mari vor fi cheltuielile de stocare. Cu cât produsele sunt mai puţin finisate, cu atât mai mici sunt cheltuielile de stocare, dar timpul necesar pentru livrarea unei comenzi este mai mare. În plus, erorile de previziune tind să crească pe masură ce gradul de prelucrare a produselor este mai avansat. Rezultă că pentru a reduce influenţa factorilor nefavorabili este necesar să crească şi stocul tampon.

I.2.5 Factorii de influenţă a gestiunii stocurilor4

Factorii cei mai relevanţi care influenţează gestiunea stocurilor sunt: cererea, care poate fi constantă sau aleatoare cu o probabilitate cunoscută sau

necunoscută; cantitatea de aprovizionat (Q) rezultată din analiza cererii; durata de aprovizionare (d) – timpul consumat de la emiterea comenzii până la recepţia

materialului în depozitul întreprinderii; intervalul dintre două reaprovizionări (t); perioada de timp pentru care este planificată gestiunea (T); stocul curent optim (Sc); date despre furnizor: capacităţi, termene de livrare, loturi de livrare;

4 http://www.market-mentor.ro5

Page 6: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

capacităţile de depozitare ale întreprinderii; cheltuielile ocazionate de desfăşurarea procesului de aprovizionare, dintre care cele mai

importante sunt: Cl – cheltuieli pentru lansarea comenzii, independente de mărimea stocului

curent sau de cantitatea comandată; Cs – cheltuieli cu stocarea, manipularea, transportul şi conservarea materialelor,

dependente de mărimea stocului depozitat; Cp – cheltuieli de penalizare, care apar atunci când cererea este mai mare decât

stocul existent şi ea se datorează lipsei de materii prime pentru prelucrare.

I.2.6 Situaţii periculoase în gestiunea stocurilorResponsabilii cu gestiunea stocurilor trebuie să evite două situaţii periculoase: un nivel de stoc

prea mare sau un nivel de stoc prea scăzut, ambele cu consecinţe economice dezavantajoase5.Dacă nivelul de stoc este prea mare:

se înregistrează numeroase cheltuieli suplimentare (construcţia de depozite, asigurări, personal salarizat, întreţinere, pază etc.);

imobilizările de capitaluri scad competitivitatea firmei; poate crea dificultăţi de lichidităţi; creşte riscul de degradare şi deteriorare a produselor stocate; conduce la situaţii în care firma vinde cu rabat (scăderea profitului) producţia stocată.

Dacă nivelul de stoc este prea scăzut: multiplică riscul de a întrerupe şi chiar de a opri fluxul productiv; dezorganizează întreprinderea; generează întârzieri în livrări, diminuarea vânzărilor şi în final pierderea clientelei.

Astfel, intreprinderea va construi şi va exploata un sistem de gestiune economică a stocurilor, printr-un efort financiar care merită a fi luat în considerare, sistem care va avea ca obiective:

reducerea la maxim a nivelului mediu al stocurilor; minimizarea riscurilor de întrerupere a producţiei.

I.2.7 Modalităţi practice de gestiune a stocurilorModelul   S-s. Gestiunea de tip S-s sau cu două depozite se caracterizează prin faptul că

reaprovizionarea se face în momentul în care nivelul curent al stocului a atins o anumită valoare notată generic cu “s”. Acest lucru este echivalent unei gestiuni cu două depozite, în cadrul căreia reaprovizionarea se face în momentul în care primul depozit s-a golit. În perioada de reaprovizionare (de avans) consumul se va realiza din cel de-al doilea depozit, care joacă rolul stocului de siguranţă.

În acest model considerăm: cererea totală pentru perioada T este R, aleatorie; costul stocării este cS; costul lansării unei comenzi de reaprovizionare este cL; termenul de livrare £ poate fi:

a) neglijabil şi obţinem costul total pentru intervalul T ca fiind:

                                                 unde: q - reprezintă cantitatea de reaprovizionat.

b)  cvasiconstant este nivelul minim de reaprovizionare Ns; când stocul atinge acest nivel se lansează o comandă de q piese. Mărimile date sunt: T, £, R, cS, cL şi ne propunem să determinăm pe Ns şi pe q astfel încât costul stocului pentru perioada T să fie minim. O metodă aproximativă constă în a admite că ritmul mediu al cererii este constant; în acest caz optimul cantităţii q0 este independent de Ns:

                 

5 Radu Emilian, Gabriela Tigu - Managementul operaţiunilor în intreprinderile de servicii6

Page 7: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Dacă £ este durata medie a termenului de reaprovizionare (cu o abatere medie pătratică mică) se va evalua legea de probabilitate a cererii pentru acest interval de timp.

Fie F£ (r) probabilitatea cererii de r produse în intervalul £: F£ (r) = P(R£r) = probabilitatea cumulată. Se impune condiţia ca probabilitatea epuizării stocului să fie mai mică sau egală cu valoarea dată £ , unde £ reprezintă probabilitatea de penurie.Trebuie să avem: 1 - F£ (r) = £. Fie Q soluţia ecuaţiei: 1 - F£ (r) = £, de unde rezultă Q = Ns.

Această metodă este aproximativă, deoarece implică ipoteze de lucru distincte pentru stocurile fiecărui depozit.

Metoda A.B.C . este un procedeu rapid pentru analiza aprovizionării şi gestiunii economice a materialelor. Această analiză clasifică mărfurile achiziţionate în funcţie de valorile de aprovizionare ale acestora şi de ponderea achiziţiilor. Prin aceasta pot fi văzute punctele de plecare pentru realizarea unei politici raţionale a achiziţiilor, pe care se pot baza mai multe măsuri, începând cu simplificarea procedeelor de comandă, până la numărul de salariaţi folosiţi în depozite.

Factorul esenţial în folosirea metodei A.B.C. constă în alegerea unui criteriu corespunzător pe baza căruia se efectuează împărţirea materialelor în cele trei grupe A, B, C. Un asemenea criteriu poate fi valoarea de consum a materialului dat, în timpul stabilit, valoarea specială a materialului cu privire la folosirea lui în producţie, provenienţa din import etc.

O dată criteriul ales şi împărţirea în grupe efectuată, metoda A.B.C. poate fi utilizată în diferite domenii ale gestiunii stocurilor.

Controlul selectiv al stocurilor permite o gestiune selectivă a stocurilor. Stocurile tampon ale articolelor de valoare mare sunt menţinute la un nivel destul de mic. Aceste articole trebuie să fie supuse unui control de gestiune foarte strâns din partea personalului aprovizionării (articolele de mare valoare sunt adesea gospodărite cu ajutorul unui sistem de reaprovizionare periodică şi dacă intervalele sunt suficient de frecvente, un stoc tampon este mai puţin necesar).

Această metodă dă o atenţie mai mică articolelor de valoare mică, a căror epuizare se evită prin asigurarea unor stocuri tampon şi se pot reduce investiţiile în stocuri, micşorând în acelaşi timp riscurile de epuizare.

Din analiza structurii materiale a unităţilor economice rezultă că valoarea mare în stoc este deţinută de un număr relativ mic de materiale, care nu numai că influenţează direct volumul de mijloace circulante atras, dar joacă şi rolul principal în desfăşurarea procesului de fabricaţie.

Stocurile sunt împărţite în trei clase: - clasa A, în care intră articolele cu valoare mare reprezentând cantitativ 10 % din stoc şi

70 % valoric;- clasa B, în care intră articole reprezentând 20 % atât cantitativ cât şi valoric;- clasa C, în care intră articole ce reprezintă cantitativ 70 % din stoc şi 10 % valoric.

                        CLASA PONDEREA NUMERICĂ PONDEREA VALORICĂ

A 10 70B 20 20C 70 10

Gruparea materialelor în funcţie de ponderea lor valorică în stocul total, pe baza datelor din tabelul de mai sus, se prezintă într-o formă expresivă în Fig. 1. 

        

7

Page 8: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

   

Fig. 1. Graficul de evoluţie al curbei valorilor cumulate 

Metoda A.B.C., pe lângă faptul că oferă o politică diferită pentru articolele din categoria mai scumpă, permite şi utilizarea unor metode de gospodărire diferită.

Întrucât în categoria A sunt puţine articole, se poate controla zilnic nivelul stocurilor, pentru a observa variaţia cererii şi a  supraveghea de aproape respectarea termenelor de către furnizori.

Se pot folosi modele economico-matematice exigente, care au în vedere elemente (factori) concrete ce condiţionează nivelul stocurilor şi care asigură constituirea lor la dimensiuni cât mai mici, determinând creşterea vitezei de rotaţie a mijloacelor circulante la maxim.

Cu articolele din categoria B se poate adopta o politică intermediară, exercitând un oarecare control, dar baza rămâne tot stocul tampon, spre deosebire de politica dusă pentru categoria A. La articolele mai ieftine este mai eficient să se suporte sarcina stocurilor, decât să se plătească salariile personalului care ar fi indispensabil pentru mărirea controlului. Pentru grupa B se pot aplica două soluţii:

a) stabilirea de modele distincte pentru dimensionarea stocurilor de materiale din această grupă cu un grad de exigenţă mediu;

b) folosirea pentru materialele care, ca pondere valorică, tind către grupa A de importanţă, a modelelor precizate pentru această din urmă grupă, iar pentru materialele ce tind ca valoare către grupa C a modelelor specifice acestora.

Pentru materialele din categoria C se pot folosi procedee mai puţin exigente  (chiar cu caracter statistic) şi care vor avea în vedere factorii cu acţiune hotărâtoare în optimizarea proceselor de stocare (cheltuielile de transport, sursa de provenienţă etc.).

Viabilitatea unui sistem de gestiune a stocurilor este determinată, în general, de felul în care acesta răspunde unor cerinţe de bază6, cum ar fi:

gradul ridicat de utilitate practică; adaptabilitatea la utilizarea mijloacelor electronice de calcul; supleţea şi operaţionalitatea în derularea şi adaptarea proceselor de stocare; aria de cuprindere mare; concordanţa cu fenomenele reale ale procesului de formare şi consum a stocurilor; reducerea la minim a imobilizărilor de resurse materiale şi creşterea vitezei de rotaţie a

mijloacelor circulante ale agenţilor economici; cheltuielile de conducere, organizare şi desfăşurare a proceselor de stocare cât mai mici.

Analizat din aceste puncte de vedere, sistemul A.B.C. răspunde în mare măsură cerinţelor. Acest sistem aplicat la gestiunea stocurilor are în vedere, în primul rând reducerea imobilizărilor la materialele de bază şi care se consumă în cantităţi mari, aspect asigurat prin exigenţa metodologică de dimensionare a stocurilor şi de urmărire a derulării proceselor de stocare.

 Strategia IMPACT (Inventory Management Program and Control Techniques) este considerat

ca un model eficient de stabilire a stocurilor de siguranţă. Este o metodă de depozitare economică, adaptată cerinţelor calculatoarelor electronice. Acest model a fost dezvoltat de IBM.

Estimarea necesarului se face prin extrapolarea valorilor din trecut. Influenţele conjuncturale şi sezoniere sunt luate în calcul prin metoda de nivelare exponenţială. Stocul de siguranţă se determină cu ajutorul calculului probabilităţilor.

Conform metodei IMPACT, sortimentelor din depozit se împart în trei grupe: 1.    produse cu desfacere mare (vitale); 2.    produse cu desfacere mijlocie (importante);3.    produse cu desfacere redusă ( obişnuite).

Mărimea stocului de siguranţă depinde de precizia estimării necesităţilor (cererii). Cu cât va fi apreciată mai precis în prealabil cererea, cu atât va fi mai mic stocul de siguranţă.

6 Eugen Ţigănescu, Dorin Mitruţ - Bazele cercetării operaţionale8

Page 9: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Pentru a putea aplica metoda IMPACT sunt necesare: cunoaşterea cererilor ri (i = 1, 2,..., T), pe T intervale de timp şi calculul abaterii medii pătratice σ.

Pentru determinarea stocului de siguranţă, metoda IMPACT foloseşte următorii indicatori:a) cererea medie (necesarul mediu)

                                                                                                               unde: T - este numărul de intervale de timp cercetate;         ri - este cererea în intervalul i, i = 1, 2,..., T;       b) MAD (Mean Absolut Deviation) reprezintă abaterea absolută de la medie a cererilor, ca

unitate de măsură a “împrăştierii” valorilor efective în jurul valorii medii.

                                                                                                  MAD se determină ca valoare medie a valorilor absolute ale abaterilor de la cererea medie.

c) coeficientul de siguranţă exprimă potenţialul de livrare al furnizorilor. Coeficientul de siguranţă (K) se stabileşte pe bază de tabele ale funcţiei normale, în cadrul căreia sunt date valorile lui K, corespunzător diferitelor niveluri ale potenţialului de livrare al furnizorilor.

Potenţialul de livrare (Z) exprimă gradul de satisfacere de către furnizor a unei comenzi. Acest potenţial de livrare se mai numeşte grad de deservire sau nivel de serviciu.

Potenţialul de livrare (Z) se determină după relaţia:

                                                unde:  CLE - este cantitatea livrată efectiv;

CLC - este cantitatea ce trebuie livrată conform comenzii.Dacă 0 < Z < 1 sau Z = 0, atunci se înregistrează lipsa materialelor în stoc, fără o posibilitate

eficientă de acoperire; iar dacă Z = 1, avem de-a face cu un serviciu perfect de servire din partea furnizorilor.

Relaţia de determinare a potenţialului de livrare se poate exprima şi sub alte forme, şi anume:

                               unde: NUC - reprezintă numărul de unităţi (bucăţi)  comandate; NUL reprezintă numărul de unităţi (bucăţi) lipsă. 

sau  

                unde: NZT - reprezintă numărul total de zile lucrătoare din perioada de gestiune; NZL reprezintă numărul de zile cu lipsă de stoc.

Când un produs se fabrică din mai multe materii prime, care  intră simultan în consum, potenţialul de livrare se calculează în funcţie de necesitatea prezenţei în acelaşi moment în depozit a tuturor materiilor prime care concură la obţinerea lui. Stocul de siguranţă se calculează după formula:

                                                  NS  = K MAD              

Între potenţialul de livrare şi costul stocării necesitat de constituirea şi deţinerea stocului de siguranţă există o corelaţie strânsă. Creşterea potenţialului de livrare determină creşterea costului total de stocare, dar într-o proporţie mai mică, ceea ce înseamnă că eficienţa este cu atât mai mare cu cât potenţialul de livrare se apropie de unu.

Trebuie excluse influenţele întâmplătore, însă luate în considerare influenţele conjuncturale şi sezoniere. IMPACT foloseşte în acest scop metoda nivelării exponenţiale. Această metodă a fost dezvoltată de Robert Brown şi este cunoscută sub numele de exponential smoothing.

9

Page 10: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Valoarea medie a cererii se corectează cu eroarea de previziune şi se stabileşte introducând o anumită parte a erorii în noua valoare a estimaţiei.

Fie V1 estimarea cererii pentru prima perioadă şi r1 cererea reală a primei perioade. Estimarea cererii pentru următoarele perioade se obţine din relaţiile:

                                                Vi = Vi-1 + C (ri-1 - Vi-1), unde: C - reprezintă constanta de nivelare şi determină măsura în care valorile din trecut sunt cuprinse în estimarea cererii. Constanta de nivelare trebuie astfel aleasă încât să ţină seama suficient de influenţele conjuncturale şi sezoniere, eliminând totuşi influenţa întregului.

0 < C < 1C= 0 înseamnă că erorile de prevedere care apar nu sunt luate în considerareC = 1 înseamnă că estimarea corespunde exact cererii din perioada anterioară; toate influenţele

întâmplătoare sunt introduse în estimare.    Abaterea absolută de la medie (MAD) poate fi folosită după aceleaşi principii: abaterea medie a

perioadei i va fi dată de relaţia :

                                            MADi = MADi-1 + C(C ri-1 - Vi-1 C  - MADi-1). 

În acest caz C ri-1 - Vi-1 C este valoarea abaterii precedente faţă de valoarea reală.Cererea medie (necesarul mediu) şi abaterea absolută de la medie (MAD) vor fi apreciate în

prealabil prin metoda nivelării exponenţială, urmând ca abia după aceea să se determine nivelul stocului de siguranţă (NS).

I.2.8 Indicatori ai eficienţei gestiunii stocurilor7

În lucrările de specialitate se regăsesc numereşi indicatori prin care se poate determina eficienţa politicii organizaţiei relativă la stocuri şi aprovizionare.

A. Nivelul serviciilor oferite de furnizor 1. Disponibilitatea comenzilor DC(%)

      2. Disponibilitatea cantităţilor DQ(%)

       B. Mărimea stocurilor

1. Valoarea stocului mediu VSm

     2. Valoarea stocului de siguranţă VSs

      VSs = Valoarea stocului – Valoarea stocului curent3. Valoarea bunurilor în stocuri

      

C. Performanţele gestiunii stocurilor

1. Eficienţa stocurilor

        2. Acurateţea înregistrărilor Aî

      

7 Petre Brezeanu - Gestiunea financiară a intreprinderii, Ed. Cavallioti, 200210

Page 11: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

3. Rata de utilizare a stocurilor

      D. Costurile de gestiune a stocurilor

1. Costul anual cu emiterea comenzilor Caec

            sau (Costul fiecărei comenzi) · (Numărul de comenzi)

După cum se observă indicatorii A. măsoară nivelul de satisfacere a comenzilor de către furnizori, indicatorii B. relevă mărimea stocului şi costul anual aferent emiterii comenzilor şi indicatorii C. evaluează managementul stocurilor.

Capitolul II : Proiectarea programului de gestiune a stocurilor unei farmacii

II.1 Noţiuni de proiectare a bazelor de date

Bazele de date reprezintă colecţii de date organizate într-un mod riguros, bine stabilit. Ele nu conţin date care nu sunt necesare în vederea prelucrării sistemelor de gestiune( informaţii nesemnificative cum ar fi în cazul cărţii de telefon, tipul sau culoarea acestuia).

De regulă, bazele de date sunt organizate pe patru niveluri, şi anume: nivelul conceptual nivelul extern nivelul logic nivelul intern(fizic)

Nivelul conceptual se referă la programatorii care cunosc datele referitoare la problema care este studiată, sau care obţin aceste date de la specialiştii implicaţi în domeniul respectiv.

Nivelul extern reprezintă designul pe care îl are baza de date, modul în care datele vor fi organizate în vederea utilizării şi prelucrării. Tot nivelul extern realizează şi operaţiile de acces secvenţial la informaţiile conţinute de baza de date. Astfel, un utilizator va avea acces numai la anumite date, existând situaţii când accesul îi este interzis, sau permis numai pe bază de parolă. De asemenea, la acest nivel informaţia poate fi prezentată sub diferite forme, pentru a se face o distincţie, sau o individualizare.

Nivelul logic reprezintă modul în care vor fi organizate datele din punct de vedere logic. Există mai multe tipuri de modele:

modelul ierarhic : este de tip arbore, în care nivelul cel mai de sus se numeşte rădăcină, care poate avea oricât de mulţi descendenţi. Relaţiile dintre date sunt de tip părinte-copil. Este modelul cel mai puţin folosit în realizarea nivelului logic

modelul reţea : este asemănător modelului ierarhic, cu diferenţa că un copil poate avea mai mulţi părinţi. Este un model care poate prelucra date complexe, dar care are o structură destul de complicată. Este puţin folosit în gestionarea bazelor de date.

modelul relaţional : este modelul cu cea mai largă răspândire, fiind uşor de utilizat şi având o flexibilitate deosebită, care face ca manipularea datelor să se facă uşor, fără a altera integritatea datelor existente. Datele sunt stocate în tabele, tabelele fiind formate din înregistrări, acestea fiind la rândul lor formate din câmpuri. Între tabele se pot realiza legături, care uşurează cu mult operaţiile de prelucrare a informaţiilor. Sistemele de gestiune a bazelor de date care folosesc modelul relaţional sunt Oracle, Access, Iformix etc.

11

Page 12: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

modelul orientat pe obiect : cel mai nou tip folosit de sistemele de gestiune al bazelor de date. A apărut ca urmare a diversificării tipului de informaţii care trebuie gestionate de către bazele de date(este vorba de hărţi, programe orientate pe obiect, programe dinamice, simulatoare, animaţie etc.).

Nivelul intern(fizic) în cadrul căruia se vor utiliza şi prelucra informaţiile din schema conceptuală, în funcţie de sistemul de gestiune al bazei de date. Ca sistem de gestiune al bazei de date putem folosi: Oracle, Access, DB2, Ifromix, Fox. Sistemul de gestiune al bazei de date este răspunzător de stocarea datelor, prelucrarea lor, asigurarea securităţii informaţiilor, asigurarea accesului concurenţial (astfel încât baza de date să fie utilizată în reţea de mai multe persoane în acelaşi timp).

II.2 Analiza principalilor indicatori şi operatori relaţionali

II.2.1 Caracteristici ale bazelor de date relaţionaleModelul de stocare a datelor sub forma bazelor de date relaţionale s-a dezvoltat pornind de la

articololul "A relational Model of Data for Large Shared Data Banks" (Un model relaţional al datelor pentru bănci mari de date folosite în comun), scris de Dr. E. F. Codd în 1970. Dr. Codd a definit 12 reguli, referite ca cele 12 reguli ale lui Codd, reguli de definesc modelul relaţional şi care sunt următoarele:

[1] Regula capacităţii sistemului: un sistem relaţional de administrare a bazelor de date trebuie să poată administra bazele de date în întregime prin funcţiile sale relaţionale;

[2] Regula informaţiei: toate informaţiile dintr-o bază de date relaţională, inclusiv numele de tabel şi de coloană, trebuie reprezentate explicit ca valori în tabele;

[3] Regula suportului sistematic al valorii nule: SGBD trebuie să asigure un suport sistematic pentru tratamentul valorii nule, date necunoscute sau neaplicabile, diferit de valorile prestabilite şi independent de orice domeniu;

[4] Regula catalogului relaţional activ on-line: descrierea bazei de date şi a componentelor sale trebuie reprezentată la nivel logic sub formă de tabele, iar ca urmare poate fi interogată folosind limbajul bazei de date;

[5] Regula sub-limbajului multilateral al datelor: trebuie să existe cel puţin un limbaj acceptat care să aibă o sintaxă bine definită şi să fie multilateral, care să suporte definirea şi manipularea datelor, reguli de integritate, autorizare şi tranzacţii;

[6] Regula actualizării vederilor: toate vederile care pot fi actualizate trebuie să fie actualizate în cadrul sistemului;

[7] Regula de inserare, actualizare şi ştergere la nivel de mulţimi: SGBD trebuie să suporte nu numai regăsirea datelor la nivel de mulţimi, ci şi inserări, actualizări şi ştergeri;

[8] Regula de independenţă fizică a datelor: programele de aplicaţii şi cele create pe moment nu trebuie să fie afectate din punct de vedere logic la deteriorarea metodelor de acces fizic sau a structurilor de memorare;

[9] Regula de independenţă logică a datelor: programele de aplicaţii şi cele create pe moment nu trebuie să fie afectate din punct de vedere logic când sunt făcute modificări în structura tabelelor;

[10] Regula independenţei integrităţii: limbajul bazei de date trebuie să poată defini regulile de integritate, care trebuie să fie memorate în catalogul on-line şi care nu pot fi încălcate;

[11] Regula independenţei distribuţiei: programele de aplicaţii şi cererile momentane nu trebuie să fie afectate din punct de vedere logic la prima distribuire a datelor sau la o distribuire ulterioară;

[12] Regula de nesubversiune: nu trebuie să fie posibilă încălcarea regulilor de integritate, definite prin limbajul bazei de date, prin folosirea limbajelor de nivel inferior.

Matematicianul F.E. Codd a construit un model riguros, cu concepte matematice, pentru baza de date relaţională, însă aceasta este percepută de utilizatorii ca o colecţie de tabele (tablouri bidimensionale de date, numite şi relaţii), noţiune care nu necesită definiţii suplimentare, în care sunt prezente patru concepte:

tabelele coloanele tabelului rândurile tabelului câmpurile din tabel, de pe o anumită coloană şi linie.

12

Page 13: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Bazele de date au, din punct de vedere istoric, un set de relaţii de tip "părinte-fiu". Aceasta înseamnă că un nod părinte poate conţine pointeri de tip fişier către fiii săi.

Această metodă are câteva avantaje şi mai multe dezavantaje. Ca un avantaj, structura fizică a datelor pe disc nu este importantă. Programatorul memorează doar pointerii către locaţia următoare, astfel încât datele pot fi accesate în această manieră. De asemenea, datele pot fi accesate cu uşurinţă. Totuşi, grupuri diferite de informaţii nu pot fi joncţionate pentru a forma o nouă informaţie. Formatul datelor pe disc nu poate fi modificat oricând după crearea bazei de date.

În cadrul modelului relaţional, datele sunt separate în mulţimi care seamănă cu structura unui tabel. Această structură de tabel constă din elemente informaţionale individuale numite coloane sau câmpuri. Un singur set al unui grup de câmpuri este cunoscut ca o înregistrare sau linie.

O relaţie, în cazul discret, poate fi privită şi înţeleasă ca o tabelă. Modificarea datelor se realizează prin operaţii relaţionale aplicate asupra tabelelor. Spre exemplu, restricţia unei relaţii, a unui tabel, va fi un nou tabel în care se păstrează doar anumite linii. Iar proiecţia unei relaţii - unui tabel - va fi un nou tabel în care se păstrează doar anumite coloane.

O bază de date relaţională apare ca o colecţie de relaţii (tabele). Există o mulţime de operatori pentru transformarea şi combinarea relaţiilor: selecţia, proiecţia, produsul, join-ul, reuniunea, intersecţia, diferenţa.

II.2.2 Operatorii relaţionali ai bazelor de date relaţionaleOperatorii relaţionali ai bazelor de date relaţionale sunt definiţi în tabelul următor:

Operatorul Relaţional Descrierea

RestricţiaEste o operaţie care preia şi afişează datele din relaţie.Este posibil să se afişeze toate rândurile sau doar rândurile care îndeplinesc o anume condiţie (sau mai multe condiţii). Aceasta este de multe ori numită "submulţime orizontală"

Proiecţia Este operaţia care afişează anumite coloane din relaţie, fiind numită de aceea şi "submulţime verticală".

Produsul Este rezultatul obţinut când rândurile a două mulţimi de date sunt concatenate conform condiţiilor specificate.

"Join"-ul Este rezultatul obţinut când rândurile a două mulţimi de date sunt concatenate conform condiţiilor specificate.

Reuniunea Afişează toate rândurile care apar în una, în cealaltă, sau în ambele relaţii.Intersecţia Afişează toate rândurile care apar în ambele relaţii.

Diferenţa Afişează rândurile care apar numai în prima relaţie fără să apară în cea de a doua (în SQL se utilizează chiar semnul - operatorul minus).

Proprietăţile bazelor de date relaţionale sunt:• inexistenţa pointerilor;• conexiunile făcute numai pe baza datelor;• independenţa totală a datelor.

Proprietăţile relaţiilor tabelare sunt: • nu există rânduri duplicate;• nu există nume de coloane identice (duplicate);• ordinea rândurilor este neimportantă;• ordinea coloanelor este neimportantă;• valorile (câmpurile) sunt atomice (nedecompozabile).

13

Page 14: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

II.2.3 Noţiunile şi conceptele bazelor de date relaţionale, modelul entitate-relaţieData elementară reprezintă cea mai mică unitate de date, identificată prin nume.Entitatea este un obiect distinct ce trebuie reprezentat în baza de date.Grupul de date (data agregata) este un ansamblu de câmpuri, identificate prin nume.Tipul sau structura grupului, reprezintă ansamblul identificatorilor, al descrierilor grupurilor şi

al câmpurilor componente.Tipul câmpului este ansamblul format din identificator, menţinerea valorilor şi formatul de

memorare.Atributul este o proprietate a unui tip de entitate sau relaţie, ce descrie un anumit aspect al

obiectului ce se înregistrează în baza de date.Înregistrarea logică reprezintă o colecţie de date elementare şi/sau grupuri de date, identificata

prin nume.Setul de date este alcătuit dintr-o mulţime de înregistrări.Tipul înregistrării constă din ansamblul tipurilor câmpurilor şi al grupurilor împreună cu

ordinea şi numărul de apariţii.Fişierul reprezintă ansamblul tuturor apariţiilor fizice ale unui tip de înregistrare logică.Cheia simplă, respectiv compusă, din 1 până la n campuri, ale căror valori identifică în mod

unic fiecare înregistrare.Cheia candidat este un atribut sau set de atribute ce identifică în mod unic apariţiile individuale

ale unui tip de entitate.Cheia primară este una din cheile atribut.Cheia alternativă este una din celelalte chei candidat.Cheia compusă este o cheie candidat formată din două sau mai multe atribute.Indexul constă în totalitatea valorilor cheilor şi a adreselor de memorare a înregistrărilor

respective.Zona reprezintă o porţiune a memoriei externe în care se pot memora înregistrări, identificată

prin nume.Colecţia de date reprezintă un ansamblu de date organizat după anumite criterii.Baza de date reprezintă una sau mai multe colecţii de date aflate în interdependenţă împreună

cu descrierea datelor şi a relaţiilor dintre ele.Baza de date fizică sau modelul fizic este ansamblul datelor din baza de date, sub forma

memorărilor de fişiere, indexuri, etc. Este formată din totalitatea exemplarelor înregistrărilor, seturilor de înregistrări şi a zonelor, organizate după o anumită schemă.

Schema sau modelul logic reprezintă descrierea organizării logice a înregistrărilor bazei de date.

Subschema sau modelul extern este o substructură (perspectivă, view) a schemei bazei de date, relevantă pentru o aplicaţie.

Relaţiile logice reprezintă asociaţiile dintre mai multe entităţi.Catalogul de sistem sau dicţionarul de date sau meta-date reprezintă descrierea datelor, adică

date despre date, mulţimea descrierilor obiectelor bazei de date, structurată şi administrată ca bază de date.

Sistemul de gestiune a bazelor de date (SGBD) este un sistem de programe care permite construirea unor baze de date, introducerea informaţiilor în bazele de date şi dezvoltarea de aplicaţii privind bazele de date.

Administratorul bazei de date este o persoană sau un grup de persoane responsabile cu analiza, proiectarea, implementarea şi gestionarea bazei de date8.

Conceptele de bază ale modelului entitate-relaţie includ:a) Tipuri de entităţiEntităţile sunt obiecte sau concepte identificate ca având o existenţă independentă. Ele

reprezintă un set de obiecte ce au aceleaşi proprietăţi.Entitatea, în funcţie de dependenţa faţă de altă entitate, poate fi:

- slabă, atunci când depinde de existenţa altei entităţi (copil, dependentă, subordonată);

8 www.trendix.ro

14

Page 15: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

- tare, atunci când nu depinde de existenţa altei entităţi (părinte, dominantă).b) Tipurile de relaţiiRelaţiile sunt seturi de asocieri între două sau mai multe tipuri de entităţi.Relaţia este o instanţă

a unui tip de relaţie care e unic identificabilă.Gradul unei relaţii reprezintă numărul de entităţi participante într-o relaţie.Clasificarea relaţiilor în funcţie de grad este următoarea:

1) de gradul întâi sau unară, caz în care relaţia este recursivă2) de gradul doi sau binară, relaţie cel mai des întâlnită3) de gradul trei sau ternară4) de gradul patru sau cvadruplă.

Relaţia recursivă este o entitate care participă de două sau mai multe ori într-o relaţie; fiecare participare are un nume de rol.

Raportul de cardinalitate al relaţiilor descrie numărul de relaţii posibile pentru fiecare entitate participantă. Se disting următoarele tipuri de relaţii:

• relaţia unu-la-unu, cu un raport de cardinalitate 1:1, este relaţia în care o entitate este asociată unei singure entităţi;

• relaţia unu-la-mulţi, cu un raport de cardinalitate 1:M, este relaţia în care o entitate asociată la una sau mai multe entităţi;

• relaţia mulţi-la-mulţi, cu un raport de cardinalitate M:N, este relaţia în care mai multor entităţi le sunt asociate mai multe entităţi, situaţie care implică descompunerea în două entităţi unu-la-mulţi.

c) AtributeClasificarea atributelor în funcţie de numărul de componente este următoarea:

- simple atunci când au o singură componentă ce are o existenţă independentă- compuse atunci când au mai multe componente, fiecare având existenţă independentă.

Domeniul atributului reprezintă mulţimea de valori pe care le poate lua un atribut.Clasificare domeniilor atributelor în funcţie de numărul de valori este următoarea:

- cu o singură valoare, atunci când au o singură valoare pe care o pot lua;- cu valori multiple;- derivate, ale căror valori depind de valoarea altui atribut.

II.2.4 Modelarea grafică a bazelor de date relaţionaleO tehnică de modelare verificată pentru reprezentarea grafică a activităţilor este modelul ERD

(Entity Relationship Diagram - diagrama relaţiei dintre entităţi). Diagrama ERD documentează cerinţele informaţionale ale companiei într-un format clar şi precis.

Fiecare entitate e reprezentată sub forma unui dreptunghi. Entitatea slabă se reprezintă sub forma unui dreptunghi cu laturi duble.Cheia primară se subliniază.Reprezentarea relaţiei se face printr-un romb. Conexiunea dintre o entitate slabă şi una tare se reprezintă printr-un romb cu linii duble.

Fiecare atribut se reprezintă printr-un oval. Pentru simplificarea diagramei sunt afişate numai atributele cheie primară, iar uneori nici măcar acestea.

Această abordare grafică a modelării o face uşor de înţeles, iar simplificarea modelului îl face uşor de utilizat.

II.3 Analiza detaliată a proiectării bazei de date relaţionale care va gestiona stocurile unei farmacii

Proiectarea unei baze de date relaţională reprezintă procesul parcurs în vederea pregătirii creării fizice a unei baze de date. Etapele acestui proces necesită identificarea operaţiunilor comerciale pe care le va gestiona baza de date, precum şi crearea proiectului fizic al bazei de date. Proiectarea

15

Page 16: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

corespunzătoare a bazei de date este vitală pentru buna funcţionare a bazei de date şi a oricărei aplicaţii care utilizează baza de date.

În lipsa unei proiectări corecte a bazei de date, aceasta poate prezenta următoarele deficienţe: integritatea datelor este compromisă deoarece restricţiile de integritate nu pot fi

proiectate sau implementate corect; datele devin redundante, iar aplicaţiile individuale se aglomerează în încercarea de a se

asigura sincronizarea datelor; performanţele sunt afectate deoarece este posibil ca pentru finalizarea unei instrucţiuni

select să fie necesare interogări suplimentare.Condiţiile impuse la proiectarea unei baze de date relaţionale sunt următoarele:

reducerea redundanţelor prin identificarea informaţiilor comune şi alcătuirea corespunzătoare a aplicaţiilor;

eliminarea inconsistenţelor ce rezultă din reducerea redundanţelor; utilizarea simultană a datelor de mai mulţi utilizatori; standardizarea informaţiilor; asigurarea securităţii bazelor de date, în sensul acordării şi urmăririi modului de acces al

utilizatorilor la diferite părţi componente ale bazelor de date; asigurarea integrităţii bazelor de date, în sensul păstrării corectitudinii informaţiilor

conţinute în baza de date prin testele aplicate datelor introduse în aceasta; asigurarea sincronizării în cazul utilizării bazei de date simultan de mai mulţi utilizatori

sau a distribuirii informaţiei pe mai multe sisteme.La proiectarea unei baze de date se procedează la următoarele9:

- identificarea datelor (entităţi şi atribute);- identificarea relaţiilor dintre date;- identificarea constrângerilor;- identificarea regulilor ce descriu principalele caracteristici ale datelor;- implicarea utilizatorilor în realizarea modelului de date.

Astfel, proiectarea de baze de date relaţionale implică transpunerea modelului logic într-un set de tabele şi constrângeri, selectarea structurilor de stocare şi a metodelor de acces specifice, asigurarea securităţii datelor.

Pentru a crea o bază de date relaţională este necesară parcurgerea următoarelor etape:

Etapa I - crearea unui model al activităţii farmacieiAceastă primă etapă presupune strângerea de informaţii despre mişcarea medicamentelor care

fac obiectul stocurilor unei farmacii şi procesele aferente pe care le va susţine baza de date. Scopul este stabilirea modului curent de derulare a activităţii farmaciei, iar dacă există deficienţe, stabilirea posibilităţilor de îmbunătăţire sau de extindere a activităţii. Pentru a dodândi o bună cunoaştere a activităţii farmaciei şi a proceselor aferente, se întreprind următoarele:

• Intervievarea următoarelor persoane:(a) Manageri şi supervizori ai activităţilor farmaciei;(b) Potenţiali utilizatori finali ai programului de gestiune de stocuri ale farmaciei;(c) Potenţiali beneficiari finali ai programului de gestiune de stocuri. Aceştia sunt persoanele care s-ar putea să nu utilizeze direct baza de date, însă urmează să primească informaţii şi să beneficieze de existenţa bazei de date.

• Stabilirea obiectivului declarat al activităţii. Este utilă cunoaşterea gestiunii stocurilor farmaciei astfel încât baza de date şi aplicaţia să fie concepute în vederea deservirii acesteia.

• Definirea obiectivul aplicaţiei. Este obligatorie stabilirea pretenţiilor farmaciei referitoare la ceea ce urmează să facă baza de date şi aplicaţia.

• Analizarea specificaţiilor de sistem curente.• Identificarea viitoarelor specificaţii de sistem pentru baza de date.

Programul va avea ca scop înregistrarea întregii activităţi a unei farmacii, fără a se ocupa însă şi de partea financiară, care este în general gestionată de aplicaţii dedicate, punând însă la dispoziţia acestora toate datele necesare pentru contabilitate.

9 Eugen Ţigănescu Dorin Mitruţ - Bazele cercetării operaţionale16

Page 17: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

După ce au fost stabilite datele de proiectare, informaţiile culese vor determina modul de prezentarea al formularelor, manualelor, rapoartelor, însemnărilor, precum şi a altor informaţii conexe activităţii de proiectare.

Etapa II - crearea unui model al datelorDupă ce au fost strânse informaţiile precedente, trebuie să construim un model sau o

reprezentare grafică a necesităţilor şi regulilor farmaciei. De exemplu, presupunem că s-au aflat următoarele informaţii despre activitatea farmaciei în

timpul interviurilor anterioare: farmacia are nevoie să ştie ce furnizor oferă fiecare tip de medicament; trebuie cunoscute datele de identificare ale furnizorului; vor să aibă posibilitatea găsirii informaţiei despre un anumit furnizor sau medicament.

Diagrama entitate-relaţie a programului de gestiune a stocurilor este arătată în Fig.2.

Etapa III - crearea unui proiect de baze de date de gestiune a stocurilorLa acest pas se pun bazele tabelelor din programul de gestiune a stocurilor. Baza de date,

pentru a satisface cerinţele farmaciei, va avea cinci tabele şi anume: furnizori: cod_furnizor, denumire, adresa, nr_telefon; intrari: cod_furnizor, nr_intrare, data_intrarii,; medicamente: nr_intrare, data_intrarii, denumire, cantitate, pret_unitar, valoare,

valoare_TVA, valoare_totala, valabilitate, pret_vanzare, cod_medicament; arhiva vanzari: cod_medicament, numar_v, denumire, cantitate, pret_unitar_v,

valoare_v, valoare_TVA_v, valoare_totala_v, valoare_compensare, pret_facturat, factura, data_facturii;

vanzari: factura, data_facturii. Tabelele au fost trecute în ordinea în care sunt şi legate, aşa cum se vede şi din diagrama entitate-relaţie arătată în Fig.1, câmpurile scrise cu litere îngroşate reprezentând cheile primare, iar cele scrise cu litere cursive reprezentând simple atribute. În tabelele intrari şi vanzari cheile primare sunt formate din câte două câmpuri, astfel încât să nu fie obţinute înregistrări ne-individualizate, dar şi pentru ca datele completate în formulare să fie completate automat şi în sub-formulare, deci şi în tabelele medicamente, respectiv arhiva vanzari, pentru că în felul acesta utilizatorul nu este obligat să introducă de la tastatură de fiecare dată aceleaşi informaţii, cum ar fi data facturii sau numărul acesteia.

După ce toate tabelele au fost create, s-a trecut la construirea interogărilor şi a rapoartelor şi abia după aceea a formularelor, avându-se în vedere scopul ca baza de date să poată fi utilizată în întregime numai prin intermediul acestora.

Etapa IV - crearea definiţiei tabelelor relaţionale şi a bazei de date de gestiune de stocuriPentru crearea tabelelor fizice, este folosită instrucţiunea create table. Mulţimea acestor tabele,

împreună cu consideraţiile privind securitatea reprezintă fundamentul bazei de date relaţionale. Pentru crearea şi utilizarea unei baze de date relaţionale se foloseşte un limbaj de programare. Comenzile pentru implementarea, selecţia, modificarea sau ştergerea datelor, cât şi acelea pentru realizarea schimbărilor în baza de date, sunt incluse într-un singur limbaj, standardizat, de exemplu SQL.

SQL este un limbaj standard pentru bazele de date, utilizat pentru a accesa o bază de date relaţională şi poate fi folosit, atunci când este necesar, de fiecare instrument de gestiune a bazelor de date (Access, Oracle, SQL-Server, MySQL, etc.).10

10 http://www.ea.upm.ro/cip/elearning17

Page 18: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig.2. Diagrama entitate-relaţie a programului de gestiune a stocurilor unei farmacii

Capitolul III : Realizarea programului de gestiune a stocurilor unei

farmacii în Microsoft Access 2000

III.1 Prezentare Access11

Programul Microsoft Access 2000 face parte din pachetul de programe Microsoft Office 2000 şi este destinat proiectării şi gestiunii bazelor de date, fiind bazat pe modelul logic relaţional.

Sistemul de gestiune al bazelor de date Access permite realizarea mai multor operaţii specializate, cum ar fi:

proiectarea structurii bazei de date; încărcarea datelor, regăsirea ulterioară, modificarea datelor, ştergerea datelor; generarea de rapoarte în scopul tipăririi la imprimantă a datelor introduse în baza de date;

11 Claudia Cârstea – Proiectarea bazelor de date. Mediul de programare Microsoft Access, Ed. Omnia UNI S.A.S.T., Braşov 2007

18

Page 19: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

crearea de formulare, ca modalitate de manevrare a datelor prin intermediul unei interfeţe mai prietenoase pentru operator;

relaţionarea bazelor de date şi lucrul cu combinaţii de baze de date; programare pentru crearea de sisteme de gestiune de uz particularizat; controlul integrităţii şi securităţii datelor.

Microsoft Office Access 2000 are următoarele tipuri de obiecte de bază de date:• tabela este un obiect definit de utilizator în care sunt stocate datele primare;• formularul este un obiect care permite introducerea datelor, afişarea acestora sau controlul

întregii aplicaţii;• cererea de interogare este un obiect care permite formatarea şi tipărirea informaţiilor obţinute

prin prelucrarea datelor din una sau mai multe tabele;• pagina web de accesare a datelor reprezintă un obiect care include un fişier HTML şi alte

fişiere suport în vederea furnizării accesului la date prin intermediul browser-elor internet;• comanda Macro reprezintă un obiect care conţine o definiţie structurală a uneia sau mai

multor acţiuni pe care Access le realizează ca răspuns la un anumit evenimet;• modulul este un obiect care conţine proceduri definite de utilizator, scrise în limbajul de

programare Visual Basic.Tipurile de date specifice programului Microsoft Access sunt următoarele12:

Text - în celulele unui câmp de acest tip se vor putea introduce texte, deci orice înşiruire de caractere, numărul maxim admis fiind de 255 de caractere. Lungimea implicită este de 50 de caractere.

Memo - în celulele unui câmp de acest tip se vor putea introduce orice şir de caractere, însă cantitatea de text este limitată la 65535 de caractere. Acest tip de date este asemănător cu cel text.

Number - datele introduse pot fi numai valori numerice, ele fiind utilizabile în calcule matematice. În cazul în care se doreşte introducerea de valori reale care să nu fie rotunjite automat, trebuie ales de la rubrica Field size, tabul General, varianta Double.

Autonumber - în câmpul de acest timp se produce o completare automată cu valori numerice incrementate cu 1. Incrementarea se produce de fiecare dată când o nouă înregistrare este introdusă în tabel.

Yes/No - în acest câmp pot fi introduse date care au doar două stări posibile: adevarat/fals, da/nu, pornit/oprit, etc.

Ole Object - prin câmpurile de acest tip se permite accesul la obiecte de diverse naturi, ca de exemplu foi de calcul tabelar Excel, reprezentări grafice, fişiere imagine şi documente Word

Hyperlink - în câmp pot fi introduse şiruri de caractere care reprezintă adrese de pagini web

Lookup Wizard - în acest câmp pot fi introduse valori care sunt alese dintr-o listă aflată în altă tabelă.

Date/Time - în câmp nu pot fi introduse decât informaţii care constau în dată calendaristică sau oră.

III.2 Crearea bazei de date de gestiune a stocurilor unei farmacii

Pentru a crea o nouă bază de date se va deschide aplicaţia Microsoft Access şi se selectează Balnk Access database din fereastra de start, de unde îi dăm un nume şi alegem locul unde va fi stocată aşa cum se vede şi în Fig. 3.

12 Claudia Cârstea – Proiectarea bazelor de date. Mediul de programare Microsoft Access, Ed. Omnia UNI S.A.S.T., Braşov 2007

19

Page 20: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 3. Fereastra File New Database- precizarea locului şi numelui bazei de date

O dată creată, baza de date este pregătită pentru crearea tabelelor, iar tabul care apare implicit primul este cel al tabelelor. Există trei posibilităţi pentru a crea un tabel: prin introducerea datelor, obţinându-se un tabel oarecum asemănător cu cele din Excel, prin intermediul unui Wizard, sau direct în Design view, unde putem decide pentru fiecare câmp în parte cum se va numi şi pentru ce tip de date este definit (Fig. 4).

După ce sunt completate toate rubricile planificate, unul din câmpuri trebuie să fie marcat drept cheie primară, care are rolul de individualiza înregistrările. Cheia primară poate fi însă formată şi din mai multe câmpuri, pentru a fi stabilită trebuind selectate toate câmpurile dorite, după care se efectuează clic dreapta pe unul dintre ele şi se selectează opţiunea primary key, sau se apasă pe butonul de pe bara de comandă care are aceeaşi funcţie (fig. 5).

Pentru a adăuga sau şterge înregistrări este necesară deschiderea tabelului în Design view, fie prin clic dreapta şi selectarea opţiunii, fie normal, după care se selectează Design view prin butonul de pe bara de comandă. Pentru a adăuga un câmp în tabel, trebuie selectat câmpul care trebuie să-l urmeze pe cel nou, apoi se selectează Insert Rows de pe bara de comandă, sau din meniul ce apare după un clic dreapta (fig. 6).

Fig. 4. Crearea unui tabel în modul Design view

20

Page 21: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 5. Stabilirea cheii primare pentru Fig. 6. Introducerea unui nou rând deasupra

un anumit câmp câmpului valoare_totală

Ştergerea unui anumit câmp al unui tabel se poate face asemănător cu introducerea unui nou rând, sau se apasă butonul delete de pe tastatură. Prin ştergerea câmpului din tabel sunt şterse şi toate datele care au fost memorate în acest câmp în tabel până în momentul ştergerii. Câmpurile cheie primară nu pot fi şterse atâta timp cât există relaţii cu alte tabele prin intermediul lor. Tipul de date care este stocat într-un anumit câmp poate fi modificat prin selectarea câmpului respectiv şi selectarea din listă a unui alt tip. Pe de altă parte, dacă deja au fot introduse date în tabel, anumite schimbări nu vor mai putea fi făcute şi în majoritatea cazurilor schimbarea tipului de date nu este indicată. De exemplu, dacă tipul număr va fi transformat în text, atunci numerele memorate în respectivul câmp vor fi tratate ca simple şiruri de caractere, deci nu vor mai putea fi implicate în calcule matematice.

Tot în modul Design view atributele anumitor câmpuri pot fi stabilite cu rigurozitate pentru a proteja integritatea datelor sau pentru a face baza de date compatibilă cu scopul pentru care a fost creată. În fig. 7 este prezentat modul în care valoarea introdusă în câmpul cantitate al tabelului medicamente este restricţionată la valori pozitive, atât pentru a se evita erorile de tastare care ar putea duce la valori negative, cât şi pentru a evita vânzarea mai multor medicamente decât se află în stoc la un moment dat. Ca regulă de validare pentru acest câmp valorile trebuie să fie mai mari sau egale cu 0.

Fig. 7. Atributele câmpului cantitate

Pentru gestionarea unei farmacii sunt însă necesare mai multe date decât cele strict legate de medicamentele aflate în stoc la un moment dat. Astfel, în mod asemănător cu tabelul medicamente, sunt create tabelele furnizori, intrări, vânzări (care înregistrează numai data şi numărul facturii, de intrare, sau ieşire, precum şi furnizorul, în cazul tabelului intrări) şi tabelul arhivă vanzari, care înregistrează toate tranzacţiile dintre farmacie şi cumpărători (fig 8-10).

Odată ce toate tabelele necesare au fost create, trebuie stabilite relaţiile dintre tabele. Între tabele pot exista relaţii de unul la mai mulţi, relaţii de unu la unu şi relaţii de mai mulţi la mai mulţi, care reprezintă de fapt două relaţii de unu la mai mulţi conjugate, combinate prin intermediul unul tabel secundar. Aceste relaţii împreună cu integritatea referenţială care este asigurată de Access, fac din întreţinerea bazei de date un lucru mult mai simplu. Este suficientă modificarea datelor într-un tabel pentru ca datele care se află în legătură cu cele modificate să se schimbe şi ele, iar ştergerea unei

21

Page 22: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

înregistrări dintr-un tabel va duce la ştergerea datelor direct legate de aceasta din tabelele care se află în legătură cu acesta.

Fig. 8. Tabelul furnizori (Design view) Fig. 9. Tabelul intrări (Design view)

Fig. 10. Tabelul vânzări (Design view)

Fig. 11. Tabelul arhiva vanzari (Design view) Fig. 12. Relaţie unu la mai mulţi între tabelul

furnizori şi tabelul intrari

Fig. 13. Relaţiile dintre tabelele bazei de date de gestiune a stocurilor

Între tabelele medicamente şi arhiva vanzari integritatea referenţială nu este selectată pentru ca datele stocate cu privire la vânzări să nu fie şterse atunci când medicamentele la care fac referire sunt scoase din stoc. Relaţiile între tabele se fac selectând câmpul dintr-un tabel şi executând drag-and-drop pe câmpul pereche din celălalt tabel. Relaţiile pot fi şterse prin selectarea liniilor care leagă tabelele şi apăsare pe delete şi pot fi modificate prin selectarea relaţiilor cu clic dreapta şi intrarea în editare.

După ce au fost stabilite relaţiile dintre tabele, trecem la introducerea datelor în baza de date. Prima metodă pe care o putem folosi este introducerea directă a datelor în tabele, însă această metodă se poate dovedi ceva mai greoaie, mai ales că în acest caz anumite facilităţi ale Access nu pot fi folosite.

O soluţie mult mai eficientă o reprezintă formularele. Formularele sunt soluţii de introducere şi extragere a datelor pe ecran, înregistrările fiind prezentate sub formă de cartele index, câte una o dată.

22

Page 23: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

De asemenea, formularele pot să aibă în componenţă sub-formulare, care să conţină informaţii suplimentare referitoare la înregistrarea din formular, pot căpăta o interfaţă personalizată în funcţie de dorinţele utilizatorului prin adăugarea de imagini şi text şi pot conţine butoane, care să întreprindă anumite acţiuni prestabilite, sau să ruleze un macro sau un modul de cod Visual Basic.13

Formularele pot fi create tot în două moduri, prin proiectare directă (Design view), sau prin intermediul unui Wizard. Formularele prezintă numeroase atribute, ceea ce face din ele cele mai flexibile obiecte Access şi pot avea numeroase destinaţii.

Pentru a crea un formular cu ajutorul programului Wizard, se selectează tabul Forms în fereastra principală a bazei de date şi se face dublu clic pe opţiunea create form by using wizard. În fereastra care apare este ales din listă tabelul pe baza căruia dorim să creăm formularul şi apoi trecem din fereastra stângă în cea dreaptă câmpurile care trebuie să facă parte din formular (fig. 14).

Fig. 14. Selectarea câmpurilor care trebuie să apară în formular

În continuare alegem modul în care dorim să fie organizat formularul (după coloane, după linii, tip foaie de calcul, sau pe rubrici) şi apoi alegem stilul de grafică pe care îl preferăm, dintre cele predefinite. În final, alegem numele formularului (implicit va fi numele tabelului pe care este bazat) şi dacă dorim să îl deschidem pentru a vizualiza şi introduce date, sau pentru a-i modifica atributele.

Fig. 15. Alegerea numelui şi a modului în care va fi Fig. 16. Formular creat cu ajutorul Wizard deschis automat formularul

Pentru a crea un formular care să aibă un sub-formular în componenţă, la primul pas al creării unui formular, în loc să alegem câmpuri numai dintr-un tabel, alegem câmpuri din două. La următorul pas suntem întrebaţi dacă dorim să creăm un formular cu sub-formular, sau două formulare legate între

13 Claudia Cârstea – Sisteme informatice de gestiune, Ed. Omnia UNI S.A.S.T., Braşov 2007

23

Page 24: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

ele. În cazul în care alegem prima variantă, trebuie să alegem care dintre cele două tabele va fi bază pentru formular şi care pentru sub-formular.

Următorii paşi sunt aceeaşi cu cei necesari creării unui formular simplu, cu singura diferenţă că la ultimul pas este cerut şi un nume pentru sub-formularul component. Numele implicit pentru acesta va fi dat de numele tabelului pe care se bazează urmat de cuvântul „subform”. Sub-formularele sunt văzute în tabul Forms ca orice formular normal.

Avantajele sub-formularelor pot fi observate şi din chiar exemplul formularului intrări , care are în componenţă sub-formularul medicamente (fig. 18).

Fig. 17. Pregătirea unui formular pe baza tabelului intrări, care să aibă în componenţăun sub-formular bazat pe tabelul medicamente

Fig. 18. Formularul intrări şi sub-formularul medicamente, sub aspect de tabel

Folosind aceleaşi metode este creat şi formularul vânzări, numai că legătura dintre acesta şi medicamente este făcută indirect, prin intermediul tabelului arhiva vanzari. Datorită acestui lucru şi al faptului că integritatea referenţială nu este activată între tabelul medicamente şi tabelul arhiva vanzari, în acesta din urmă rămân nealterate toate înregistrările care sunt introduse de-a lungul timpului în facturile de vânzare, ceea ce permite ţinerea evidenţei vânzărilor pe o perioadă teoretic nelimitată. Astfel, prin intermediul a numai trei formulare, utilizatorul nu mai trebuie să deschidă direct tabele niciodată, lucrând tot timpul cu o interfaţă mult mai prietenoasă şi uşor de folosit.

III.3 Crearea de filtre, interogări şi rapoarte

Cea mai simplă operaţie de întreţinere a unei baze de date este aceea de a organiza datele dintr-un anumit câmp într-o anumită ordine, crescătoare sau descrescătoare, ordine alfabetică, etc.

24

Page 25: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 19. Sortarea în ordine alfabetică a denumirilor medicamentelor aflate în stoc.

După cum se observă şi din fig. 19, pentru a sorta ascendent sau descendent informaţiile stocate în baza de date, unul din câmpurile după care trebuie sortată baza de date trebuie să fie selectat şi apoi în meniul records se selectează sort şi tipul de sortare pe care o dorim.

Pe lângă metodele de sortare, tot în meniul records avem filtre, care pot îndeplini mai multe acţiuni, cum ar fi obţinerea unui tabel secundar care să conţină numai înregistrările care au câmpurile identice cu câmpul selectat (filter by selection). Putem obţine un tabel secundar care să conţină numai înregistrările care au câmpurile diferite de câmpul selectat (filter excluding selection), informaţiile pot fi filtrate într-un mod asemănător cu modul filter by selection, dar alegând dintr-o listă câmpul după care se doreşte făcută filtrarea sau poate fi creată o interogare de selecţie (advanced filter/sort).

Fig. 20. Meniul filter cu metodele de filtrare predefinite

Pentru o sortare în funcţie de mai multe variabile sau condiţii şi dacă sunt necesare operaţii complexe de menţinere a bazelor de date, cum ar fi ştergerea automată a unor înregistrări învechite, sau actualizarea tuturor în funcţie de necesităţi, precum şi organizarea lor în moduri care să facă uşoară vizualizarea lor, vom folosi interogările.

Interogările sunt de mai multe tipuri, în funcţie de destinaţia lor şi ca şi formularele, sunt bazate pe tabele, dar şi pe alte interogări. Interogarea „de bază”, este interogarea de selecţie, care are rolul de a filtra datele din tabelele pe care le are la bază în funcţie de criteriul ales, de a le combina, afişând în final numai câmpurile care sunt dorite. Interogările de selecţie sunt utile atunci când datele trebuie organizate în funcţie de unul sau mai mulţi parametri. Parametrii sunt variabile care, trecute în tabul de criterii ţin locul acestora, utilizatorul fiind întrebat înainte de a rula interogarea care este valoarea parametrului, pentru a selecta din tabel numai înregistrările dorite. Parametrii trebuie scrişi între paranteze pătrate, având ca denumire un alt nume decât numele câmpului pentru care servesc drept criteriu de sortare (fig. 21).

Alt tip de interogare este interogarea de ştergere, care şterge automat toate înregistrările din tabelele asociate ei, în cazul în care anumite criterii sunt îndeplinite. Pentru a crea o interogare de ştergere trebuie creată mai întâi o interogare simplă, după care în meniul Query se selectează opţiunea delete query. În acest moment anumite câmpuri ale interogării de selecţie dispar şi apare unul nou şi anume delete unde este specificat modul de ştergere, adică acolo unde este îndeplinită condiţia, sau începând de acolo de unde este îndeplinită condiţia. La criterii este trecută condiţia care trebuie

25

Page 26: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

îndeplinită pentru ca ştergerea să aibă loc, pentru câmpul dorit. În momentul în care interogarea este rulată, utilizatorul este atenţionat că dacă va continua acţiunea, datele vor fi şterse definitiv din baza de date. De asemenea, în fereastra de atenţionare este specificat şi numărul de înregistrări care urmează să fie şterse.

O interogare care are un mecanism de funcţionare asemănător cu cel al interogării de ştergere este interogarea de actualizare sau update query. Această interogare are rolul de a modifica datele din toate tabelele asociate, în câmpurile specificate, acestea fiind înlocuite cu datele care sunt introduse în câmpul update to, sau rezultatul unei expresii care este introdusă în acelaşi câmp (fig. 24).

Fig. 21. Interogare de selecţie care afişează numai înregistrările care au în câmpul denumire valoarea pe care o introduce utilizatorul de la tastatură

Fig. 22. Căsuţa unde este cerut parametrul după care va fi efectuată sortarea

Fig. 23. Tabelul query, disponibil la deschiderea unei interogări în Design view

Fig. 24. Interogare de ştergere a înregistră-rilor din tabelul medicamente, care au completată în câmpul cantitate valoarea 0, ceea ce înseamnă că nu mai există medicamente de tipul respectiv în stoc

26

Page 27: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Pentru a crea o interogare de actualizare se procedează ca în cazul interogării de ştergere, în meniul Query selectându-se varianta update Query. Ca şi în cazul interogării de ştergere utilizatorul este atenţionat înainte să o ruleze că datele din tabel vor fi modificate definitiv şi este specificat şi numărul de înregistrări care vor fi afectate. Din valoarea care este stocată în acest câmp este scăzută valoarea care se referă la medicamentul respectiv, din arhiva vanzari, adică din factura de ieşire. Legătura cu aceasta este făcută prin intermediul parametrului [nr_factura], care face ca datele care vor fi modificate să fie cele care se regăsesc şi pe factura dorită, numărul acesteia fiind introdus de utilizator precum valoarea oricărui parametru. Pentru a scrie expresia, numele tabelelor şi câmpurilor sunt trecute în paranteze drepte, ceea ce justifică faptul că un parametru, care este scris după aceeaşi sintaxă, trebuie să fie denumit altfel decât numele câmpului la care face referire, în special şi altfel decât numele oricărui câmp din tabelul la care face referire, în general.

Fig. 25. Interogare de actualizare din tabelul medicamente, la nivelul câmpului cantitate

Alte trei tipuri de interogări ce pot fi utilizate sunt interogarea de adăugare (append query), interogarea crosstab şi interogarea cu ajutorul căreia poate fi construit un nou tabel pe baza unuia sau mai multor tabele deja existente. Interogarea de adăugare are un rol asemănător cu cea de actualizare, numai că prin intermediul acesteia pot fi adăugate înregistrări în continuarea tabelului pe care îl specifică utilizatorul, sau pot fi adăugate date în câmpurile dorite. Interogarea tip crosstab combină două sau mai multe tabele pentru a obţine o foaie tip tabel, unde câmpurile de intersecţie dintre liniile şi coloanele specificate conţin informaţia dorită, sau doar sunt bifate.

Fig. 26. Căsuţa care solicită introducerea numelui tabelului la care să fie adăugate date în cazul unei interogării de adăugare (append query)

Opţiunea totals poate fi găsită sub meniul View în timp ce interogarea se află în Design view, ajutorul căreia avem acces la funcţii uzuale, cum ar fi cele de însumare a valorilor numerice din toate câmpurile unei înregistrări şi afişarea rezultatului într-un câmp separat, găsirea automată a valorii minime şi maxime dintr-o înregistrare, afişarea primului sau ultimului câmp care îndeplineşte condiţia trecută în tabul de criterii, sau numărarea elementelor specificate, care se regăsesc într-o înregistrare. Opţiunea totals poate crea câmpuri adiţionale în interogare, care să conţină valori ce sunt rezultatul unor expresii. Expresiile pot fi utilizate şi în cazul celorlalte tipuri de interogări (fig. 27), dar sunt utile în cazul interogărilor care au selectată opţiunea totals.

27

Page 28: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 27. Exemplu de interogare care utilizează o expresie

Expresia DateDiff("m",[data_intrarii],Now()) are rolul de a calcula diferenţa dintre data calendaristică actuală şi data care corespunde intrării în stoc a medicamentului respectiv, rezultatul fiind afişat în luni. În combinaţie cu condiţia >[valabilitate]-1 interogarea filtrează medicamentele şi le afişează numai pe cele care mai au o lună până când expiră.

În cazul farmaciei, datele care sunt stocate în tabelele de intrări şi vânzări trebuie imprimate pentru a elibera facturi, pentru care vom folosi rapoarte, care reprezintă pagini tipizate. Rapoartele se bazează pe unul sau mai multe tabele, dar şi pe una sau mai multe interogări, astfel încât datele imprimate să fie rezultatul unei filtrări (de exemplu, în cazul unei facturi, trebuie afişate numai datele referitoare la acestea, pe când, dacă raportul ar fi construit pe baza tabelului, el ar conţine toate datele de pe toate facturile). De asemenea, rapoartele prezintă un număr de funcţii predefinite. De exemplu, pe un raport utilizatorul poate alege ca valorile memorate să fie însumate, sau ca valoarea maximă dintre acestea să fie afişată, ca şi în cazul funcţiilor totals din cazul interogărilor.

Pentru a crea un raport recurgem la Design view sau la programul Wizard, care va conduce, ca şi în cazul formularelor şi interogărilor, prin paşi simpli la raportul dorit. Primul pas presupune alegerea tabelelor sau interogărilor pe care se bazează raportul şi selectarea câmpurilor care trebuie să apară în raport (fig. 28). Următorul pas presupune alegerea modului în care va fi organizat raportul, funcţie foarte importantă în cazul în care acesta se bazează pe mai multe tabele sau interogări. În cadrul acestei etape se stabileşte ce nivel ierarhic ocupă fiecare tabel în parte, fiind posibilă setarea a maxim patru de nivele (fig. 29).

Fig. 28. Primul pas care trebuie urmat pentru a crea un raport

28

Page 29: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 29. Fereastra unde este stabilită ierarhia tabelelor în formular

Microsoft Access permite şi o ierarhizare mai minuţioasă, care ţine de organizarea câmpurilor în pagină şi care poate duce de exemplu la crearea unui parametru, pe baza căruia va fi construit raportul (fig. 30). Câmpul nr_intrare din tabelul intrări are prioritate şi cum acelaşi câmp este prezent şi în tabelul medicamente, raportul la deschidere va cere introducerea numărului facturii de intrare pe care utilizatorul o doreşte imprimată.

Fig. 30. Pasul trei al programului Wizard pentru crearea unui raport

În cadrul pasului următor utilizatorul decide dacă pe raport va fi prezentă de exemplu suma tuturor preţurilor medicamentelor sau informaţii de altă natură care pot fi adăugate în mod automat (fig. 31 şi 32). De asemenea, în cadrul aceluiaşi pas, poate fi stabilit un filtru de sortare al datelor, numărul maxim de sortări concomitente fiind de patru. Fereastra summary options, permite utilizatorului să decidă dacă raportul său va conţine şi valori calculate automat de baza de date. În cazul exemplificat, raportul va afişa suma valorilor memorate în câmpurile valoare şi pret_facturat.

În continuare alegem stilul în care va fi organizat raportul din punct de vedere grafic, dacă acesta va fi creat pe o pagină tip vedere sau tip portret şi apoi numele şi modul în care va fi deschis raportul, adică pentru a previzualiza pagina înainte de imprimare, sau pentru a-i modifica setările şi elementele componente.

29

Page 30: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 31. Metode de sortare Fig. 32. Fereastra summary options

Fig. 33. Modul de organizare al elementelor în pagina de tip vedere sau de tip portret

Fig. 34. Numele raportului şi modul de afişare Fig. 35. Căsuţa care solicită parametrul

30

Page 31: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

III.4 Crearea unei interogări crosstab

O interogare crosstab este folosită în cazul în care vrem să reprezentăm o interogare de tip agregat, cu două coloane de grupare, la rezultat având una dintre coloane reprezentată în stânga, iar cea de-a doua coloană în partea de sus.

Vrem să obţinem cantităţile zilnice ale unor medicamete care se comercializează în farmacie. Trebuie să apelăm la o interogare agregat, care să calculeze cantităţile de medicamente necesare după două câmpuri: după cantitatea vândută pentru fiecare tip de mediacament şi după zile. Creăm tabela stocuri, cu cheia primară codul medicamentului, în care sunt contorizate în mod automat la intrarea şi ieşirea din gestiune mişcările de stoc, pe zile, cantităţile intrate şi ieşite din fiecare medicament, prezentată în Fig. 36, care arată în modul Design view ca în Fig. 38.

Fig.36. Înregistrările din tabela stocuri

Cu ajutorul interogării crosstab vom obţine un rezultat mai elegant şi mai clar asupra mişcării stocurilor de medicamente, datele putând fi vizualizate ca în Fig. 37.:

Fig. 37. Tabela stocuri după o interogare crosstab

31

Page 32: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 38. Tabela stocuri văzută în modul Design view

Observăm cum una din coloanele de grupare cantitate medicament conţine tipurile de medicamente, în timp ce cealaltă coloană zile din tabelul iniţial este folosită pentru definirea coloanelor din noua interogare. La convergenţa dintre cele două coloane de grupare va apare cantitatea rămasă în stoc obţinută prin scăderea cantităţii vândute din cantitatea aflată în stoc, pentru fiecare medicament în parte.

Acest tip de interogări pot fi create în modul design view, dar prin intermediul Wizard le putem crea mult mai uşor.

Pentru a folosi crosstab query wizard trebuie să intrăm în fereastra Database, în obiectul Queries. Apăsăm click pe butonul New din fereastra Database, după care selectăm opţiunea Crosstab Query Wizard din căsuţa de dialog care va apăre, aşa cum se vede şi în Fig..39.

Fig.39. Crearea unei interogări crosstab folosind modul Wizard

32

Page 33: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Prima fereastră care va apăre, din acest tip de wizard, este Fig. 40.:

Fig.40. Fereastra Crosstab query

În acest moment, sistemul ne cere să alegem sursa interogării, adică tabelul sau interogarea de unde vom extrage datele.

În secţiunea View putem selecta obiectele pe care vrem să le vizualizăm, fie ele tabele, fie interogări, sau ambele tipuri de obiecte.

Dacă interogarea pe care dorim să o definim trebuie să extragă date din toate înregistrările unui tabel , vom folosi acest tabel ca sursă, iar în cazul în care va trebui să definim o interogare normală, pentru a combina anumite date din tabele, vom folosi această nouă interogare ca sursă pentru interoparea crosstab.

Pasul următor ar fi să selectăm sursa dorită şi să apăsăm pe butonul Next>, pentru a merge la următoarea ferestră.

Fig. 41. Alegerea câmpurilor linie

33

Page 34: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

În ferestra de mai sus, Fig. 41., wizard-ul ne va cere să alegem cîmpurile linie (adică denumirile care permite identificarea valorilor pe linie). Una dintre coloanele unui tabel poate fi folosită ca nume de linie, iar alta ca şi cap de tabel. Dacă una dintre aceste două coloane conţine mult mai multe date diferite decât cea de-a doua, vom selecta prima coloană ca nume de linie, iar a doua ca nume de coloană(cap de tabel).

Pentru a alege un nume de linie, trebuie să acţionăm cu un click asupra butonului . Astfel, câmpul selectat se va transfera în secţiunea Selected fields. În acelaş timp apare, în partea de jos a ferestrei, un mic model, care ne va arăta o parte din schema rezultatului interogării.

Dacă am selectat câmpul greşit, cu ajutorul butonului putem repara această greşeală. Putem selecta până la trei câmpuri. Dacă selectăm mai mult de un câmp, pentru a fi nume de

linie, valorile pe care le vom avea în liniile rezultat, vor apărea în funcţie de combinaţiile dintre acele câmpuri.

Butonul cu două săgeţi ne permite transferul tuturor câmpurilor, dintr-un singur click, dintr-o secţiune în alta.

În cazul în care dorim să continuăm, după ce am introdus toate datele, apăsăm pe butonul Next>. Următoarea ferestră care va apărea este arătată în Fig.42.

Fig. 42. Selecatarea câmpurilor în Crosstab query

În această nouă fereastră, wizardul ne va cere să introducem capul de tabel. În acest moment putem alege doar un singur câmp ţi pentru fiecare valoare diferită din sursă se va genera câte un cap de tabel.

În partea de jos a ferestrei se poate vedea rezultatul. În cazul figurii de mai sus se observă că în urma alegerii unui câmp din tabel, s-a generat automat capul de tabel.

În cazul în care selectăm, pentru cap de tabel, un câmp de tip dată-timp, acest wizard ne permite să redefinim capurile de tabel în felul următor, după se observă şi din Fig.43.

34

Page 35: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig.43. Definirea capului de tabel în cazul câmpului de tip dată

În cazul în care tipul de dată pe care îl are câmpul ales la capul de tabel este de tip dată, vrem de cele mai multe ori să obţinem nişte rezultate grupate pe zile. Această facilitate ne este oferită de vrăjitorul crosstab. Se observă apariţia unor cinci coloane care descriu datele necesare interogării, aşa cum sunt ilustrate şi în Fig.44. După definirile capurilor de linie şi coloană trecem la pasul următor cu ajutorul butonului Next>:

Fig. 44. Definirea afişării cantităţii rămase în stoc prin Crosstab query wizard

Această nouă fereastră care apare ne cere să stabilim ce rezultat se va afişa la intersecţia dintre linie şi coloană.

În lista Functions vom selecta funcţia de agregare pe care o vom folosi pentru a calcula valoare pe care o vom afişa, iar în lista Field vom selecta câmpul asupra căruia vom acţiona. De exemplu, vrem să afişăm cantitătea rămasă în stoc dintr-un anumit medicament, ca în Fig. 44.

După aceasta, printr-un click pe butonul Next>,vom ajunge la ultima fereastră a acestui wizard, , fereastră în care vom introduce numele interogării, rămasă în cazul nostru implicit Query 3, după cum se vede şi din Fig. 45.

35

Page 36: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig.45. Denumirea interogării crosstab .Înainte de a da un click pe butonul Finish putem alege, caz în care vom vizualiza rezultatele

interogării, ca în Fig. 46., sau putem alege Modify the design, caz în care va apăre fereastra Query design, Fig. 47, care ne va oferi posibilitatea de a modifica definiţia interogării.

Fig. 46. Vizualizarea rezultatelor interogării crosstab în cazul View the query

Fig. 47. Vizualizarea rezultatelor interogării crosstab în cazul Query design

Modul design view al acestui tip de interogare este similar modului design view aferent interogărilor crosstab. Astfel, pentru a defini o interogare de acest tip, avem nevoie de o nouă linie introdusă în grid: linia Crosstab.

Această nouă linie serveşte la definirea conceptelor pe care le-am întâlnit în cazul wizard-ului.

36

Page 37: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Pentru a interpreta mai uşor rezultatele vom apela la modul de afişare grafic PivotChart View din meniul View al Microsoft Access 2000., aşa cum se vede şi din Fig.48.

Fig. 48. Vizualizarea rezultatelor unei interogări crosstab în modul PivotChart View

În funcţie de opţiunile de afişare, putem avea o imagine de ansamblu asupra ponderii mişcării medicamentelor din stoc, după cum se observă şi din Fig. 49 şi Fig. 50.

Fig. 49. Vizualizarea rezultatelor unei interogări crosstab în modul PivotChart View, folosind diferite moduri grafice de afişare

37

Page 38: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 50. Vizualizarea rezultatelor unei interogări crosstab în modul PivotChart View, folosind diferite moduri grafice de afişare

III.5 Utilizarea programului de gestiune a stocurilor unei farmacii realizat în Microsoft Access 2000

Un program de gestiune a stocurilor are ca scop înregistrarea întregii activităţi a intreprinderii, inclusiv din punct de vedere al contabilităţii primare de gestiune.14 Programul realizat şi prezentat în proiectul de faţă nu se ocupa însă şi de partea financiară, care este în general gestionată de aplicaţii dedicate, dar are posibilitatea de a pune la dispoziţia acestora toate datele necesare pentru o bună contabilitate. S-a avut în vedere nu numai înregistrarea „traficului” de medicamente din farmacie, ci şi fluidizarea acestuia şi înregistrarea tuturor paşilor, după facturile de intrare şi de ieşire.

Interogărilor utilizate de baza de date, tipul lor şi funcţia pe care o au sunt următoarele: cautare_medicament (select query): afişează toate datele referitoare la medicamentul a

cărui denumire este introdusă de la tastatură, având parametru în câmpul denumire. Se bazează pe tabelul medicamente;

factura intrare (select query): afişează toate datele referitoare la medicamentele aflate pe o anumită factură de intrare, al cărei număr este introdus de la tastatură, cerut de un parametru din câmpul nr_intrare. Se bazează pe tabelele medicamente şi intrari;

eliminare intrari goale (delete query): şterge din tabelul medicamente înregistrările care au în câmpul cantitate valoarea zero. Se bazează pe tabelul medicamente;

14 http://www.asecib.ase.ro/Mitrut%20Dorin/Curs/bazeCO

38

Page 39: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

cautare vanzari (select query): afişează toate datele referitoare la medicamentele aflate pe o anumită factură de ieşire, al cărei număr este introdus de la tastatură, cerut de un parametru din câmpul factura. Se bazează pe tabelele arhiva vanzari şi vanzari;

intrari goale (select query): afişează toate înregistrările din tabelul medicamente, care au în câmpul cantitate valoarea zero. Se bazează pe tabelul medicamente;

pericol expirare (select query): afişează toate înregistrările din tabelul medicamente care au proprietatea că se referă la medicamente care mai au o lună până când expiră. Se bazează pe tabelul medicamente;

pret (select query): afişează preţul de vânzare, codul şi cantitatea disponibilă dintr-un medicament a cărui denumire este introdusă de la tastatură, cerută de un parametru în câmpul denumire. Se bazează pe tabelul medicamente;

stergere (delete query): şterge înregistrările din tabelul medicamente care au proprietatea că se referă la medicamente care deja au expirat. Se bazează pe tabelul medicamente;

test_valabilitate (select query): afişează înregistrările din tabelul medicamente care au proprietatea că fac referire la medicamente care deja au expirat. Se bazează pe tabelul medicamente.

update (update query): scoate din stoc cantitatea de medicamente vândute scăzând din câmpul cantitate aflat în tabelul medicamente valoarea care se află în câmpul cantitate din tabelul arhiva vanzari. Se bazează pe tabelele arhiva vanzari şi medicamente.

Rapoartele care se regăsesc în program au atât rolul de a pregăti datele pentru imprimare într-un format adecvat, cât şi rolul de a servi drept mijloace de informare pentru a calcula valorile facturilor de intrare şi de ieşire.

Rapoartele utilizate sunt: factura intrare: strânge datele de pe factura de intrare cu numărul specificat de la

tastatură înainte de deschidere şi calculează valoarea sa totală. Se bazează pe interogarea factura intrare;

cautare_vanzari: strânge datele de pe factura de ieşire cu numărul specificat de la tastatură înainte de deschidere şi calculează valoarea sa totală. Se bazează pe interogarea cautare vanzari;

medicamente: afişează toate medicamentele care se află la momentul apelării în stoc. Se bazează pe tabelul medicamente.

Fig. 51. Interogarea test_valabilitate în Design view.

39

Page 40: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Fig. 52. Tabul Reports şi rapoartele utilizate de baza de date de gestiune de stocuri

Fig. 53. Capul raportului medicamente, cu rubricile organizate în funcţie de data de intrare în primul rând şi de numărul facturii de intrare în al doilea rând

În momentul în care toate interogările şi rapoartele au fost create, s-a trecut la creearea formularelor. În primul rând au fost create formularele principale: furnizori, intrari (împreună cu sub-formularul medicamente), medicamente şi vanzari (împreuna cu sub-formularul arhiva vanzari.

Formularul furnizoriFormularul furnizori are rolul de a facilita înregistrarea furnizorilor cu care are contracte

farmacia şi operaţiile de întreţinere care trebuie făcute la acest nivel.

Formularul intrariFormularul intrari reprezintă modalitatea de a introduce medicamente în stoc, prin cumpărare.

Prin intermediul sub-formularului medicamente, medicamentelele sunt adăugate automat în stoc, iar rubricile nr_intrare şi data_intrarii nu mai necesită completare.

Formularul medicamenteFormularul medicamente este locul unde pot fi efectuate toate operaţiile de întreţinere a bazei

de date în ceea ce priveşte stocul de medicamente. O parte din facilităţile acestui formular presupun operaţii de ştergere, ceea ce înseamnă că lucrul cu el necesită un spor de atenţie.

Este posibil ca intrările care fac referire la medicamente care nu mai există în stoc să fie necesare mai târziu, deci intrările goale nu ar trebui şterse imediat ce un medicament a fost epuizat din

40

Page 41: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

stoc. Pe de altă parte, după o anumită perioadă de timp (o dată pe zi, o dată pe săptămână, sau chiar mai rar în funţie de spaţiul de memorare de pe hard disk) acestea trebuie şterse pentru a nu îngreuna funcţionarea bazei de date în mod inutil.

Formularul vanzariFormularul vanzari reprezintă modalitatea de a scoate medicamentele din stoc, prin vânzare.

Prin intermediul sub-formularului medicamente, medicamentele vândute sunt adăugate automat în tabelul arhiva vanzari, iar rubricile nr_intrare şi data_intrarii nu mai necesită completare. Medicamentele nu sunt scoase direct din stoc, ci prin intermediul tabelului arhiva vanzari.

La scoaterea medicamentelor din stoc utilizatorul trebuie să fie foarte atent ca datele din factură să fie corecte. În cazul în care se încearcă scoaterea din stoc a mai multor medicamente decât există, atunci procedura de scoatere va fi întreruptă. De asemenea, scoaterea medicamentelor din stoc trebuie efectuată o singură dată pentru fiecare factură în parte.

Prin intermediul sub-formularului medicamente, medicamentele sunt introduse automat în stoc, timp în care sunt introduse şi în formularul intrari, ceea ce duce la îndeplinirea a două funcţii în acelaşi timp: completarea stocului şi organizarea medicamentelor în funcţie de numărul de intrare şi dată la care acestea sunt cumpărate de la furnizori. De asemenea, numărul de intrare şi data sunt completate automat, utilizatorul nefiind obligat să le introducă de fiecare dată când adaugă un nou medicament pe factură.

Interogarea crosstab are rolul de a putea urmări mai uşor mişcările de stocuri pentru fiecare medicament în parte şi se va folosi în momentul în care se doreşte emiterea unei comenzi către un furnizor de medicamente. Se lansează din Queries, prin deschiderea interogării Query 3 .

41

Page 42: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

Concluzii

Din cele prezentate mai sus rezultă că proiectul a realizat o prezentare teoretică şi ilustrează o modalitatea practică de creare pe fundamente ştiiţifice contabile a unei baze de date simplă, care să beneficieze de filtre şi funcţiile contabile în desfăşurarea unei activităţi curente de gestiune reală a stocurilor unei farmacii. Prin intermediul unui Macro pot fi executate acţiuni complexe, cum ar fi deschiderea unui formular, deschiderea unei interogări, salvarea datelor din interogare, închiderea acesteia şi închiderea formularului, toate prin apăsarea unui singur buton sau prin selectarea unui anumit câmp. De asemenea, din cele prezentate mai sus rezultă că programul de gestiune a stocurilor unei farmacii respectă cerinţele de proiectare prezentate în capitolul dedicat proiectării bazei de date.

Utilizarea programului de gestiune a stocurilor unei farmacii are în concluzie următoarele avantaje faţă de gestiunea neţinută pe un supor informatic, avantaje care sunt de fapt funcţii ale sistemului informatic, materializate prin următoarele facilităţi:

Facilităţi ale formularului furnizori : - adăugarea unei noi înregistrări sau unui nou furnizor;- căutarea unui furnizor pe bază de parametri multipli; - ştergerea înregistrării care este selectată.

Facilităţi ale formularului intrari :- calcularea automată a valorilor din câmpurile valoare, valoare_TVA şi valoare_totală; - pregătirea facturii de intrare pentru tipărire, atunci când este deschis raportul factura intrare1;- tipărirea raportului pregătit;- adăugarea unei noi înregistrări:- un link către tabelul medicamente pentru a avea acces direct la facilităţile de acolo;- posibilitatea de a salva factura de intrare în format extern, astfel încât să existe copii de siguranţă.

Facilităţi ale formularului medicamente :- afişarea tuturor medicamentelor care se găsesc în stoc, prin utilizarea raportului medicamente;- afişarea tuturor medicamentelor din stoc care au denumirea introdusă de utilizator de la tastatură, caz în care se foloseşte interogarea cautare medicament;- căutarea unui anumit medicament în funcţie de mai mulţi parametri- găsirea medicamentelor care au expirat, prin folosirea interogării test_valabilitate- găsirea medicamentelor care mai au o lună până când expiră, utilizând interogarea pericol_expirare- eliminarea din baza de date a intrărilor care fac referire la medicamente care nu mai există în stoc, rulând interogarea eliminare intrari goale- eliminarea din baza de date a intrărilor care fac referire la medicamente care nu mai sunt valabile, folosind interogarea stergere- afişarea înregistrărilor din baza de date care fac referire la medicamente care nu mai există în stoc, utilizând interogarea intrari goale- posibilitatea de a schimba preţul de vânzare al unui medicament în funcţie de fluctuaţiile pieţei.

Facilităţi ale formularului vanzari :- calcularea automată a valorilor din câmpurile valoare_v, valoare_TVA_v, valoare_totala_v, pret_facturat;- afişarea datelor necesare în vederea vânzării despre medicamentele solicitate, atunci când se foloseşte interogarea pret;- pregătirea facturii de ieşire pentru tipărire, prin deschiderea raportului cautare_vanzari;- afişarea tuturor intrărilor care au în câmpul denumire valoarea introdusă de la tastatură, atunci când este folosită interogarea cautare_medicament;- existenţa unui link către formularul medicamente, pentru a avea acces direct la anumite funcţii de întreţinere (de exemplu verificarea stării de valabilitate a unui medicament);-adăugarea unei noi înregistrări.

Prin utilizarea interogării crosstab şi interpretarea rezultatelor furnizate de ea, fie sub exprimare valorică cât fie sub exprimare grafică, se poate estima necesarul de stoc pentru fiecare medicament în parte, astfel încât farmacia să-şi poată deservi clienţii fără riscul unei supradimensionări a stocurilor ,care ar însemna un efort financiar mai mare dar şi creşterea riscului de a depăşi termenele de valabilitate a medicamentelor nevândute.

42

Page 43: Proiectarea Unui Sistem Informatic Pentru Gestiunea Stocurilor

BIBLIOGRAFIE

1. Claudia Cârstea – Sisteme informatice de gestiune, Ed. Omnia UNI S.A.S.T., Braşov 2007

2. Claudia Cârstea – Proiectarea bazelor de date. Mediul de programare Microsoft Access, Ed. Omnia UNI S.A.S.T., Braşov 2007

3. Pleşea Doru - Bazele contabilităţii, vol. II, Ed. Omnia Uni SAST, Braşov, 2005

4. Petre Brezeanu - Gestiunea financiară a intreprinderii, Ed. Cavallioti, 2002

5. Gheorghe Basanu - Managementul aprovizionării şi desfaceri, Ed. Economica, 1996 Mihai Pricop

6. Radu Emilian - Managementul operaţiunilor în intreprinderile de servicii Gabriela Tigu

7. Eugen Ţigănescu - Bazele cercetării operaţionale Dorin Mitruţ

8. www.trendix.ro

9. http://www.market-mentor.ro

10. http://www.biblioteca.ase.ro/eresurse/reviste/contabilitate

11. http://www.asecib.ase.ro/MitruDorin/Curs/bazeCO

12. http://www.ea.upm.ro/cip/elearningi

i Există posibilitatea ca site-urile indicate în bibliografie să se regăsească într-o formă diferită de cea existentă la data când s-a realizat prezentul proiect

43