Depozit de Materiale

25

Click here to load reader

Transcript of Depozit de Materiale

Page 1: Depozit de Materiale

Unitatea de invatamant

LUCRARE DE ATESTAT PROFESIONAL

PROFIL INFORMATICA

Profesor indrumator:................

Absolvent............

Page 2: Depozit de Materiale

Evidenta materiale dintr-un depozit

Page 3: Depozit de Materiale

Utilizatorul va avea acces la baza de date prin intermediul ferestrelor vizuale avand optiuni

de adaugare/ modificare/ stergere a datelor unui produs

din depozit, de a vizualiza materiale disponibile in depozit cu posibilitatea de a cauta un material

dupa numele lui, de a vizualiza produse aflate in stoc care sunt aproape de limita 0

DESCRIEREA LIMBAJULUI FOXPRO

Odata cu trecerea timpului si dezvoltarea informaticii, calculatorul s-a

implicat in tot mai multe domenii de activitate, o multitudine de probleme

gasindu-si astfel rezolvarea prin intermediul sau.

Datorita diversitatii problemelor rezolvate cu ajutorul calculatorului nu s-a

putut realiza un program care sa rezolve (orice problema), realizandu-se in

schimb mai multe programe (sau pachete de programe), fiecare specializat in

rezolvarea unui anumit tip de problema. In functie de problema pe care o are de

rezolvat, utilizatorul unui calculator alege acel program care se potriveste cel

mai bine in realizarea scopului propus.

S-a ajuns astfel la o specializare foarte accentuata a sistemelor

informatice, orientate spre rezolvarea diverselor tipuri de probleme.

O clasificare a problemelor rezolvate cu ajutorul calculatorului, tinand

cont de volumul datelor si al prelucrarilor implicate in rezolvare ar putea fi

urmatoarea :

probleme care implica prelucrari putine asupra unui volum mare de date

probleme a caror rezolvare presupune un volum mediu de prelucrari asupra

unui volum mediu de date

probleme in rezolvarea carora intra un volum mic de date asupra lor

efectuandu-se un volum mare de prelucrari.

Sistemele de gestiune a bazelor de date (SGBD) reprezinta sisteme

informatice specializate in stocarea si prelucrarea unui volum mare de date, in

rezolvarea problemelor de primul tip, din clasificarea anterioara. Termenul de

Page 4: Depozit de Materiale

« baza de date » se va referi la datele de prelucrat, la modul de organizare a

acestora pe suportul fizic de memorat iar termenul de « gestiune » se va referi la

actiunea de memorare si prelucrare a acestor date.

Un SGBD trebuie sa asigure urmatoarele functiuni elementare, referitoare la

bazele de date :

definirea bazei de date

introducerea datelor (adaugarea de noi date la baza de date)

modificarea unor date existente in baza de date

stergerea unor date

interogarea bazei de date, adica extragerea informatiilor stocate in aceasta

Pe masura dezvoltarii acestor sisteme lista s-a completat cu facilitati

importante cum ar fi :

generare de rapoarte

modalitati noi de interogare a bazei de date (de exemplu un limbaj de tip

SQL)

noi tipuri de organizare a bazelor de date si noi tipuri de acces (de exemplu

accesul indexat)

FOXPRO 9.0 este un sistem de gestiune al bazelor de date relational iar in

comparatie cu concurentii sai directi se mentine in frunte datorita performantelor

sale. Principalele sale atuuri sunt modul relaiv simplu de lucru si limpezimea

sintaxei, ceea ce il face si utilizat si in scop didactic.

Comenzile FOXPRO permit descrierea tuturor functiunilor generale ale

unui SGBD, anume :

1. gestionarea structurii conceptuale a bazei de date separat de structura

fizica (CREATE, MODIFY STRUCTURE, COPY STRUCTURE,

DISPLAY STRUCTURE, CREATE TABLE)

2. gestionarea datelor : incarcare (APPEND, INSERT), modificare

(REPLACE, EDIT, CHANGE), stergere (DELETE, ZAP, PACK, RECALL)

Page 5: Depozit de Materiale

3. satisfacerea cerintelor de regasire rapida a datelor, fie prin specificarea

unor criterii complexe de selectie, cit si prin folosirea unor chei de acces

(FIND, SEEK, LOCATE)

4. afisarea datelor in diferite modalitati (CREATE/MODIFY REPORT,

CREATE/MODIFY LABEL, CREATE/MODIFY SCREEN)

5. programare structurata (IF, CASE, DO WHILE, SCAN)

6. modularizare si parametrizare (PROCEDURE, FUNCTION)

7. facilitati ale utilizatorilor in organizarea mediului de lucru (SET

COLOR, DEFINE WINDOW, DEFINE MENU).

8. protectie (SET LOCK, SET EXCLUSIVE, SET ENCRYPTION)

Elemente ale limbajului Foxpro folosite in aplicatie

Un element important al mediului FoxPro este formularul, care reprezinta

o portiune a ecranului tratata ca un unic element, cu anumite caracteristici ce

determina actiunile ce se pot executa asupra acesteia. Formularele sunt definite

de catre utilizator de catre utilizator, care pot fi utilizate in programele de

aplicatii create sub mediul FoxPro.

Modul de lucru cu aceste formulare este urmatorul:

mai intai acestea se creeaza, cu ajutorul comenzii CREATE FORM,

moment in care se precizeaza si atributele lor( poza de fond,

dimensiunea ferestrei modul de deschidere);

dupa definire se vor creea pe ecran, folosind modelul grafic propus de

FOX PRO, butoane care sa faca legatura intre formulare

aceasta legatura se formeaza prin secventa de instructiuni:

thisform.relese()

do form [nume formular]

se vor crea de asemenea si tabele in care se vor depunde informatiile

cu privire la abonatii firmei, abonamentele acestora ( clientii pot sa

Page 6: Depozit de Materiale

aiba mai multe abonamnete fiecare), costul suplimentar (pe langa cel al

abonamntului)

Alaturi de formulare, rapoartele FoxPro dau acestui mediu si acestui

limbaj o putere deosebita, atat datorita eficientei si comoditatii cu care se

lucreaza cu aceste elemente, ci si datorita aspectului deosebit de placut pe care

cele doua elemente il ofera programelor de aplicatii si mediului FoxPro.

Formularul reprezinta un element FoxPro prin care se ofera utilizatorului

posibilitatea selectarii unei anumite optiuni, dintr-o multime finita de optiuni

posibile, afisata pe ecran total sau partial, urmand ca, in functie de selectarea

facuta, sa se declanseze anumite actiuni, corespunzatoarea optiunii alese.

Am preferat utilizarea formularului in locul meniului datorita interfatei

mai prietenoase si a posibilatilor inserari de iamgini. Fiecare formular contine la

randul lui anumite “optiuni”.

Caracterizare

Acest proiect isi propune sa realizeze gestiunea unui depozit de materiale. Pentru a ondeplni aceasta sarcina, proiectul contine o baza de date unde se inregistreaza materialele care intra in depozit, cantitatea acestor materiale, unitatea de masura, pretul si data (ziua, luna si anul).

Pentru a mijloci dialogul utilizatorului cu baza de date, este disponibila o interfata grafica.

Fereastra principala:

Din aceasta fereastra se face alegerea operatiunii dorite. Aceasta operatiune poate fi de afisare simpla sau dupa anumite criterii, de modificare a

Page 7: Depozit de Materiale

unui anumit material, de adaugare a unui material nou, sau de eliminarea din stoc a unui material.

Codurile butoanelor:-de adaugare:

do form „adaugare.scx”-de stergere:

do form „stergere.scx”-de modificare:

do form „modificare.scx”-de afisare:

do form „afisare_m.scx”-de stoc limita:

do form „afisare_x.scx”

Fereastra de adaugare:

Page 8: Depozit de Materiale

Codul sursa:

***************************************************-- Form: form1 (c:\atestate\depozit\adaugare.scx)*-- ParentClass: form*-- BaseClass: form*DEFINE CLASS form1 AS form

Top = 4Left = 9Height = 438Width = 471DoCreate = .T.Caption = "Adaugare"Name = "Form1"

Page 9: Depozit de Materiale

ADD OBJECT text1 AS textbox WITH ;ControlSource = "n", ;Height = 25, ;Left = 156, ;Top = 36, ;Width = 97, ;Name = "Text1"

ADD OBJECT text2 AS textbox WITH ;Alignment = 3, ;Value = 0, ;ControlSource = "", ;Format = "999999", ;Height = 25, ;Left = 156, ;Top = 84, ;Width = 97, ;Name = "Text2"

ADD OBJECT text3 AS textbox WITH ;Alignment = 3, ;Value = 0, ;ControlSource = "", ;Format = "9999", ;Height = 25, ;Left = 156, ;Top = 132, ;Width = 97, ;Name = "Text3"

ADD OBJECT text4 AS textbox WITH ;Alignment = 3, ;Value = "", ;ControlSource = "", ;Format = "", ;Height = 25, ;Left = 156, ;Top = 180, ;Width = 97, ;

Page 10: Depozit de Materiale

Name = "Text4"

ADD OBJECT text5 AS textbox WITH ;Alignment = 3, ;Value = 0, ;ControlSource = "", ;Format = "99", ;Height = 25, ;Left = 156, ;Top = 228, ;Width = 97, ;Name = "Text5"

ADD OBJECT text6 AS textbox WITH ;Alignment = 3, ;Value = 0, ;ControlSource = "", ;Format = "99", ;Height = 25, ;Left = 156, ;Top = 276, ;Width = 97, ;Name = "Text6"

ADD OBJECT command1 AS commandbutton WITH ;Top = 132, ;Left = 288, ;Height = 49, ;Width = 121, ;Caption = "adauga", ;Name = "Command1"

ADD OBJECT command2 AS commandbutton WITH ;Top = 216, ;Left = 288, ;Height = 25, ;Width = 121, ;Caption = "Revenire", ;Name = "Command2"

Page 11: Depozit de Materiale

ADD OBJECT label1 AS label WITH ;Caption = "Material", ;Height = 25, ;Left = 24, ;Top = 36, ;Width = 73, ;Name = "Label1"

ADD OBJECT label2 AS label WITH ;Caption = "Cantitate", ;Height = 25, ;Left = 24, ;Top = 84, ;Width = 73, ;Name = "Label2"

ADD OBJECT label3 AS label WITH ;Caption = "Pret", ;Height = 25, ;Left = 24, ;Top = 132, ;Width = 73, ;Name = "Label3"

ADD OBJECT label4 AS label WITH ;Caption = "Unitate de masura", ;Height = 25, ;Left = 24, ;Top = 180, ;Width = 108, ;Name = "Label4"

ADD OBJECT label5 AS label WITH ;Caption = "Zi", ;Height = 25, ;Left = 24, ;Top = 228, ;

Page 12: Depozit de Materiale

Width = 73, ;Name = "Label5"

ADD OBJECT label6 AS label WITH ;Caption = "Luna", ;Height = 25, ;Left = 24, ;Top = 276, ;Width = 73, ;Name = "Label6"

ADD OBJECT text7 AS textbox WITH ;Alignment = 3, ;Value = 0, ;ControlSource = "", ;Format = "99", ;Height = 25, ;Left = 156, ;Top = 324, ;Width = 97, ;Name = "Text7"

ADD OBJECT label7 AS label WITH ;Caption = "An", ;Height = 25, ;Left = 24, ;Top = 324, ;Width = 73, ;Name = "Label7"

PROCEDURE command1.Click

append blank

replace material with thisform.text1.valuereplace cantitate with thisform.text2.valuereplace um with thisform.text4.valuereplace pret with thisform.text3.value

Page 13: Depozit de Materiale

replace zi with thisform.text5.valuereplace luna with thisform.text6.valuereplace an with thisform.text7.value

_screen.activeform.text1.value=""_screen.activeform.text2.value=0_screen.activeform.text3.value=0_screen.activeform.text4.value=""_screen.activeform.text5.value=0_screen.activeform.text6.value=0_screen.activeform.text7.value=0

*show get sr, 1 disableshow gets

ENDPROC

PROCEDURE command2.Click_screen.activeform.text1.value=""_screen.activeform.text2.value=""_screen.activeform.text3.value=""_screen.activeform.text4.value=""_screen.activeform.text5.value=""_screen.activeform.text6.value=""

clear readthisform.releasecancel

ENDPROC

ENDDEFINE**-- EndDefine: form1**************************************************

Fereastra de stergere:

Din aceasta fereastra se pot sterge inregistrari din baza de date.

Page 14: Depozit de Materiale

Codul sursa este:

go recno()x=recno()delete pack_screen.activeform.text1.value=""_screen.activeform.text2.value=0_screen.activeform.text3.value=0_screen.activeform.text4.value=""_screen.activeform.text5.value=0_screen.activeform.text6.value=0_screen.activeform.text6.value=0

_screen.activeform.text1.refresh_screen.activeform.text2.refresh_screen.activeform.text3.refresh_screen.activeform.text4.refresh

Page 15: Depozit de Materiale

_screen.activeform.text5.refresh_screen.activeform.text6.refresh

if x>reccount() go x-1elsego xendif

Pentru butoanele de navigatie, acesta este:

do casecase b=1

go topcase b=2

if recno()<>1go recno()-1

endifcase b=3

if recno()<>reccount()go recno()+1

endifcase b=4

go bottomendcase

go recno()

_screen.activeform.text1.value=material_screen.activeform.text2.value=cantitate_screen.activeform.text3.value=pret_screen.activeform.text4.value=um_screen.activeform.text5.value=zi_screen.activeform.text6.value=luna_screen.activeform.text7.value=an

show get sr,1 enableshow gets

Fereastra de modificare:

Page 16: Depozit de Materiale

Codul ferestrei:

do casecase b=1

go topcase b=2

if recno()<>1go recno()-1

endifcase b=3

if recno()<>reccount()go recno()+1

endifcase b=4

go bottomendcase

go recno()

Page 17: Depozit de Materiale

_screen.activeform.text1.value=material_screen.activeform.text2.value=cantitate_screen.activeform.text3.value=pret_screen.activeform.text4.value=um_screen.activeform.text5.value=zi_screen.activeform.text6.value=luna_screen.activeform.text7.value=an

show get sr,1 enableshow gets

***Modificarea:go recno()x=recno()

replace material with thisform.text1.valuereplace cantitate with thisform.text2.valuereplace pret with thisform.text3.valuereplace um with thisform.text4.valuereplace zi with thisform.text5.valuereplace luna with thisform.text6.valuereplace an with thisform.text7.value

_screen.activeform.text1.value=""_screen.activeform.text2.value=0_screen.activeform.text3.value=0_screen.activeform.text4.value=""_screen.activeform.text5.value=0_screen.activeform.text6.value=0_screen.activeform.text7.value=0

if x>reccount() go x-1elsego xendif

Fereastra de afisare a materialelor:

Page 18: Depozit de Materiale

Codul ferestrei:

thisform.List1.clearthisform.List2.clearsele depozitgo topscan

if (upper(thisform.text1.value)=upper(material)) then*!* thisform.Combo1.AddItem(table1.camp1)

*thisform.List2.AddlistItem(depozit.pret)thisform.text2.value=(depozit.cantitate)thisform.text3.value=(depozit.pret)thisform.List1.AddlistItem(thisform.text2.text)thisform.List2.AddlistItem(thisform.text3.text)else

endif

endscan

Fereastra de stoc limitat: afiseaza toate inregistrarile care sunt in cantitate mai mica decat cea introdusa de la tastatura.

Page 19: Depozit de Materiale

Codul ferestrei:

thisform.List1.clear

sele depozitgo topscan

if (depozit.cantitate<thisform.text1.value) then*!* thisform.Combo1.AddItem(table1.camp1)thisform.List1.AddItem(depozit.material)

else

endif

endscan