"Colegiul National Cantemir Voda"
Lucrare de atestat la informatica in visual fox pro 9
Scopul acestui proiect
Principalul scop al acestui proiect este de a ajuta institutiile de tip laborator de a gestiuna si organiza activitatile lor creeind o baza de date unde respectivele firme pot tine o evidenta a clientilor dar si a serviciilor oferite iar programul este usor de utilizat chiar si pentru utilizatorii cu o cunoasterea minima in utilizarea calculatorului.
Programul creeeat de mine este de o dificultate medie, fiind prezente operatii simple precum stergerea, adaugarea si salvarea, modificarea si listarea unor campuri dar si unele mai putin simple precum extragerea datei de nastere si sexul din codul numeric personal al clientilor si alte operatii de conditionare a corectitudinii cnp-ului.
Pentru creearea si finalizarea acestuia am utilizat programul visual fox pro 9.0, fiind introdus in programa scolara in clasa a 12-a.
Structura
In acest program datele sunt salvate in doua tabele.
Prima tabela 'Clienti': Precum ii spune si numele, aceasta tabela salveaza datle clientilor laboratorului pentru a aplica diversele operatii asupra lor. Aceasta tabela dispune de unsprezece campuri.
A doua tabela 'Analize': Retine serviciile laboratorului adica analizele pe care le efectueaza.este format din patru entitati:
'cod': de tip numeric.Retin un numar unic pentru fiecare inregistrare pentru a diferentia analizele precum este campul 'cnp' in tabela 'clienti'.
'nume' retine numele analizei si este de tip caracter.
'pret' retine pretul efectuarii acestei analize fiind evident de tip numeric cu doua ecimale.
'spec' retine specificatiile unei analize cum ar fi durata efectuarii acesteia si unele nevoie de care dispune pentru efectoarea ei cu succes. Tip caracter.
Tabela 'clienti' prezinta o legatura de tip 1-n cu cea de 'analize' fiecare client prezentand o analiza sau mai multe analize efectuate.
Mod de operare
La activarea programului se va deschide fereastra 'Gestionare Laborator' unde se vor desfasura dealtfel toate operatiile ce vor urma. Se pot observa cele trei meniuri principale: 'Clienti', 'Analize' si 'Iesire'.
Primul meniu de optiuni:
Activand optiunea 'Clienti' ,prin click stanga, un meniu de tip popup se va deschide continand urmatoarele campuri: 'Adaugare client', 'Gasire client', 'Modificare client', 'Stergere client', 'Lista rauplatnici' si 'lista clienti'
1.La activarea primei optiuni a meniului secundar 'introducere client', tot prin click stanga, o lista de campuri libere se vor afisa pentru a introduce datele persoanei adaugate. Dupa ce au fost introduse datele ele sunt automat salvate in tabela clienti.
Atentie!: Campurile nume, prenume si cnp sunt imperative; Daca ele nu sunt introduse tabela nu va salva clientul.
2. A doua optiune consta in gasirea unui client dupa numele si prenumele acestuia. Alegand aceasta optine doua campuri, nume si prenume, se vor activa.Dupa introducerea datelor automat se vor sterge acele doua campuri si se va afisa in fereastra datele persoanei gasite prin motorul de cautare creat. In cazul in care numele si prenumele nu au fost gasite se va afisa mesajul 'Nu exista'.
3.'Modificare client'.Precum optiunea 'Gasire', programul va afisa doua campuri libere unde utilizatorul introduce numele si prenumele. O data gasit clientul respectiv apare in fereastra campuri precum cele din Adaugare.Dupa introducerea datelor in acele campuri se salveaza automat datele clientului in locul celor vechi in tabela 'clienti'.
Atentie: Introducerea eronata a codului numeric personal duce la aparita unui mesaj de eroare precum cel de mai jos.
4. Optiunea 'stergere client' este cea mai simpla din punctul de vedere al operarii. O data activata optiunea aceasta programul va solicita numele si prenumele persoanei pe care urmaza sa o stearga. Stergerea sa face automat fara aparitia unui mesaj de confirmare.
5. Lista clientilor rauplatnici: La activarea acestei optiuni programul va procesa tabela 'clienti' parcurgand-o si afisand numele, prenumele, cnp-ul, telefonul si valoarea datoriei doar la acelor persoane al caror camp 'dator' este diferit de zero.
6. Lista clienti: aceasta optiune listeaza pur si simplu clientii afisand
numele, prenumele, cnp-ul si telefonul fiecaruia.
Al doilea meniu de optiuni 'analiza':
Selectand acest meniu un meniu secundar de tip popup se va activa afisand urmatoarele optiuni: 'Adaugare analiza', 'Gasire analia', 'Modificare analiza', 'Stergere analiza' 'Lista analize'.
1. La alegerea primei optiuni se va afisa o serie de campuri in care utilizatorul va introduce datele.Datele vor fi salvate automat in tabela 'Analize'
Atentie!: Campurile cod si nume sunt imperative.Daca aceste doua nu sunt introduse programul nu va salva analiza in tabela 'Analize'.
2.
Optiunea gasire analiza este similara cu cea de gasire client. La activarea
acesteia se vor afisa un
3. La
alegerea 'Modificare Analiza' Se vor activa un
Atentie!: La a doua serie de date este necesar introducerea codului si numele analizei. In caz contrar datele nu vor fi salvate in tabela analize.
4. La
stergerea analizelor programul afiseaza un
5. Alegand ultima optiune programul va lista analizele afisand la fiecare codul, numele analizei si pretul acesteia.
Al treilea meniu principal 'Iesire':
Acest meniu nu contine submeniuri de tip popup si alegerea lui activeaza procesul de inchidere a programului.
Instructiunile
CLEAR
DEFINE WINDOW fereastra FROM 0,0 TO 55,100 TITLE 'Gestionare laborator' CLOSE FILL FILE 'C:Documents and SettingsAntoineMy DocumentsVisual FoxPro Projectseffect1.gif'
ACTIVATE WINDOW fereastra
DEFINE MENU meniu
DEFINE PAD pad1 OF meniu PROMPT 'Clienti'
DEFINE PAD pad2 OF meniu PROMPT 'Analiza'
DEFINE PAD pad3 OF meniu prompt 'Iesire'
DEFINE POPUP pop1
DEFINE BAR 1 OF pop1 PROMPT 'introducere client'
DEFINE BAR 2 OF pop1 PROMPT 'Gasire client'
DEFINE BAR 3 OF pop1 PROMPT 'Modificare client'
DEFINE BAR 4 OF pop1 PROMPT 'Stergere client'
DEFINE BAR 5 OF pop1 PROMPT 'Lista rauplatnici'
DEFINE BAR 6 OF pop1 PROMPT 'Lista clienti'
DEFINE POPUP pop2
DEFINE BAR 1 OF pop2 PROMPT 'Introduce analiza'
DEFINE BAR 2 OF pop2 PROMPT 'Gasire analiza'
DEFINE BAR 3 OF pop2 PROMPT 'Modificare analiza'
DEFINE BAR 4 OF pop2 PROMPT 'Stergere analiza'
DEFINE BAR 5 OF pop2 PROMPT 'Listare analize'
ON SELECTION PAD pad1 OF meniu ACTIVATE popup POP1 at 1,0
ON SELECTION PAD pad2 OF meniu ACTIVATE POPUP pop2 at 1,9
ON SELECTION pad pad3 of meniu do proc3
ON SELECTION BAR 1 OF pop1 do proc11
ON SELECTION BAR 2 OF pop1 do proc12
ON SELECTION BAR 3 OF pop1 do proc13
ON SELECTION BAR 4 OF pop1 do proc14
on selection bar 5 of pop1 do proc15
ON SELECTION BAR 6 OF pop1 do proc16
ON SELECTION BAR 1 OF pop2 do proc21
ON SELECTION BAR 2 OF pop2 do proc22
ON SELECTION BAR 3 OF pop2 do proc23
ON SELECTION BAR 4 OF pop2 do proc24
ON SELECTION BAR 5 OF pop2 do proc25
ACTIVATE MENU meniu
DEACTIVATE MENU meniu
CLOSE ALL
PROCEDURE proc11
CLEAR
CLEAR
USE clienti
nume1=SPACE(50)
prenume1=SPACE(50)
cnp1=SPACE(13)
adresa1=SPACE(70)
telefon1=SPACE(20)
analize1=SPACE(70)
spec1=SPACE(70)
sex1=SPACE(2)
plata1=0.00
dator1=0.00
@10,2 say 'nume= ' get nume1
@12,2 say 'prenume= ' get prenume1
@14,2 say 'CNP= ' get cnp1
@16,2 say 'Adresa= ' get adresa1
@18,2 say 'Telefon= ' get telefon1
@20,2 say 'Analize efectuate= ' get analize1
@22,2 say'Specificatii= ' get spec1
@24,2 say 'Plata(RON)= ' get plata1
@26,2 say 'Datorie(RON)= ' get dator1
read
SET CENTURY on
datan1=SPACE(6)
x=SPACE(20)
d=SPACE(20)
m=SPACE(20)
y=SPACE(20)
d=SUBSTR(ALLTRIM(cnp1),6,2)
m=SUBSTR(ALLTRIM(cnp1),4,2)
y=SUBSTR(alltrim(cnp1),2,2)
IF VAL(y)<=20
y='20'+y
ELSE
y='19'+y
ENDIF
x=m+'/'+d+'/'+y
datan1=CTOD(x)
IF LEFT(ALLTRIM(cnp1),1)=='1'
sex1='M'
ELSE
sex1='F'
endif
IF nume1!=' ' AND prenume1!=' '
IF cnp1==TRANSFORM(VAL(cnp1)) AND VAL(SUBSTR(ALLTRIM(cnp1),6,2))>=1 AND VAL(SUBSTR(ALLTRIM(cnp1),6,2))<=31 AND VAL(SUBSTR(ALLTRIM(cnp1),4,2))>=1 AND VAL(SUBSTR(ALLTRIM(cnp1),4,2))<=12 AND (LEFT((ALLTRIM(cnp1)),1)=='1' OR LEFT((ALLTRIM(cnp1)),1)=='2')
APPEND BLANK
replace nume WITH nume1
replace prenume WITH prenume1
replace cnp WITH cnp1
replace datan WITH datan1
replace adresa WITH adresa1
replace telefon WITH telefon1
replace analize WITH analize1
replace spec WITH spec1
replace sex WITH sex1
replace plata WITH plata1
replace dator WITH dator1
CLEAR
ELSE
clear
@10,2 say ' CNP GRESIT! '
endif
else
clear
endif
return
PROCEDURE proc12
CLEAR
use clienti
nume1=SPACE(50)
prenume1=SPACE(50)
@10,2 say 'introduce nume' get nume1
@12,2 say 'introduce prenume' get prenume1
read
clear
IF nume1!=' ' AND prenume1!=' '
LOCATE FOR ALLTRIM(UPPER(nume))==ALLTRIM(UPPER(nume1)) AND ALLTRIM(UPPER(prenume))==ALLTRIM(UPPER(prenume1))
if FOUND()
@10,2 say 'Nume= '
@10,8 say ALLTRIM(nume)
@12,2 say 'Prenume= '
@12,11 say ALLTRIM(prenume)
@14,2 say 'Cnp= '
@14,7 say ALLTRIM(cnp)
@16,2 say 'Data nasterii= '
@16,17 say datan
@18,2 say 'Sex= '
@18,6 say ALLTRIM(sex)
@20,2 say 'Adresa= '
@20,10 say ALLTRIM(adresa)
@22,2 say 'Telefon= '
@22,11 say ALLTRIM(telefon)
@24,2 say 'Analize efectuate: '
@24,21 say ALLTRIM(analize)
@26,2 say 'Specificatii: '
@26,16 say ALLTRIM(spec)
@28,2 say 'Plata(RON)= '
@28,14 say plata
@30,2 say 'Datorie= '
@30,11 say dator
ELSE
@10,2 say 'Nu exista'
ENDif
ELSE
CLEAR
endif
RETURN
PROCEDURE proc13
CLEAR
USE clienti
numex=SPACE(50)
prenumex=SPACE(50)
@10,2 say 'Nume= ' get numex
@12,2 say 'Prenume= ' get prenumex
read
clear
IF numex!=' ' AND prenumex!=' '
LOCATE FOR ALLTRIM(UPPER(nume))==ALLTRIM(UPPER(numex)) AND ALLTRIM(UPPER(prenume))==ALLTRIM(UPPER(prenumex))
IF FOUND()
nume1=SPACE(50)
prenume1=SPACE(50)
cnp1=SPACE(13)
adresa1=SPACE(254)
telefon1=SPACE(20)
analize1=SPACE(90)
spec1=SPACE(70)
plata1=0.00
dator1=0.00
@10,2 say 'Nume= ' get nume1
@12,2 say 'Prenume= ' get prenume1
@14,2 say 'Cnp= ' get cnp1
@16,2 say 'Adresa= ' get Adresa1
@18,2 say 'Telefon= ' get telefon1
@20,2 say 'Analize efectuate= ' get analize1
@22,2 say 'Specificatii ' get spec1
@24,2 say 'Plata(RON)= ' get plata1
@26,2 say 'Datorie= ' get dator1
READ
IF nume1!=' ' AND prenume1!=' '
sex1=SPACE(2)
IF ALLTRIM(LEFT(cnp1,1))=='1'
sex1='M'
ELSE
sex1='F'
endif
datan1=SPACE(6)
d=SPACE(20)
m=SPACE(20)
y=SPACE(20)
d=SUBSTR(cnp1,6,2)
m=SUBSTR(cnp1,4,2)
y=SUBSTR(cnp1,2,2)
IF VAL(y)<=20
y='20'+y
ELSE
y='19'+y
ENDIF
x=m+'/'+d+'/'+y
datan1=CTOD(x)
IF cnp1==TRANSFORM(VAL(cnp1)) AND VAL(SUBSTR(ALLTRIM(cnp1),6,2))>=1 AND VAL(SUBSTR(ALLTRIM(cnp1),6,2))<=31 AND VAL(SUBSTR(ALLTRIM(cnp1),4,2))>=1 AND VAL(SUBSTR(ALLTRIM(cnp1),4,2))<=12 AND (LEFT((ALLTRIM(cnp1)),1)=='1' OR LEFT((ALLTRIM(cnp1)),1)=='2')
replace nume WITH nume1
replace prenume WITH prenume1
replace cnp WITH cnp1
replace adresa WITH adresa1
replace telefon with telefon1
replace analize WITH analize1
replace spec WITH spec1
replace datan WITH datan1
replace sex WITH sex1
replace plata WITH plata1
replace dator WITH dator1
CLEAR
ELSE
clear
@10,2 say ' CNP GRESIT! '
endif
ELSE
CLEAR
endif
ELSE
@10,2 say 'Nu exista'
ENDIF
ELSE
cLEAR
ENDIF
RETURN
PROCEDURE proc14
CLEAR
USE clienti
nume1=SPACE(50)
prenume1=SPACE(50)
@10,2 say 'Nume= ' get nume1
@12,2 say 'prenume= ' get prenume1
read
IF nume1!=' ' AND prenume1!=' '
LOCATE FOR ALLTRIM(UPPER(nume))==ALLTRIM(UPPER(nume1)) AND ALLTRIM(UPPER(prenume))==ALLTRIM(UPPER(prenume1))
IF FOUND()
DELETE
pack
clear
ELSE
clear
@10,2 say 'Nu exista'
endif
ELSE
CLEAR
endif
RETURN
PROCEDURE proc15
CLEAR
USE clienti
@10,2 say 'Nume Prenume CNP Telefon datorie(RON)'
@11,2 say '__________ ______ ____ __________ ______ ____ ______________'
i=1
j=13
k=0
FOR i=1 TO RECCOUNT()
GO i
IF dator!=0
k=k+1
@j,2 say ALLTRIM(nume)
@j,16 say ALLTRIM(prenume)
@j,34 say ALLTRIM(cnp)
@j,50 say ALLTRIM(telefon)
@j,66 say dator
j=j+2
else
endif
endfor
IF k==0
@10,2 say 'Nu exista clienti rauplatnici'
ELSE
endif
return
PROCEDURE proc16
CLEAR
USE clienti
@10,2 say 'Nume Prenume CNP Telefon '
@11,2 say '__________ ______ ____ __________ ______ ____ __'
i=1
j=13
FOR i=1 TO RECCOUNT()
GO i
@j,2 say ALLTRIM(nume)
@j,16 say ALLTRIM(prenume)
@j,34 say ALLTRIM(cnp)
@j,50 say ALLTRIM(telefon)
j=j+2
ENDFOR
return
PROCEDURE proc21
CLEAR
USE analize
cod1=0
nume1=SPACE(50)
pret1=0.00
spec1=SPACE(70)
@8,2 say 'Cod= ' get cod1
@10,2 say 'nume analiza= ' get nume1
@12,2 say 'pret analiza= ' get pret1
@14,2 say 'specificatii: ' get spec1
read
IF cod1!=0 AND nume1!=' '
APPEND blank
replace cod WITH cod1
replace nume WITH nume1
replace pret WITH pret1
replace spec WITH spec1
clear
ELSE
CLEAR
endif
return
PROCEDURE proc22
CLEAR
use analize
nume1=SPACE(50)
@8,2 say 'Nume analiza= ' get nume1
read
clear
IF nume1!=' '
LOCATE FOR ALLTRIM(UPPER(nume))==ALLTRIM(UPPER(nume1))
if FOUND()
@10,2 say 'Cod= '
@10,8 say cod
@12,2 say 'Analize= '
@12,11 say ALLTRIM(nume)
@14,2 say 'Pret analiza= '
@14,16 say pret
@16,2 say 'Specificatii= '
@16,16 say ALLTRIM(spec)
ELSE
@10,2 say 'Nu exista'
ENDif
ELSE
CLEAR
endif
RETURN
PROCEDURE proc23
CLEAR
USE analize
numex=SPACE(50)
@8,2 say 'Nume analiza= ' get numex
READ
clear
IF numex!=' '
LOCATE FOR ALLTRIM(UPPER(nume))==ALLTRIM(UPPER(numex))
IF FOUND()
Cod1=0
nume1=SPACE(50)
pret1=0.00
spec1=SPACE(254)
@8,2 say 'Cod=' get cod1
@10,2 say 'Nume analiza= ' get nume1
@12,2 say 'Pret= ' get pret1
@14,2 say 'Specificatii= ' get spec1
READ
CLEAR
replace cod WITH cod1
replace nume WITH nume1
replace pret WITH pret1
replace spec WITH spec1
ELSE
@8,2 say 'Nu exista'
ENDIF
ELSE
CLEAR
ENDIF
RETURN
PROCEDURE proc24
CLEAR
USE analize
nume1=SPACE(50)
@8,2 say 'Nume analiza= ' get nume1
READ
IF nume1!=' '
LOCATE FOR ALLTRIM(UPPER(nume))==ALLTRIM(UPPER(nume1))
IF FOUND()
DELETE
pack
clear
ELSE
clear
@8,2 say 'Nu exista'
ENDIF
ELSE
CLEAR
endif
RETURN
PROCEDURE proc25
CLEAR
USE analize
@8,2 say 'Cod Analiza Pret(RON) '
@9,2 say '__________ ______ ____ __________ ______ ____ _____'
j=11
FOR i=1 TO RECCOUNT()
GO i
@j,2 say cod
@j,9 say ALLTRIM(nume)
@j,57 say pret
j=j+2
ENDFOR
return
PROCEDURE proc3
clear
deactivate WINDOW fereastra
Bibliografie
"Initiere in FOXPRO" (avizata MEC), Producator: Arves
"Visual FoxPro 9.0 Professional", Producator: Microsoft
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |