|
Colegiul Militar Liceal "Mihai Viteazul "
Alba Iulia
A T E S T A T
INFORMATICA
TEMA: Sistem de Gestiune Farmacie
Mediul de Programare: Visual FoxPro
1 Enuntul problemei
Sa se creeze o aplicatie in Visual FoxPro care sa permita gestionarea Bazei de Date specifica unei farmacii ,avand in vedere folosirea unui meniu usor accesibil pentru executarea procedurilor existente in program. Aplicatia trebuie sa permita vizualizarea si modificarea elementelor bazei de date precum si elaborarea de statistici si liste in functie de cerintele necesare unui sistem real de gestiune.
Sistemul va contine componente de validare a datelor si se va comporta optim in situatia introducerii de date eronate.
2 Specificarea cerintelor
Pentru a acoperi necesarul de informatie si operabilitate Baza de Date va avea urmatoarea structura:
Legenda: Den -->Denumirea produsului
Cant -->Cantitata
Pret -->Pretul
Furn -->Furnizorul medicamentului
comp -->Compensat prin Casa de Asigurari de Sanatate (True/ False)
Reteta-->Medicamentul necesita reteta( True/ False)
datae --> Data expirarii
Pentru asigurarea operabilitatii, sistemul de gestiune va contine un meniu structurat
pe trei nivele de lucru:
Submeniurile vor fi astfel structurate si elaborate incat sa permita vizualizarea si modificarea elementelor bazei de date precum si elaborarea de statistici si listein functie de cerintele necesare unui sistem real de gestiune.
Sistemul va contine componente de validare a datelor si se va comporta optim in situatia introducerii de date eronate.
3. Analiza si Implementare
Aplicatia a fost implementata in limbajul de programare Visual FoxPro intrucat este un limbaj specific gestionarii Bazelor de Date care permite realizarea unei interfate prietenoase si totodata simple prin prezentarea optiunilor de executare intr-un meniu usor de accesat care afiseaza in acelasi timp indicatiile de folosire.
Propun urmatoarele submeniri pentru asigurarea unui sistem complet:
Prelucrari:
Introducerea si corectarea - vor contine mecanisme de validare a datelorSay-Get-Read astfel incat datele introduse sa nu depaseasca valorile tehnic admisibile.
Ex: - nu poate fi introdusa luna 14 sau valori ce contin din greseala litere.
Cod Sursa:
dn=space(15)
@1,1 say 'Denumire='
@1,11 get dn picture'xxxxxxxxxxxxxxx'
ca=0
@3,1 say'Cantitate='
@3,11 get ca picture '99999.99'
Daca la Corectare sau Stergere se cauta un produs care nu exista in Baza de Date , se va afisa pe ecran un mesaj corespunzator.
Stergere Inregistrari Vide- se foloseste in situatia in care operatorul a
introdus din greseala o inregistrare vida la sectiunea Introducere.
clear
clear windows
dele all for den=space(15)
pack
Daca se renunta la corectare inainte de cautarea unui produs nu se intra in eroare ci se face suprascriere peste primul produs din Baza de date.
Operatii:
Cautarea dupa Denumire sau Furnizor- permite cautarea unui produs prin introducerea primelor litere ale produsului respectiv ale furnizorului.
Cod Sursa:
clear windows
clear
define window w from 6,40 to 20,80 title 'Introduceti primele litere ale produsului' double shadow
activate window w
dn=space(15)
@1,1 say 'Denumire='
@1,11 get dn picture'aaaaaaaaaaaaaaa'
read
locate for left(lower(chrtran(den,' ','')),len(dn))=lower(chrtran(dn,' ',''))
if found()=.t.
deactivate window w
brow for left(lower(chrtran(den,' ','')),len(dn))=lower(chrtran(dn,' ',''))
ELSE
@3,1 say 'Nu exista Produse !'
wait
deactivate window w
endif
Discount pe produse sau furnizori- permite aplicarea de catre farmacie a unui discount pentru un anumit produs, respectiv aplicarea de catre furnizor a unui discount pentru toate produsele sale.
Statistici Creeaza liste de aprovizionare pentru produsele a caror cantitate se afla sub o anumita valoare, lista cu medicamentele care au depasit termenul de valabilitate, lista de medicamente compensate pentru bilantul cu Casa de Asigurari de Sanatate.
Filtrul permite cautarea produselor care satisfac ambele cerinte simultan sau una intre ele.
Cod Sursa:
clear windows
define window w from 6,40 to 20,80 title 'Filtrare date' double shadow
activate window w
dn=space(15)
@1,1 say 'Denumire='
@1,11 get dn picture'aaaaaaaaaaaaaaa'
fu=space(15)
@3,1 say 'Furnizor='
@3,11 get fu picture'aaaaaaaaaaaaaaa'
read cycle
@5,1 say 'Apesi Enter pe fiecare in parte !'
locate for left(lower(chrtran(furn,' ','')),len(fu))=lower(chrtran(fu,' ','')) and left(lower(chrtran(den,' ','')),len(dn))=lower(chrtran(dn,' ',''))
if found()=.t.
deactivate window w
brow for left(lower(chrtran(furn,' ','')),len(fu))=lower(chrtran(fu,' ','')) and left(lower(chrtran(den,' ','')),len(dn))=lower(chrtran(dn,' ',''))
ELSE
@3,1 say 'Nu exista caracteristicile date!'
wait
deactivate window w
endif
4. GHID DE UTILIZARE
Lansarea in executie: Se deschide Visual FoxPro --> File -->Open-->In lista Files of Type se alege "Program" -->se alefe farm.mpr -->Ok-->Meniul "Program" -->Do Farm.MPR-->la solicitarea bazei de date se deschide farm.DBF
Utilizarea programului este reletiv simpla si se face prin accesarea meniurilor prezentate la sectiunea Analiza si Implementare.
In cadrul ferestrelor Introducere, Corectare este permisa prin utilizarea comenzii Read Cycle revenirea asupra scrierii si introducerea datelor in Baza de Date se face prin utilizarea tastei Escape
5. AUTOEVALUARE SI DIRECTI DE EXTINDERE
Consider ca aplicatia este complexa,ca s-au realisat toate cerintele problemei , ca interfata acesteia aste una placuta si extrem de simpla si usor de manevrat de catre orice utilizator fie acesta programator sau simplu operator.
Aplicatia poate fi extinsa prin adaugarea altor optiuni in cadrul meniului sau poate fi perfectionata prin modificarea in sens constructiv a celor deja existente.
6. BIBLIOGRAFIE
1.Manual de informatica clasa a XII-a editura PETRION,BUCURESTI 2002
2.Instructiuni de folosire a limbajelor de programare editura TEHNICA,BUCURESTI 1992
3.Documentarea privind gestionarea unei farmacii la
SC VIKI FARM SRL-Alba Iulia