Pag.1
LUCRARE DE ATESTAT
PROFESIONAL
PROFIL INFORMATICA
Profesor indrumator
Boian Nicolae
Absolvent
Hosu Loredana Manuela
MAI 2012
Pag.2
PROGRAM PENTRU
GESTIUNEA UNUI
ATELIER FOTO
MAI 2012
Pag.3
CUPRINS
Capitolul I
Capitolul II
Capitolul III
Capitolul IV
Capitolul V
Capitolul VI
Capitolul VII
Capitolul VIII
Memoriu justificativ
Descrierea bazelor de date
II.1 Introducere in FoxPro
II.2 Limbajul de manipulare a datelor
II.2.a Comenzi
II.3 Limbajul de control
II.4 Operatii elementare asupra bazelor de date
II.5 Ferestre si meniuri utilizator
Descrierea generala a functiilor oferite de program
Descrierea bazelor de date folosite
Descrierea operatiilor realizate de program
Descrierea elementelor de interfata
Concluziile iesite in urma atestarii
Comercializarea produsului
Bibliografie
Pag
4
6
6
7
8
9
9
10
11
22
23
27
29
29
30
Capitolul I
MEMORIU JUSTIFICATIV
SCURT ISTORIC
Hosu Loredana Manuela
MAI 2012
Pag.4
La sfarsitul sec XIX, statisticianul Hollerith a folosit o masina de calcul (o masina care prelucra
cartele perforate), pentru extragerea rezultatelor recensamantului 1890 din SUA.
In paralel cu dezvoltarea masinilor de calcul au aparut si primele forme de programe. Colaborarea lui
Babbage, Ada-Augusta de Lovela (nascuta in Byron) a realizat primele programe pentru masina
conceputa de Babbage ea fiind considerata primul programator. Tot in sec XIX matematicianul George
Boole a pus bazele unei stiinte noi (care de altfel ii poarta si numele) in care operanzii clasici, numerele,
erau inlocuiti cu propozitii. Algebra booleana sta astazi la baza construirii calculatoarelor electronice
moderne.
Prima masina de calcul construita pe baza de relee electromagnetice a fost Mark I al carei proiect s-a
finalizat in 1944 la universitatea Harvard. A urmat Eniac (Electronic Numerical Integrator and
Calculator), care este considerat primul calculator electronic, functionand pe baza de tuburi electronice
(cca 20000) si putand efectua aprox. 5000 de adunari pe secunda, o performanta la vremea aceea.
In 1949 a fost creat primul calculator programabil, pe baza unei idei a matematicianului John von
Neumann, prin care erau introduse in memoria calculatorului atat datele de prelucrat, cat si programul
dupa care acestea urmau a fi prelucrate. Au urmat UNIVAC (Universal Automatic Computer), 19501951, care a avut succes si care a determinat IBM-ul sa proiecteze, in 1954, primul sau calculator
electronic. Cu acest calculator Big Blue a castigat piata de calculatoare mentinandu-se pana astazi in
fruntea producatorilor din acest domeniu.
Un pas important in dezvoltarea calculatoarelor electronice a fost facut odata cu inventarea
microprocesorului (de catre inginerul M. E. Hoff, la sfarsitul anului 1971) care a dus la o mare separare a
hardului (partea electronica a calculatorului) de soft (partea logica, alcatuita din programele dupa care
functioneaza calculatorul). Aceste 2 mari componente ale unui sistem de calcul au evoluat in paralel,
dezvoltandu-se astfel doua domenii de cercetare in domeniul fizicii, electronicii si cel referitor la
software, avand legatura cu dezvoltarea matematicii si a logicii.
Datorita implicarii tot mai accentuate a calculatoarelor in multe domenii de activitate, sfera
problemelor rezolvate cu ajutorul calculatorului s-a extins foarte mult. A aparut astfel o specializare a
programelor (pachetelor de programe), orientate spre rezolvarea diverselor tipuri de probleme:
matematice, tehnice, economice, de proiectare, etc. Sistemele de gestiune a bazelor de date (pe scurt
Hosu Loredana Manuela
MAI 2012
Pag.5
SGBD - prescurtare foarte des intalnita in literatura de specialitate) sunt sisteme informatice (software)
specializate in stocarea si prelucrarea unui volum mare de date, volumul de rpelucrari implicat fiind
relativ mic (spre deosebire de programele orientate spre rezolvarea problemenor matematice, de ex. care
necesita un volum mare de prelucrari asupra unui volum relativ mic de date). Termenul de baza de date
se va referi la datele de prelucrat la modul de organizare a acestora pe suportul fizic de memorare, iar
termenul de gestiune va semnifica totalitatea operatiilor ce se vor aplica asupra datelor din bazele de
date.
Odata cu raspandirea pe scara larga a PC-urilor s-au dezvoltat din ce in ce mai mult SGBD-urile
implementate pe acest tip de calculatoare. Mult timp suprematia in acest domeniu a apartinut firmei
ASHTON-TATE, cu produsul sau dBASE, cu diferiele sale versiuni (II, III, III+, IV) impunand chiar un
standard in acest domeniu - la un moment dat acoperea aprox. 60% din piata SGBD-urilor pentru PC-uri.
Principalii concurenti ai lui dBASE au fost Paradox al firmei Borland, Clipper avand ca producator firma
Nantucket si FoxPro, produs al firmei Fox Software.
Acesta din urma a evoluat foarte rapid, de la varianta 1.02 la 2.0, acaparand treptat o mare parte din
piata SGBD-urilor pe PC-uri. Odata cu cumpararea produsului FoxPro de catre Microsoft (liderul
mondial in domeniul software-ului) si dezvoltarea variantelor 2.5 sub forma DOS si sub Windows, apoi
2.6, de asemenea in ambele variante, acest SGBD tinde spre vf. Ierarhiei (daca nu este deja lider!!!).
Concurentii sai raman in continuare dBASE, cumparat de Borland, principalul rival al lui Microsoft in
domeniul limbajelor de programare.
Capitolul II
DESCRIEREA BAZELOR DE DATE
Hosu Loredana Manuela
MAI 2012
Pag.6
MAI 2012
Pag.7
MAI 2012
Pag.8
O comand este format dintr-un verb care va indica aciunea i un numr de clauze, care vin s
particularizeze efectul comenzii pentru situaia respectiv.
Sintaxa unei comenzi este :
< verb > [< clauza 1 >] [< clauza 2 >]
unde < verb > este un cuvnt cheie care va indica operaiunea de executat ; <clauza> difer de la
comand la comand i poate fi o construcie utilizator sau cuvinte cheie ale limbajului.
Comenzile FOXPRO sunt n general comenzi-linie. Dac este necesar fragmentarea comenzii, se
va folosi semnul ; . Nu exist separatori ntre comenzi ( aa cum exist n Pascal, C ).
n programe, i numai n acest context, se pot folosi i comenzile multi-linie cum ar fi : comanda
IF, SCAN, etc., fiecare avnd bine delimitat nceputul i sfritul ei.
Spre deosebire de limbajele de programare algoritmice Pascal, C, n care pentru rezolvarea unei
probleme, orict de simpl, trebuia s scriem un program, s-l compilm i s-l lansm n execuie,
pachetul de programe FOXPRO permite utilizatorilor o varietate mai larg de modaliti de lucru :
Modul interactiv ( modul de lucru comand ) este o modalitate de lucru interpretativ,
care permite ca imediat ce utilizatorul introduce o comand, sistemul s o cerceteze i,
dac este corect, s o execute
Modul de lucru program un program este o succesiune de comenzi care trebuie s
descrie un algoritm de rezolvare a unei probleme sau clas de probleme. Din punctul de
vedere al sistemului FOXPRO, el este un fiier cu extensia .PRG
Apelul editorului propriu de programe se face prin comanda :
MODIFY COMMAND < fis.PRG >
Aceast comand deschide o fereastr de editare folosit att pentru crearea ct i pentru
modificarea programului surs recunoscut prin numele < fis.PRG >. Extensia este implicit.
Lansarea programului n execuie ( automat se face i compilarea ) se realizeaz prin comanda :
DO < fis.PRG >
Editorul poate fi folosit i pentru alte fiiere text ASCII; atunci trebuie indicat extensia fiierului
text.
MAI 2012
Pag.9
LCD ( limbajul de control a datelor ) este foarte important mai ales n cazul sistemelor multi-user,
deoarece el controleaz securitatea sistemului i verific drepturile de acces. n plus el permite o gestiune
a tranzaciilor i n caz de necesitate poate efectua o refacere a bazei.
FOXPRO poate gestiona baze de date relaionale locale sau n reea, integrate sau distribuite, n
care problema confidenialitii, a proteciei la accesul neautorizat la baza de date, este foarte important.
II.4 OPERAII ELEMENTARE ASUPRA BAZELOR DE DATE
Definirea structurii conceptuale a bazei de date este o operaie foarte important, de care poate
depinde ntregul proiect al aplicaiei. Proiectarea structurii logice pornete de la IEIRI , adic de la
cererile de informaii, de la rezultatele pe care aplicaia informatic trebuie s le furnizeze. Dup
inventarierea tuturor cererilor de informaii se determin INTRRILE , adic datele ce pot fi reinute
ntr-o baz de date.
CREATE < fis.dbf > - permite deschiderea unui ecran de proiectare a structurii bazei de date i,
prin dialog cu utilizatorul, definete structura unei baze de date : numele fiecrui cmp, tipul, lungimea
sa, numrul de zecimale, i dac respectivul cmp va fi cheie de indexare ntr-un fiier multiindex asociat
bazei de date.
USE < fis.dbf > - deschide baza de date specificat de nume, nchiznd, eventual, o alt baz de
date dac era deschis. Extensia este implicit.
USE nchide baza de date deschis anterior.
MODIFY STRUCTURE permite accesul la structura unei baze de date.
LIST / DISPLAY STRUCTURE afieaz structura conceptual.
COPY STRUCTURE TO < fis. dbf > [ FIELDS < list-cmp>] permite crearea unei noi baze
de date numit < fis.dbf > pornind de la baza de date activ, prin prelucrarea tuturor cmpurilor ( dac
lipsete clauza FIELDS ) sau a anumitor cmpuri enumerate n clauza FIELDS.
APPEND permite introducerea datelor de la tastatur.
APPEND BLANK la sfritul bazei de date activ se va aduga un articol vid, urmnd ca
ulterior acesta s fie completat cu valori potrivite.
APPEND FROM < fis. dbf > - baza de date activ primete n continuarea articolelor sale
nregistrrile din alt baz de date specificat n clauza FROM
DELETE [ < domeniu >] [ FOR < cond >] [ WHILE < cond >] comanda marcheaz pentru
tergere articolele din domeniul specificat n clauza < domeniu > care ndeplinesc condiiile puse n
MAI 2012
Pag.10
clauzele FOR i WHILE ; implicit comanda acioneaz pe articolul curent ; aceast tergere este o
tergere logic. tergerea fizic se face prin comenzile PACK ( permite tergerea fizic din fiier a
tuturor articolelor marcate anterior cu comanda DELETE ) i ZAP ( permite tergerea definitiv a tuturor
datelor, fr s fi avut loc n prealabil o operaie de marcare).
RECALL [ < domeniu >] [ FOR < cond >] [ WHILE < cond >] anuleaz marcajele de
tergere.
BROWSE afieaz articolele din baza de date sub forma unui tabel.
Pentru a putea folosi simultan mai multe baze de date ( deschiderea unei baze de date nu presupune
nchiderea alteia ) se folosete comanda SELECT < zona > - selecteaz zona de lucru, care poate fi o
liter sau o cifr (exist 25 de zone de lucru).
INDEX ON < exp > TO < fis.ndx > [ UNIQUE ] permite crearea unui fiier index cu numele
specificat n clauza TO avnd cheia de indexare dat n clauza
MAI 2012
Pag.11
Comanda permite definirea unei ferestre cu numele dat n < fereastr >. Clauza FROM < r1, c1 >
precizeaz colul stnga-sus i clauza TO < r2, c2 > cel din dreapta-jos.
< list-car > vor hotr cum va fi chenarul ferestrei. NONE va suprima ncadrarea ferestrei.
Activarea unei ferestre nseamn desenarea ei pe ecran i dirijarea ieirilor ecran n aceast
poriune:
ACTIVATE WINDOW < fereastr >
Dezactivarea unei ferestre nseamn tergerea ei de pe ecran, nu din memorie :
DEACTIVATE WINDOW < fereastr >
Prin meniu nelegem un element de interfa prin care se ofer utilizatorilor posibilitatea selectrii
unei anumite opiuni, dintr-o mulime finit, afiat pe ecran, total sau parial, urmnd ca n funcie de
selectarea fcut, s se declaneze anumite aciuni.
Meniurile sunt de dou tipuri :
Meniuri menu ( bar ) folosite de obicei ca meniuri principale ale aplicaiei
Meniuri popup submeniuri
Definirea barei-meniu se face prin comanda :
DEFINE MENU < meniu >
Definirea opiunilor dintr-un meniu se face prin comanda :
DEFINE PAD < opiune > OF < meniu > PROMPT < ir > [ AT < r, c > ] clauza PROMPT
precizeaz textul opiunii care va fi afiat pe ecran n poziia < r, c >
Precizarea aciunii de executat la selectarea unei opiuni se face astfel :
ON SELECTION PAD < opiune > OF < meniu > < comand >
Activarea unui meniu bar :
ACTIVATE MENU < menu >
Dezactivarea unui meniu :
DEACTIVATE MENU < menu > - permite tergerea meniului de pe ecran, nu i din memorie.
Meniurile de tip popup reprezint mai multe opiuni sub form de list vertical.
Definirea meniului popup :
DEFINE POPUP < submeniu >
Definirea opiunilor utilizator ntr-un meniu popup :
DEFINE BAR < nr-linie > OF < submeniu > PROMPT < ir >
Activarea meniului popup i afiarea lui pe ecran se face prin comanda :
ACTIVATE POPUP < submeniu >
Hosu Loredana Manuela
MAI 2012
Pag.12
Capitolul III
DESCRIEREA GENERALA A FUNCTIILOR OFERITE DE PROGRAM
In momentul executarii programului prima fereastra care va apare va fi fereastra programului:
MAI 2012
Pag.13
Adaugare materiale
in depozit
Stergere materiale
din depozit
MAI 2012
Pag.14
Se introduce de la tastatura marimea, pretul, dupa care se va accesa butonul ADAUGARE pentru
validarea datelor si IESIRE pentru revocare.
Pentru realizarea stergerii din depozit a materialelor se va introduce codul materialului dupa care se
vor vizualiza datele pentru validare (STERGERE) sau revocare (IESIRE) dupa exemplul urmator:
Ridicarea comenzilor
MAI 2012
Pag.15
Pentru ridicarea comenzilor de catre clienti am creat meniul RIDICARE, meniu care nu poate
sterge comenzi din baza de date decat daca comenzile au parcurs drumurile In lucru si Terminare
lucru. Pentru a pute fi ridicata o comanda este nevoie de numele clientului (exista o lista in care pot fi
vizualizate toate comenzile scoase din fabrica gata de ridicare), dupa care se vor afisa datele clientului
si comanda realizata, ca in exemplul urmator:
Pentru validarea inceperii lucrului la noua comanda se va actiona asupra butonului LUCRARE iar
pentru revocare asupra butonului TERMINARE.
MAI 2012
Pag.16
Meniul ATELIER actioneaza asupra comenzilor realizate de clienti. Pentru ca o comanda sa fie
gata trabuie sa treaca prin fabrca (atelier), asadar nici o comanda nu poate fi ridicata pana cand nu s-a
actionat asupra ei cu submeniurile de mai jos:
Valideaza
terminarea
unei lucrari
MAI 2012
Pag.17
Se introduce numele clientului dupa cere vor aparea datele informative. Pentru validare/revocare se
va actiona asupra butoanelor LUCRARE / REVOCARE.
Pentru terminarea lucrarii lucrurile se comporta la fel:
Submeniul listari contine patru submeniuri pentro o mai buna evidentiere a datelor firmei dupa cum
urmeaza:
Listarea materialelor
din depozit
Listarea comenzilor
neterminate
MAI 2012
Pag.18
Partea afisarii listelor este identica dar datele introduse in liste sunt alese dupa diferite criterii:
MAI 2012
Pag.19
MAI 2012
Pag.20
Submeniul urmator este un submeniu explicativ ce contine informatii despre programator, program
si licenta:
Informatii
despre program
Informatii
despre licenta
Informatii
despre autor
MAI 2012
Pag.21
MAI 2012
Pag.22
Capitolul IV
DESCRIEREA BAZELOR DE DATE FOLOSITE
Pentru gestionarea atelierului de tamplarie am folosit doua baze de date si anume: DEPOZIT.DBF
si COMENZI.DBF.
DEPOZIT.DBF
Nume Camp
Tipul Campului
Cod
Marime
Pret
Numeric
Caracter
Numeric
Lungimea
Campului
3
30
5
ZECIMALE
INDEX
Crescator
Lungimea
Campului
30
8
50
10
10
1
1
ZECIMALE
COMENZI.DBF
Nume Camp
Tipul Campului
Numecl
Datac
Comanda
Pret
Telefon
Terminat
Inlucru
Caracter
Data
Caracter
Caracter
Caracter
Logic
Logic
INDEX
Crescator
MAI 2012
Pag.23
Capitolul V
DESCRIEREA OPERATIILOR REALIZATE DE PROGRAM
set clock on
-se aciveaza ceasul
set color to
-se seteaza culoarea
define window adaugare from 1,1 to 24,79 color scheme 2
-se defineste fereastra adaugare intre pozitiile 1,1 si 24,79 (toto ecranul)
activate window adaugare
-se activeaza fereastra de adaugare
use depozit order tag cod
-se foloseste baza de date depozit si indexul acestei
go bott
-se uita peste ultima inregistrare
m.cod = cod + 1
-variabilei m.cod i se atrinuie valoarea inregistrarii anterioare + 1
use
m.dataad = date()
variabilei m.dataad i se atribuie data sistemului
@ 0,2 SAY "<< ADUGARE MATERIAL IN DEPOZIT >> "
-mesaj de notificare
use depozit order tag cod
-se foloseste baza de date depozit si indexul acesteia
use depozit order tag cod
seek m.cod
if found ()
wait window 'Codul introdus este alocat unei alte marimi'
else
@ 3,45 SAY "Data:" ;
SIZE 1,10, 0
@ 3,51 GET m.dataad ;
SIZE 1,10 ;
DEFAULT " " ;
disABLE;
PICTURE "@K"
@ 5,16 SAY "Marime:" ;
SIZE 1,10, 0
@ 5,23 GET m.marime ;
SIZE 1,15 ;
DEFAULT " " ;
PICTURE "@K! XXXXXXXXXXXXXXXXXXXXXX"
@ 7,16 SAY "Pret:" ;
Hosu Loredana Manuela
MAI 2012
Pag.24
SIZE 1,10, 0
@ 7,21 GET m.pret ;
SIZE 1,10 ;
DEFAULT " " ;
PICTURE"@K! 99.99"
read
@ 20,0 TO 20,71
@ 19,30 GET vcorect ;
PICTURE "@*HNT \<ADAUGARE;\<IESIRE" ;
SIZE 2,6,2 ;
DEFAULT 1
READ
ENDif
use depozit order tag cod
appe blan
gather memv
use
release window adaugare
clear
*SFARSIT PROGRAM ADAUGARE
-valorile de mai sus specifica pozitiile in care va aparea textul urmat de spatiul pentru introducerea
datelor(Size stabileste lungimea alocata fiecarei afisari; Default reprezinta inregistrarea implicita; Picture
specifica tipul de inregistrare)
read
-se citesc datele introduse
use depozit order tag cod
-se foloseste baza de date depozit si indexul acesteia
appe blan
-se face o inregistrare noua
gather memv
-se incarca in memorie
use
release window adaugare
-se elibereaza fereastra adaugare
clear
-se curata ecranul
*SFARSIT PROGRAM ADAUGARE MATERIALE
set clock on
se porneste ceasul
set color to
-se seteaza culoarea
define window preluare from 1,1 to 24,79 double color scheme 6
se defineste fereastra preluare intre pozitiile 1,1 si 20,79 dublata si cuschema de culoare 6
Hosu Loredana Manuela
MAI 2012
Pag.25
"@K!
MAI 2012
Pag.26
MAI 2012
Pag.27
Capitolul VI
DESCRIEREA ELEMENTELOR DE INTERFATA
SET SYSMENU TO
SET SYSMENU AUTOMATIC
-se seteaza sistemul automat
SET SYSMENU TO
SET SYSMENU AUTOMATIC
SET TALK OFF
SET SAFE OFF
DEFINE PAD MDEPOZIT OF _MSYSMENU PROMPT "\<DEPOZIT" COLOR SCHEME 2
DEFINE PAD MCOMENZI OF _MSYSMENU PROMPT "\<COMENZI" COLOR SCHEME 2
DEFINE PAD MATELIER OF _MSYSMENU PROMPT "\<ATELIER" COLOR SCHEME 2
DEFINE PAD MLISTARI OF _MSYSMENU PROMPT "\<LISTARI" COLOR SCHEME 2
DEFINE PAD MDESPRE OF _MSYSMENU PROMPT "\<DESPRE" COLOR SCHEME 2
DEFINE PAD MIESIRE OF _MSYSMENU PROMPT "\<IESIRE" COLOR SCHEME 2
ON PAD MDEPOZIT OF _MSYSMENU ACTIVATE POPUP depozit
ON PAD MCOMENZI OF _MSYSMENU ACTIVATE POPUP comenzi
ON PAD MATELIER OF _MSYSMENU ACTIVATE POPUP atelier
ON PAD MLISTARI OF _MSYSMENU ACTIVATE POPUP listari
ON PAD MDESPRE OF _MSYSMENU ACTIVATE POPUP despre
ON PAD MIESIRE OF _MSYSMENU ACTIVATE POPUP iesire
DEFINE POPUP depozit MARGIN RELATIVE SHADOW COLOR SCHEME 2
DEFINE BAR 1 OF depozit PROMPT "\<Adauga" mess '<<Adaugare material in depozit>>'
DEFINE BAR 2 OF depozit PROMPT "\<Stergere" mess '<<Stergere material din depozit>>'
ON SELECTION BAR 1 OF depozit do admat.prg
ON SELECTION BAR 2 OF depozit do stemat.prg
DEFINE POPUP comenzi MARGIN RELATIVE SHADOW COLOR SCHEME 2
DEFINE BAR 1 OF comenzi PROMPT "\<Preluare" mess '<<Permite preluarea unei noi comenzi>>'
DEFINE BAR 2 OF comenzi PROMPT "\<Ridicare" mess '<<Permite ridicarea comenzii de catre
client>>'
ON SELECTION BAR 1 OF comenzi do precom.prg
ON SELECTION BAR 2 OF comenzi do ridcom.prg
DEFINE POPUP atelier MARGIN RELATIVE SHADOW COLOR SCHEME 2
DEFINE BAR 1 OF atelier PROMPT "\<Preluare" mess '<<Permite Incepere unei noi comenzi>>'
DEFINE BAR 2 OF atelier PROMPT "\<Terminare" mess '<<Terminarea unei comenzi>>'
Hosu Loredana Manuela
MAI 2012
Pag.28
MAI 2012
Pag.29
Capitolul VII
CONCLUZII IESITE IN URMA TESTARII
In urma testarii am relizat ca unele comenzi din liniile de program ar trebui retusate , sterse sau
inlocuite. Modificarile ce se pot aduce programului sunt:
Modificarea comenzilor
Calculul totalului unei categorii de material din depozit
Emiterea de facturi
Afisare unei liste cu primii cumparatori de la firma dumneavoastra
Capitolul VIII
COMERCIALIZAREA PRODUSULUI
Pretul estimativ stabilit de programator este de aproximativ 1000 lei si poate fi folosit in
majoriatatea firmelor de specialitate.
MAI 2012
Pag.30
BIBLIOGRAFIE
Lectii de FoxPro ---------------------------------------Ana Vulpe, Dominic Bucerzan
Fox pro 2.5----------------------------------------------Lucian Vasiu
Esential in dBase FOXORO si CLIPPER-----------Stefan I. Nitchi
MAI 2012