Sunteți pe pagina 1din 19

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, (APPEND,

COPY

STRUCTURE, modificare

DISPLAY STRUCTURE, CREATE TABLE)


2. gestionarea

datelor :

incarcare

INSERT),

(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 = 4 Left = 9 Height = 438 Width = 471 DoCreate = .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.value replace cantitate with thisform.text2.value replace um with thisform.text4.value replace pret with thisform.text3.value

replace zi with thisform.text5.value replace luna with thisform.text6.value replace 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 disable show 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 read thisform.release cancel 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-1 else go x endif Pentru butoanele de navigatie, acesta este: do case case b=1 go top case b=2 if recno()<>1 go recno()-1 endif case b=3 if recno()<>reccount() go recno()+1 endif case b=4 go bottom endcase 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 enable show gets Fereastra de modificare:

Codul ferestrei: do case case b=1 go top case b=2 if recno()<>1 go recno()-1 endif case b=3 if recno()<>reccount() go recno()+1 endif case b=4 go bottom endcase 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 enable show gets ***Modificarea: go recno() x=recno() replace material with thisform.text1.value replace cantitate with thisform.text2.value replace pret with thisform.text3.value replace um with thisform.text4.value replace zi with thisform.text5.value replace luna with thisform.text6.value replace 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-1 else go x endif Fereastra de afisare a materialelor:

Codul ferestrei: thisform.List1.clear thisform.List2.clear sele depozit go top scan 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 depozit go top scan if (depozit.cantitate<thisform.text1.value) then *!* thisform.Combo1.AddItem(table1.camp1) thisform.List1.AddItem(depozit.material) else endif endscan

S-ar putea să vă placă și