depozit de materiale
TRANSCRIPT
Unitatea de invatamant
LUCRARE DE ATESTAT PROFESIONAL
PROFIL INFORMATICA
Profesor indrumator:................
Absolvent............
Evidenta materiale dintr-un depozit
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
« 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)
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
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
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:
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"
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, ;
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"
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, ;
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
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.
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
_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:
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()
_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:
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.
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