Documente Academic
Documente Profesional
Documente Cultură
34 Lectie Demo Initiere in Programare
34 Lectie Demo Initiere in Programare
EM
L
O EC
N }
ST I
R E
AT
IV
INTRODUCERE
Sporirea complexit\]ii [i diversit\]ii activit\]ii economice [i sociale a generat n
timp nevoia unor date din ce n ce mai elaborate [i precise. Ob]inerea acestora a
fost posibil\ datorit\ evolu]iei spectaculoase a sistemelor electronice de calcul, care
au permis cre[terea volumului de date culese, transmise, prelucrate [i stocate.
Cursul Ini]iere `n programare elaborat de Institutul Eurocor v\ propune familiarizarea cu unul dintre cele mai folosite sisteme de gestiune a bazelor de date, [i anume
Visual FoxPro. Cursul se adreseaz\ tuturor celor interesa]i s\ se ini]ieze n lucrul cu
bazele de date, precum [i celor care doresc s\-[i mbog\]easc\ cuno[tin]ele pe care le
au n acest domeniu. n dezvoltarea materialului am insistat n permanen]\ asupra
aspectelor practice, ns\ nu am pierdut din vedere nici fundamentarea teoretic\ a ceea
ce nseamn\ un sistem de gestiune a bazelor de date. Consider\m, totu[i, c\ este
necesar\ familiarizarea cu anumite elemente teoretice de baz\; dac\ un utilizator sare
peste aspectele teoretice [i trece direct la folosirea unui sistem, el va asimila mult mai
greu produsul, multe no]iuni le va aborda incorect sau nu le va n]elege deloc. Fiecare
facilitate oferit\ de un astfel de sistem are o fundamentare teoretic\ ce ajut\ utilizatorul
s\ n]eleag\ logic ceea ce face.
Cursul pleac\ de la ideea c\ sistemul de gestiune a bazei de date este parte integrant\,
al\turi de baza de date, a unui sistem de baz\ de date. Din acest motiv, se va face
mai nti o trecere n revist\ a principalelor elemente din teoria bazelor de date. n
modulele urm\toare vom continua cu descrierea sistemului Visual FoxPro [i a
particularit\]ilor acestuia, vom vorbi despre exploatarea [i construirea bazelor de
date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual
FoxPro. n ultima parte a cursului, accentul se va pune pe construirea [i executarea
programelor [i, n special, pe programarea orientat\ pe obiecte. Elaborarea
rapoartelor [i interogarea bazelor de date ncheie prezentarea gradual\ a materialului.
Materialul cursului a fost astfel conceput `nct s\ permit\ `nsu[irea optim\ a
informa]iilor prezentate. Efectuarea de la bun nceput a exerci]iilor recomandate v\
va u[ura n mod vizibil deprinderea [i consolidarea noilor cuno[tin]e. Accesibilitatea
modului de prezentare a materialului [i exemplele care apar `n modulele de studiu
asigur\ nsu[irea f\r\ probleme a con]inutului, chiar [i de c\tre persoanele neini]iate
nc\ n domeniul program\rii.
Lec]ia de fa]\ constituie o lec]ie demostrativ\, care dore[te s\ v\ familiarizeze cu
metoda de studiu EUROCOR. Din punctul de vedere al num\rului de pagini, ea
reprezint\ mai pu]in de jum\tate din con]inutul unui caiet de studiu. Ve]i g\si aici
fragmente din caietele de curs, exemple, exerci]ii, precum [i un model de rezumat
[i de tem\ pentru acas\.
V\ dorim mult succes!
lec]ie demonstrativ\
Ini]iere `n programare
i
e
Exemplu
exemplele vor fi `ncadrate `ntr-un chenar special
3 (18)
Ini]iere `n programare
lec]ie demonstrativ\
Programa cursului de
Ini]iere n programare Visual FoxPro
MODULUL 1
MODULUL 2
MODULUL 3
MODULUL 4
MODULUL 5
MODULUL 6
MODULUL 7
lec]ie demonstrativ\
Ini]iere `n programare
MODULUL 8
MODULUL 9
Ini]iere `n programare
lec]ie demonstrativ\
Caracteristici generale
FoxPro este un sistem de gestiune a bazelor de date rela]ionale pentru microcalculatoare
compatibile IBM-PC. Produsele elaborate dup\ modelul conceptual rela]ional au
nceput cu dBASE n versiunile II, III, III+, IV, apar]innd ini]ial firmei Ashton Tate,
devenind mai trziu ale firmei Borland. Au continuat cu Fox n diferite versiuni
concepute de c\tre firma Fox Software, ulterior achizi]ionate de cea mai mare firm\
din domeniul software-ului, Microsoft.
lec]ie demonstrativ\
Ini]iere `n programare
FoxPro s-a impus pe pia]a SGBD-urilor pe PC-uri nc\ de la primele versiuni 1.02
[i 2.0. Cump\rarea [i dezvoltarea lui de c\tre firma Microsoft a condus la apari]ia
versiunilor 2.5 [i 2.6, care au plasat produsul spre vrful ierarhiei n acest domeniu.
~n versiunile 2.5 [i 2.6, FoxPro a fost conceput pentru a lucra fie sub DOS sau
UNIX (n modul de lucru caracter), fie sub Windows sau Macintosh (n modul de
lucru grafic).
Din concuren]a firmelor de software Borland (cu produsele dBASE [i Paradox),
Nantucket (cu produsul Clipper) [i Microsoft (cu produsul FoxPro), s-a ajuns la
versiunea FoxPro, care ofer\ posibilitatea transferului de elemente (ecrane, rapoarte,
proiecte) ntre versiunile FoxPro care lucreaz\ sub diferite sisteme de operare.
n domeniul limbajelor de programare, principalele rivale sunt firmele Microsoft [i
Borland. Referindu-ne la SGBD-uri, politica firmei Microsoft de a dezvolta produsul
FoxPro pe baza dBASE-ului a avut drept scop atragerea utilizatorilor care proiecteaz\
aplica]ii de baze de date.
Prin ultimele versiuni, FoxPro este considerat cel mai performant din familia amintit\,
datorit\ urm\toarelor caracteristici principale:
dispune de tehnici de optimizare, dintre care cea mai important\ este tehnica
Rushmore, prin care se realizeaz\ compresarea indec[ilor, efectul fiind reducerea
dimensiunii fi[ierelor index cu pn\ la 80%;
prin noile tehnologii de acces la date, tehnologia Rushmore a dus la cre[terea cu
mult a vitezei de prelucrare fa]\ de alte SGBD-uri;
dispune de un limbaj procedural propriu foarte performant, care asigur\ descrierea
[i manipularea datelor, precum [i de un nucleu al limbajului neprocedural
SQL (Structured Query Language); aceste limbaje se adreseaz\ profesioni[tilor,
asigurnd utilizarea [i dezvoltarea de programe de mare complexitate;
pentru a se adresa unei game ct mai largi de utilizatori, sistemul Visual FoxPro
are componente ce pot fi apelabile att de la tastatur\, ct [i cu ajutorul mouse-ului;
poate importa fi[iere din Excel, Lotus, Paradox, Symphony, Multiplan, RapidFile, ASCII;
poate exporta fi[iere n Excel, Lotus, ASCII, Symphony, Multiplan, RapidFile etc.;
dezvolt\ programe structurate de cel mai nalt nivel (utiliznd comenzile pentru
realizarea structurilor secven]iale, alternative [i repetitive) [i modularizate (prin
scrierea programelor sub form\ de proceduri);
n func]ie de cerin]e, poate fi instalat n ntregime sau pot fi instalate numai
modulele necesare aplica]iei;
poate fi utilizat pe sta]ii de lucru individuale sau n re]ea, avnd ca avantaj cre[terea
eficien]ei de utilizare a resurselor sistemului;
ultimele versiuni dispun de un mecanism evoluat de conversie a programelor [i
a aplica]iilor scrise n versiunile anterioare de FoxPro.
Ini]iere `n programare
lec]ie demonstrativ\
lec]ie demonstrativ\
Ini]iere `n programare
Pentru a c\uta con]inutul unei variabile se utilizeaz\ operatorul &, care realizeaz\
func]ia de macrosubstitu]ie. n acest caz, comanda opereaz\ asupra con]inutului
variabilei referit\ prin numele ei [i nu dup\ numele variabilei. n aceast\ situa]ie,
comanda se va scrie astfel:
FIND &obiect
Comanda SEEK
Caut\ ntr-o tabel\ indexat\ prima nregistrare a c\rei cheie rezult\ din evaluarea
unei expresii.
Sintaxa comenzii:
SEEK expresie
expresie trebuie s\ fie de acela[i tip cu tipul cmpului din structura nregistr\rii.
La executarea comenzii SEEK, pentru reg\sirea cheii n fi[ierul index, se pot returna
rezultate false datorit\ faptului c\ este diferen]\ ntre literele mari [i cele mici. n
acest caz, este bine s\ se utilizeze func]iile UPPER( ) de transformare a literelor
mici n litere mari [i LOWER( ) de transformare a literelor mari n litere mici.
Ini]iere `n programare
lec]ie demonstrativ\
Tipul numeric
O mare parte a datelor prelucrate de calculator este reprezentat\ de numere, pentru
a c\ror descriere se folose[te tipul numeric. Cu toate c\ limbajul Visual FoxPro este
un limbaj orientat pe lucrul cu baze de date [i nu unul orientat pe calcule matematice,
[tiin]ifice, tipul numeric este implementat astfel nct s\ permit\ realizarea majorit\]ii
opera]iilor matematice ntlnite n practic\.
De asemenea, sunt prev\zute o serie de func]ii prin care se pot calcula func]iile
matematice elementare, cum ar fi exponen]iala, logaritmul, func]iile trigonometrice
etc., putndu-se astfel realiza calcule matematice mai complexe cu efort minim.
Operanzii numerici care intervin n expresii pot fi:
cmpuri numerice ale unei baze de date;
func]ii care returneaz\ valori numerice;
variabile de tip numeric;
constante numerice.
Operatorii care se aplic\ unor operanzi numerici, avnd ca rezultate tot valori
numerice, sunt sintetiza]i n tabelul urm\tor:
Operator
Semnifica]ie
(,)
grupeaz\ expresiile
**, ^
ridicare la putere
*, /, %
+, -
adunare, sc\dere
Prioritatea operatorilor din acest tabel scade de sus n jos, iar pe acela[i nivel de
prioritate evaluarea se face de la stnga la dreapta, n ordinea apari]iei operatorilor
n expresie.
ntre dou\ expresii numerice se pot aplica, de asemenea, operatori rela]ionali,
ob]inndu-se astfel expresii logice. Ace[ti operatori sunt prezenta]i n tabelul urm\tor:
Op er a t or
Sem n ifica ] ie
<
>
egal cu
==
<>, #, !=
diferit de
<=
>=
lec]ie demonstrativ\
10
Ini]iere `n programare
Ac]iunea
Creeaz\ o nou\ baz\ de date container
OPEN DATABASE
SET DATABASE TO
MODIFY DATABASE
MODIFY PROCEDURE
A PPE N D PR O C E D U R E S
C O PY PR O C E D U R E S
COMPILE DATABASE
DBC()
DBUSED()
ADATABASES()
ADBOBJECTS()
DBGETPROP()
DBSETPROP()
CLOSE DATABASE
VALIDATE DATABASE
DELETE DATABASE
Ini]iere `n programare
lec]ie demonstrativ\
11
DO WHILE <condi]ie1>
<comenzi>
DO WHILE <condi]ie2>
<comenzi>
ENDDO
<comenzi>
ENDDO
Exerci]iul 2
Scrie]i o bucl\ DO WHILE pentru parcurgerea de la sfr[it la nceput
a unei tabele.
lec]ie demonstrativ\
12
Ini]iere `n programare
Fig. 5. Forma creat\ [i mesajul care apare cnd se d\ clic pe butonul Iesire.
Dup\ ce se d\ clic [i pe butonul OK, forma va fi nchis\.
Ini]iere `n programare
lec]ie demonstrativ\
Exerci]iul 1
Crea]i un fi[ier program [i introduce]i exemplul de mai sus exact a[a
cum este scris. Executa]i apoi programul.
Exemplu
Exemplul urm\tor utilizeaz\ metoda AddObject() pentru a transmite doi
parametri la evenimentul Init al butonului de comand\ Buton1.
Forma1=CREATEOBJECT(FormaTest)
Forma1.SHOW
READ EVENTS
DEFINE CLASS FormaTest AS Form
* Proprietatile formei
AutoCenter = .T.
PROCEDURE Init
ThisForm.AddObject(Buton1,Buton,Placinte,;
Clatite)
WITH ThisForm.Buton1
.Caption = Cancel
.Top = 25
.Autosize = .T.
.Left = 30
.Visible = .T.
ENDWITH
ENDPROC
ENDDEFINE
DEFINE CLASS Buton AS CommandButton
PROCEDURE Init
PARAMETERS X,Y
=MessageBox(x+ si +y, 32, AddObject)
ENDPROC
PROCEDURE Click
RELEASE THISFORM
CLEAR EVENTS
ENDPROC
ENDDEFINE
Exerci]iul 2
n exemplul de mai sus ncerca]i s\ modifica]i procedura Init, astfel
nct s\ transmite]i 3 parametri. Vizualiza]i [i acest al treilea parametru
mpreun\ cu ceilal]i doi.
13
lec]ie demonstrativ\
14
Ini]iere `n programare
Meniul Class
Dup\ ce dialogul Class Designer a ap\rut pe ecran, n bara de meniu Visual FoxPro a
ap\rut o nou\ op]iune Class, cu ajutorul c\reia pute]i introduce propriet\]i [i metode noi.
Ini]iere `n programare
lec]ie demonstrativ\
15
Prin op]iunea Access Method specifica]i dac\ exist\ o metod\ pentru aceast\
proprietate. Instruc]iunile din aceast\ metod\ sunt executate de fiecare dat\
cnd proprietatea este apelat\. Dac\ a]i selectat aceast\ op]iune, va fi creat\
[i o metod\ cu numele propriet\]ii [i termina]ia _access.
lec]ie demonstrativ\
16
Ini]iere `n programare
Tab-ul Class
Tab-ul Class con]ine informa]ii generale despre clas\.
Scale Units poate fie Pixels sau Foxels [i reprezint\ unitatea de m\sur\ pentru
clas\. Foxels este echivalentul n\l]imii [i l\]imii medii a unui caracter bazat
pe fontul curent al formei n care este con]inut un obiect. Foxels este folositor
cnd se dezvolt\ aplica]ii pentru platforme grafice sau caracter diferite.
Ini]iere `n programare
lec]ie demonstrativ\
17
Recapitularea modulului 10
10.1 Controalele grup de butoane de op]iuni (Option Buttons) sunt controale
care con]in un num\r de op]iuni din care nu poate fi selectat\ la un moment
dat dect o op]iune. Din aceast\ cauz\ mai sunt numite [i butoane radio.
10.2 Controalele grup de butoane de comand\ (Option Groups) sunt controale
care con]in un num\r de butoane de comand\ care pot s\ fie tratate ca o
unitate.
10.3 Controalele Grid (grile) sunt controale container sub form\ de grile ce v\
permit s\ prezenta]i datele n format tabelar. Controalele componente ale unei
grile sunt coloanele, header-ele [i controalele con]inute de coloane.
10.4 Controalele Page Frame sunt containere folosite pentru crearea de pagini
alternante. Fiecare pagin\ poate con]ine un set de controale grupate dup\
anumite criterii. O singur\ pagin\ a controlului poate fi activ\ la un moment
dat n form\.
10.5 Controalele Timer sunt utilizate pentru lansarea periodic\ a unor evenimente
ntr-o aplica]ie. Aceste controale nu sunt vizibile n program.
10.6 Mediul de date (Data environment) reprezint\ toate tabelele, vederile [i
rela]iile care trebuie s\ fie deschise cnd rula]i sau modifica]i o form\. Mediul
de date este salvat cu forma [i poate fi modificat n Data Environment
Designer.
10.7 Sesiunea de date (Data session) este o reprezentare a mediului curent de
lucru utilizat de o form\ sau set de forme. Fiecare sesiune de date con]ine
propriul set de zone de lucru. Aceste zone de lucru con]in tabelele deschise,
indec[ii [i rela]iile lor.
10.8 Obiectele Form au o proprietate foarte important\, numit\ WindowType,
prin care se poate stabili comportamentul general al unei forme. Aceasta poate
avea valorile:
lec]ie demonstrativ\
18
Ini]iere `n programare
10.9 Ordinea controalelor (tab order) reprezint\ ordinea n care controalele dintro form\ sunt parcurse atunci cnd ap\sa]i tasta TAB.
10.10 Variabila _SCREEN este o variabil\ sistem (este creat\ automat la lansarea
sistemului) [i cu ajutorul ei se poate manipula fereastra principal\ a Visual
FoxPro ca orice obiect. Prin variabila _SCREEN se pot specifica propriet\]ile
[i metodele ferestrei principale Visual FoxPro dup\ aceea[i sintax\ de
manipulare a obiectelor dintr-o form\.
10.11 Meniurile sunt liste de elemente care declan[eaz\ comenzi atunci cnd se
alege una dintre op]iuni. Generatorul de meniuri (Menu Designer) permite
introducerea sau [tergerea op]iunilor din meniuri sau submeniuri. De asemenea,
pentru fiecare meniu sau op]iune ata[eaz\ proceduri [i comenzi ce vor fi lansate
n execu]ie n momentul select\rii meniului / op]iunii.
Elementele care definesc un meniu sunt:
bara de meniu o f[ie orizontal\ care apare de-a lungul p\r]ii de sus a
ecranului [i con]ine numele meniurilor;
articolul de meniu o comand\ de meniu sau nume de fi[ier listate ntrun meniu. Pute]i s\ crea]i [i s\ defini]i elemente de meniu pentru
aplica]iile dumneavoastr\ utiliznd Menu Designer;
Ini]iere `n programare
lec]ie demonstrativ\
19
Alege]i comanda prin care pute]i trimite rezultatul rul\rii raportului Raport1.frx
ntr-un fi[ier text.
a) REPORT FORM Test.FRX TO FILE xxx.txt ASCII
b) REPORT FORM Test.FRX TO FILE xxx.txt
c) REPORT FORM Test.FRX TO xxx.txt ASCII
2.
3.
ntr-un raport, pe prima pagin\ trebuie afi[at un titlu, iar pe toate paginile
tip\rite trebuie s\ apar\ capul de tabel. Unde trebuie introduse cele dou\
elemente?
a) ambele n banda de titlu TITLE;
b) ambele n banda PAGE HEADER;
c) titlul se afi[eaz\ n banda de titlu TITLE, iar capul de tabel n banda PAGE
HEADER.
4.
Dori]i s\ grupa]i datele dup\ un cmp, iar la sfr[itul grupului s\ afi[a]i totaluri
ale grupului curent. Cum pute]i afi[a totaluri pe grupuri?
a) n DATA GROUPING se alege cmpul care se dore[te a fi totalizat, iar
totalul se va afi[a n GROUP HEADER.
b) n DATA GROUPING se alege cmpul care se dore[te a fi totalizat, iar
totalul se va afi[a n GROUP FOOTER.
c) n DATA GROUPING se alege cmpul care se dore[te a fi totalizat, iar
totalul se va afi[a n PAGE FOOTER.
20
lec]ie demonstrativ\
Ini]iere `n programare