Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Baze de date


Index » educatie » » informatica » Baze de date
» Evidenta produselor dintr-un magazin


Evidenta produselor dintr-un magazin


COLEGIUL NATIONAL LICEAL "ALEXANDRU ODOBESCU"

Evidenta produselor dintr-un magazin

Prezentarea aplicatiei

O metoda simpla pentru mentinerea evidentei produselor dintr-un magazin este folosirea unui program ce contine toate aplicatiile necesare unei astfel de evidente. Am ales pentru realizarea aplicatiei, ca mediu de programare, limbajul Visual Fox Pro deoarece ofera pe langa facilitatile specifice SGBD-urilor si posibilitatea de a implementa o interfata prietenoasa.



Am creat baza de date  Magazin.dbc cu tabelele produse.dbf si depozite.dbf.

produse.dbf depozite.dbf

codd C(3) codp C(5)

nume C(20) codd C(3)

adresa C(40) pretc N(10,2)

responsabil C(30)    pretv N(10,2)

nrtel N(10) nrb N(4)

nume C(15)

Pentru realizarea aplicatiei am creat 7 formulare.

In formularul principal, operatiile sunt grupate intr-un "page frame" cu 2 pagini.

Pagina 1: Evidenta Depozite

  1. La apasarea butonului "Adaugare depozit" se lanseaza in executie formularul "Adaugare depozit".

In acest formular se introduc datele noului depozit, iar la apasarea butonului Adaugare depozit se introduc datele intr-o intrare noua in tabela Produse.dbf.

  1. La apasarea butonului "Modificare depozit" se lanseaza in executie formularul "Modificare depozit"

In acest formular se introduc numele si codul depozitului pentru care se fac modificarile, iar daca acestea sunt valide se trece la modificarea datelor pentru respectivul depozit.

  1. La apasarea butonului "Stergere depozit" se lanseaza in executie formularul "Stergere depozit"

In acest formular se introduce codul depozitului care urmeaza sa fie sters din baza de date. La apasarea butonului « Sterge depozit » respectivul depozit este sters din baza de date.

  1. In momentul in care cursorul mouse-ului se afla pe eticheta « Listare depozite », un grup de butoane de optiuni apare deasupra acesteia. Acestea fac legatura catre un numar de interogari ce ajuta la ordonarea depozitelor din baza de date
  1. In momentul in care cursorul mouse-ului se afla pe eticheta « Cautare depozite », un grup de butoane de optiuni apare deasupra acesteia. La apasarea unuia dintre aceste butoane se face o cautare in baza de date dupa respectivul camp si dupa valoarea din casuta text alaturata.

Pagina 2: Evidenta Produse

  1. La apasarea butonului "Achizitionare produs" se lanseaza in executie formularul "Achizitionare produs".

In acest formular se introduc datele noului produs, iar la apasarea butonului « Adaugare produs » se introduc datele intr-o noua intrare in tabela « Produse.dbf ». Daca produsul exista deja, numarul de bucati va fi suplimentat cu cel citit.

  1. La apasarea butonului "Modificare produs" se lanseaza in executie formularul "Modificare produs"

In acest formular se introduc numele si codul produsului pentru care se fac modificarile, iar daca acestea sunt valide se trece la modificarea datelor pentru respectivul produs.

  1. La apasarea butonului "Vanzare produs" se lanseaza in executie formularul "Vanzare produs"

In acest formular se introduce codul produsului care va fi vandut, precum si numarul de bucati care vor fi vandute. In cazul in care nu exista respectivul produs sau nu mai sunt destule bucati disponibile, va fi afisat un mesaj corespunzator.

  1. In momentul in care cursorul mouse-ului se afla pe eticheta « Listare produse », un grup de butoane de optiuni apare deasupra acesteia. Acestea fac legatura catre un numar de interogari ce ajuta la ordonarea depozitelor din baza de date
  1. In momentul in care cursorul mouse-ului se afla pe eticheta « Cautare produse », un grup de butoane de optiuni apare deasupra acesteia. La apasarea unuia dintre aceste butoane se face o cautare in baza de date dupa respectivul camp si dupa valoarea din casuta text alaturata.

Codul sursa

Formularul principal "Evidenta produselor si depozitelor"

Evenimentul "Load"

SET DEFAULT TO 'c:My DocumentsVisual FoxPro ProjectsAtestatuv15'

DEFINE WINDOW win FROM 10,3 TO 34,70

use

USE depozite.dbf

Pageframe1

Page1

Label "Adaugare depozit"

Evenimentul "Click"

DO FORM adaugdepo.scx

Label "Modificare depozit"

Evenimentul "Click"

DO FORM modifdepo.scx

Label "Stergere depozit"

Evenimentul "Click"

DO FORM stergdepo.scx

Label "Listare depozite"

Evenimentul "MouseMove"

LPARAMETERS nButton, nShift, nXCoord, nYCoord

thisform.pf.pg1.optiongroup2.Visible= .f.

thisform.pf.pg1.optiongroup1.Visible= .t.-

Label "Cautare depozite"

Evenimentul "MouseMove"

LPARAMETERS nButton, nShift, nXCoord, nYCoord

thisform.pf.pg1.optiongroup2.Visible= .t.

USE depozite.dbf

Optiongroup1

Option1 ''Dupa cod''

Evenimentul "Click"

DO depozitequery2.qpr

Option2 ''Dupa nume''

Evenimentul "Click"

DO depozitequery3.qpr

Option3 ''Dupa adresa''

Evenimentul "Click"

DO depozitequery4.qpr

Option4 ''Dupa responsabil''

Evenimentul "Click"

DO depozitequery5.qpr

Option5 "Dupa numar telefon"

Evenimentul "Click"

DO depozitequery6.qpr

Optiongroup2

Option1 "Dupa cod"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

LOCATE ALL FOR UPPER(TRIM(thisform.pf.pg1.text1.value))==UPPER(TRIM(codd))

IF FOUND()

DISPLAY all for UPPER(TRIM(thisform.pf.pg1.text1.value))==UPPER(TRIM(codd)) field nume,responsabil,nrtel off

ELSE

@1,1 say 'Depozitul nu exista'

endif

WAIT ''

thisform.pf.pg1.text1.value=''

DEACTIVATE WINDOW win

Option2 "Dupa nume"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

LOCATE ALL FOR UPPER(TRIM(thisform.pf.pg1.text1.value))==UPPER(TRIM(nume))

IF FOUND()

DISPLAY all for UPPER(TRIM(thisform.pf.pg1.text1.value))==UPPER(TRIM(nume)) field nume,responsabil,nrtel off

ELSE

@1,1 say 'Depozitul nu exista'

endif

WAIT ''

thisform.pf.pg1.text1.value=''

DEACTIVATE WINDOW win

Option3 "Dupa adresa"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

LOCATE ALL FOR UPPER(TRIM(thisform.pf.pg1.text1.value))==UPPER(TRIM(adresa))

IF FOUND()

DISPLAY all for UPPER(TRIM(thisform.pf.pg1.text1.value))==UPPER(TRIM(adresa)) field nume,responsabil,nrtel off

ELSE

@1,1 say 'Depozitul nu exista'

endif

WAIT ''

thisform.pf.pg1.text1.value=''

DEACTIVATE WINDOW win

Option4 "Dupa responsabil"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

LOCATE ALL FOR UPPER(TRIM(thisform.pf.pg1.text1.value))=UPPER(TRIM(responsabil))

IF FOUND()

DISPLAY all for UPPER(TRIM(thisform.pf.pg1.text1.value))=UPPER(TRIM(responsabil))field nume,responsabil,nrtel off

ELSE

@1,1 say 'Depozitul nu exista'

endif

WAIT ''

thisform.pf.pg1.text1.value=''

DEACTIVATE WINDOW win

Option5 "Dupa numar telefon"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

LOCATE ALL FOR val(thisform.pf.pg1.text1.value)=nrtel

IF FOUND()

DISPLAY all for val(thisform.pf.pg1.text1.value)=nrtel field nume,responsabil,nrtel    off

ELSE

@1,1 say 'Depozitul nu exista'

endif

WAIT ''

thisform.pf.pg1.text1.value=''

DEACTIVATE WINDOW win

Page 2

Label "Achizitionare produs"

Evenimentul "Click"

do form adaugprodus.scx

Label "Modificare produs"

Evenimentul "Click"

DO FORM modifprodus.scx

Label "Stergere produs"

Evenimentul "Click"

DO FORM stergprodus.scx

Label "Listare produse"

Evenimentul "MouseMove"

LPARAMETERS nButton, nShift, nXCoord, nYCoord

thisform.pf.pg2.optiongroup3.Visible= .t.

Label "Cautare produse"

Evenimentul "MouseMove"

LPARAMETERS nButton, nShift, nXCoord, nYCoord

thisform.pf.pg2.optiongroup4.Visible= .t.

USE produse.dbf

Optiongroup3

Option1 "Dupa cod"

Evenimentul "Click"

DO produsequery1.qpr

Option2 "Dupa nume"

Evenimentul "Click"

DO produsequery2.qpr

Option3 "Dupa depozit"

Evenimentul "Click"

DO produsequery3.qpr

Option4 "Dupa pret vanzare"

Evenimentul "Click"

DO produsequery4.qpr

Option5 "Dupa pret cumparare"

Evenimentul "Click"

DO produsequery5.qpr

Optiongroup4

Option1 "Dupa cod"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

USE produse.dbf

LOCATE ALL FOR UPPER(TRIM(thisform.pf.pg2.text1.value))=UPPER(TRIM(codp))

IF FOUND()

DISPLAY all for UPPER(TRIM(thisform.pf.pg2.text1.value))=UPPER(TRIM(codp)) field nume,pretv,pretc off

ELSE

@1,1 say 'Produsul nu exista'

ENDIF

WAIT ''

thisform.pf.pg2.text1.value=''

use

DEACTIVATE WINDOW win

Option2 "Dupa nume"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

USE produse.dbf

LOCATE ALL FOR UPPER(TRIM(thisform.pf.pg2.text1.value))=UPPER(TRIM(nume))

IF FOUND()

DISPLAY all for UPPER(TRIM(thisform.pf.pg2.text1.value))=UPPER(TRIM(nume)) field nume,pretv,pretc off

ELSE

@1,1 say 'Produsul nu exista'

ENDIF

WAIT ''

thisform.pf.pg2.text1.value=''

use

DEACTIVATE WINDOW win

Option3 "Dupa depozit"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

USE produse.dbf

LOCATE ALL FOR UPPER(TRIM(thisform.pf.pg2.text1.value))=UPPER(TRIM(codd))

IF FOUND()

DISPLAY all for UPPER(TRIM(thisform.pf.pg2.text1.value))=UPPER(TRIM(codd)) field nume,pretv,pretc off

ELSE

@1,1 say 'Produsul nu exista'

ENDIF

WAIT ''

thisform.pf.pg2.text1.value=''

use

DEACTIVATE WINDOW win

Option4 "Dupa pret vanzare"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

USE produse.dbf

LOCATE ALL FOR val(thisform.pf.pg2.text1.value)=pretv

IF FOUND()

DISPLAY all for val(thisform.pf.pg2.text1.value)=pretv field nume,pretv,pretc off

ELSE

@1,1 say 'Produsul nu exista'

ENDIF

WAIT ''

thisform.pf.pg2.text1.value=''

use

DEACTIVATE WINDOW win

Option5 "Dupa pret cumparare"

Evenimentul "Click"

ACTIVATE WINDOW win

CLEAR

USE produse.dbf

LOCATE ALL FOR val(thisform.pf.pg2.text1.value)=pretc

IF FOUND()

DISPLAY all for val(thisform.pf.pg2.text1.value)=pretc field nume,pretv,pretc off

ELSE

@1,1 say 'Produsul nu exista'

ENDIF

WAIT ''

thisform.pf.pg2.text1.value=''

use

DEACTIVATE WINDOW win

Formularul "Adugare depozit"

Evenimentul "Load"

SET DEFAULT TO 'c:My DocumentsVisual FoxPro ProjectsAtestatuv15'

USE depozite.dbf

Evenimentul "Unload"

Use

Butonul "Adaugare depozit"

Evenimentul "Click"

OPEN DATABASE magazin.dbc

USE depozite.dbf

LOCATE ALL FOR (UPPER(TRIM(codd))=UPPER(TRIM(thisform.txtcodd.value))) and(UPPER(TRIM(nume))=UPPER(TRIM(thisform.txtnume.value)))

IF FOUND()

thisform.text1.Visible=.T.

thisform.text1.Value='Eroare:depozitul exista deja'

ELSE

APPEND BLANK

replace codd WITH thisform.txtcodd.value;

adresa WITH thisform.txtadresa.value;

nume WITH thisform.txtnume.value;

responsabil WITH thisform.txtresponsabil.value;

nrtel WITH VAL(thisform.txtnrtel.value)

ENDIF

CLOSE DATABASES

use

Formularul "Modificare depozit"

Evenimentul "Load"

SET DEFAULT TO 'C:Evidenta Produselor Dintr-un Magazin'

CLOSE DATABASES all

USE depozite.dbf

Evenimentul "Unload"

Use

Butonul "Modificare"

Evenimentul "Click"

IF thisform.txtadresa.Enabled = .T.

LOCATE ALL FOR (UPPER(TRIM(codd))=UPPER(TRIM(thisform.txtcodd.value))) AND (UPPER(TRIM(nume))=UPPER(TRIM(thisform.txtnume.value)))

IF FOUND()

replace codd WITH thisform.txtcodd.value;

adresa WITH thisform.txtadresa.value;

nume WITH thisform.txtnume.value;

responsabil WITH thisform.txtresponsabil.value;

nrtel WITH VAL(thisform.txtnrtel.value)

thisform.txtAdresa.Enabled = .F.

thisform.txtresponsabil.Enabled = .F.

thisform.txtnrtel.Enabled = .F.

thisform.text1.Value='Introduceti datele depozitului ale carui date vreti sa le modificati si apasati ,,modificare`` '

endif

ELSE

LOCATE ALL FOR (UPPER(TRIM(codd))=UPPER(TRIM(thisform.txtcodd.value))) AND (UPPER(TRIM(nume))=UPPER(TRIM(thisform.txtnume.value)))

IF FOUND()

thisform.txtAdresa.Enabled = .T.

thisform.txtresponsabil.Enabled = .T.

thisform.txtnrtel.Enabled = .T.

thisform.text1.Value= 'Modificati datele si apasati din nou modificare'

ELSE thisform.text1.Value= 'Depozitul nu exista, va rog introduceti datele din nou'

ENDIF

ENDIF

thisform.Refresh

Formularul "Stergere depozit"

Evenimentul "Load"

SET DEFAULT TO 'C:Evidenta Produselor Dintr-un Magazin'

CLOSE DATABASES all

Evenimentul "Unload"

Use

Butonul ,,Sterge depozit"

Evenimentul "Click"

OPEN DATABASE magazin.dbc

USE depozite.dbf

LOCATE ALL FOR UPPER(TRIM(thisform.text1.Value))=UPPER(TRIM(codd))

IF FOUND()

DELETE

thisform.text2.Value='Depozitul a fost sters'

ELSE

thisform.text2.Value='Depozitul nu exista'

ENDIF

use

CLOSE DATABASES

Formularul "Adaugare produs"

Evenimentul "Load"

SET DEFAULT TO 'C:Evidenta Produselor Dintr-un Magazin'

CLOSE DATABASES all

Evenimentul "Unload"

Use

Butonul "Achizitionare produs"

Evenimentul "Click"

OPEN DATABASE magazin.dbc

USE produse.dbf

LOCATE ALL FOR (UPPER(TRIM(thisform.txtCodp.value))==UPPER(TRIM(codp)))and(UPPER(TRIM(thisform.txtnume.Value))=UPPER(TRIM(nume)))

IF FOUND()

thisform.text1.Value='produsul exista deja,numarul de bucati a fost suplimentat'

replace nrb WITH nrb+VAL(thisform.txtNrb.value)

ELSE

APPEND BLANK

replace codd WITH thisform.txtcodd.Value;

codp WITH thisform.txtcodp.value;

nume WITH thisform.txtnume.Value;

pretc WITH VAL(thisform.txtpretc.value);

pretv WITH VAL(thisform.txtpretv.value);

nrb with VAL(thisform.txtnrb.value)

thisform.text1.Value='Produsul a fost achizitionat, introduceti alt produs'

thisform.txtcodd.Value=''

thisform.txtcodp.value=''

thisform.txtnume.Value=''

thisform.txtpretc.value=''

thisform.txtpretv.value=''

thisform.txtnrb.value=''

ENDIF

use

CLOSE DATABASES

Formularul "Modificare produse"

Evenimentul "Load"

SET DEFAULT TO 'C:Evidenta Produselor Dintr-un Magazin'

CLOSE DATABASES all

USE produse.dbf

Evenimentul "Unload"

Use

Butonul "Modifica"

Evenimentul "Click"

IF thisform.txtCodd.Enabled=.T.

LOCATE ALL FOR (UPPER(TRIM(thisform.txtCodp.value))=UPPER(TRIM(codp)))and(UPPER(TRIM(thisform.txtnume.Value))=UPPER(TRIM(nume)))

IF FOUND()

thisform.txtnume.Value=nume

thisform.txtcodp.Value=codp

replace codd WITH VAL(thisform.txtCodd.value)

replace pretc WITH VAL(thisform.txtpretc.value)

replace pretv WITH VAL(thisform.txtpretv.value)

replace nrb WITH VAL(thisform.txtNrb.value)

replace nume WITH thisform.txtnume.Value

replace codp WITH VAL(thisform.txtcodp.Value)

endif

else

LOCATE ALL FOR (UPPER(TRIM(thisform.txtCodp.value))=UPPER(TRIM(codp)))and(UPPER(TRIM(thisform.txtnume.Value))=UPPER(TRIM(nume)))

IF FOUND()

thisform.txtCodd.Enabled=.T.

thisform.txtpretc.Enabled=.T.

thisform.txtpretv.Enabled=.T.

thisform.txtNrb.Enabled=.T.

thisform.text1.Value='Modificati datele si apasati din nou modificare'

ELSE

thisform.text1.Value='produsul nu exista'

ENDIF

Endif

Formularul "Vanzare produs"

Evenimentul "Load"

SET DEFAULT TO 'C:Evidenta Produselor Dintr-un Magazin'

CLOSE DATABASES all

USE produse.dbf

Evenimentul "Unload"

Use

Butonul "Vanzare produs"

Evenimentul "Click"
LOCATE ALL FOR UPPER(TRIM(thisform.text1.Value))=UPPER(TRIM(codp))

IF FOUND()

IF nrb>=VAL(thisform.text3.value)

replace nrb with nrb-VAL(thisform.text3.Value)

thisform.text2.value='Produsul a fost vandut'

ELSE thisform.text2.value='Nu mai avem destule bucati din acest produsul in stoc'

ENDIF

endif





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate