Professional Documents
Culture Documents
în programare
Visual FoxPro
D
EM L
O EC
N }
ST I
R E
AT
IV
|
INTRODUCERE
Materialul cursului se compune din 12 module, prezentate sub forma unor fascicule,
care vor fi îndosariate într-o map\ special\, pe care EUROCOR v-o pune la dispozi]ie.
Dorim s\ v\ atragem aten]ia asupra modalit\]ii speciale de concepere [i prezentare
a lec]iilor, ce v\ va permite parcurgerea cu mai mult\ u[urin]\ a materialului de curs:
• fiecare modul are o anumit\ structur\ didactic\, p\strat\ pe întreg parcursul
acestui curs;
• un element important în cadrul acestei structuri îl reprezint\ exemplele [i exerci]iile
practice, cu ajutorul c\rora v\ ve]i putea valorifica în mod curent cuno[tin]ele
dobândite;
• `n plus, pentru a v\ consolida cuno[tin]ele, la sfâr[itul fiec\rui modul ve]i g\si o
recapitulare, care prezint\ cele mai importante aspecte analizate `n cadrul acestuia;
• fiecare modul se încheie cu o tem\ pentru acas\, ce constituie o modalitate
eficient\ de verificare a gradului de însu[ire a cuno[tin]elor prezentate; indica]iile
referitoare la rezolvarea temelor pentru acas\ [i la colaborarea cu profesorul
dumneavoastr\ sunt prezentate la sfâr[itul modulului;
• folosim reprezent\ri grafice pentru înlesnirea însu[irii cuno[tin]elor (de exemplu,
pentru eviden]ierea no]iunilor importante se folosesc litere `ngro[ate).
Fiecare student EUROCOR are un profesor personal.
Temele propuse în fiecare modul vor fi expediate pe adresa Institutului EUROCOR,
urmând ca profesorul personal s\ aprecieze corectitudinea r\spunsurilor [i s\ v\
transmit\ comentariile sale pe marginea acestora. V\ recomand\m s\ rezolva]i tema
doar dup\ parcurgerea integral\ [i atent\ a materialului prezentat.
Pentru ca studiul dumneavoastr\ individual s\ fie cât mai u[or [i eficient, pe
marginea lec]iilor au fost introduse diferite simboluri:
Exemplu
– exemplele vor fi `ncadrate `ntr-un chenar special
3 (18) – indic\ faptul c\ tema respectiv\ a mai fost abordat\ în modulele anterioare
(în acest caz, tema a mai fost abordat\ în modulul 3, la pagina 18).
Ini]iere `n programare lec]ie demonstrativ\ 3
Programa cursului de
Ini]iere în programare – Visual FoxPro
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]inând ini]ial firmei Ashton Tate,
devenind mai târziu 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.
6 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 vârful 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).
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 pân\ la 80%;
• pentru a se adresa unei game cât mai largi de utilizatori, sistemul Visual FoxPro
are componente ce pot fi apelabile atât de la tastatur\, cât [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 (utilizând 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, având 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\ 7
Comanda APPEND
Înc\rcarea cu date a tabelei se poate face imediat dup\ crearea structurii dac\ la
mesajul “Input data record now? Y/N“ se r\spunde cu Y. De asemenea, ulterior se
pot ad\uga înregistr\ri în tabel\ cu ajutorul comanzii APPEND. Dac\ tabela r\mâne
vid\ dup\ descrierea structurii, cu APPEND se demareaz\ înc\rcarea acesteia.
Sintaxa comenzii:
APPEND [BLANK]
Adaug\ o înregistrare în tabel\ prin deschiderea unei ferestre implicite de introducere.
Ie[irea din fereastra de introducere se realizeaz\ cu CTRL+W sau CTRL+END.
Tasta PgUp permite deplasarea la înregistr\rile anterioare, iar tasta PgDn deplaseaz\
cursorul pe înregistr\rile urm\toare. Dac\ deplasarea s-a f\cut dincolo de ultima
înregistrare se declan[eaz\ modul de lucru APPEND. Comanda APPEND cu op]iunea
BLANK adaug\ o înregistrare vid\ la sfâr[itul tabelei f\r\ a activa modul de lucru
ecran. Aceast\ înregistrare devine înregistrare curent\ [i poate fi completat\ cu alte
comenzi Visual FoxPro.
La execu]ia comenzii APPEND se actualizeaz\ fi[ierele indexate activate.
Exemplu
Pentru ad\ugarea de înregistr\ri utilizând fereastra de introducere implicit\:
USE Personal
APPEND
Exemplu
Pentru a ad\uga o înregistrare vid\ f\r\ a deschide fereastra de introducere
implicit\:
USE Personal
APPEND BLANK
Comanda FIND
Sintaxa comenzii:
FIND ExprCheie
ExprCheie poate fi un num\r sau un [ir de caractere.
FIND utilizeaz\ un index fie sub forma unui fi[ier index simplu (.IDX), fie sub
forma unui fi[ier index compus (.CDX). Indexul utilizat este numit index principal
[i poate fi activat cu clauza INDEX din comanda USE, cu SET INDEX sau cu
SET ORDER.
i
con]inutul unei variabile. De exemplu, dac\ avem variabila:
obiect=”scaun birou”
comanda:
FIND obiect
nu va c\uta dup\ [irul “scaun birou”, ci chiar dup\ [irul “obiect”.
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 câmpului 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\ 9
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 încât s\ permit\ realizarea majorit\]ii
opera]iilor matematice întâlnite î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., putându-se astfel realiza calcule matematice mai complexe cu efort minim.
Operanzii numerici care intervin în expresii pot fi:
• câmpuri 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, având ca rezultate tot valori
numerice, sunt sintetiza]i în tabelul urm\tor:
Operator Semnifica]ie
Prioritatea operatorilor din acest tabel scade de sus în jos, iar pe acela[i nivel de
prioritate evaluarea se face de la stânga la dreapta, în ordinea apari]iei operatorilor
în expresie.
Între dou\ expresii numerice se pot aplica, de asemenea, operatori rela]ionali,
ob]inându-se astfel expresii logice. Ace[ti operatori sunt prezenta]i în tabelul urm\tor:
Op er a t or Sem n ifica ] ie
Exemplu
a=1
DO WHILE a<=100
IF a>50
a=a+2
ELSE
a=a+1
ENDIF
ENDDO
?a
e Exerci]iul 2
Scrie]i o bucl\ DO WHILE pentru parcurgerea de la sfâr[it la început
a unei tabele.
12 lec]ie demonstrativ\ Ini]iere `n programare
Fig. 5. Forma creat\ [i mesajul care apare când 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\ 13
e 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
e Exerci]iul 2
În exemplul de mai sus încerca]i s\ modifica]i procedura Init, astfel
încât s\ transmite]i 3 parametri. Vizualiza]i [i acest al treilea parametru
împreun\ cu ceilal]i doi.
14 lec]ie demonstrativ\ 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.
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
când se dezvolt\ aplica]ii pentru platforme grafice sau caracter diferite.
Recapitularea modulului 10
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.9 Ordinea controalelor (tab order) reprezint\ ordinea în care controalele dintr-
o form\ sunt parcurse atunci când 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 când 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 într-
un meniu. Pute]i s\ crea]i [i s\ defini]i elemente de meniu pentru
aplica]iile dumneavoastr\ utilizând Menu Designer;
• textul meniului – un cuvânt, expresie, sau icoan\ de pe bara de meniu
care desemneaz\ un meniu. Selectând textul meniului se va produce
extinderea meniului în jos. Este adesea referit ca un nume de meniu;
• meniul sistem – combina]ia dintre bara de meniu, meniuri [i articole de
meniu;
• meniu generat – este un program generat cu ajutorul generatorului de
meniuri. Programele de meniu generate au extensia .MPR.
Ini]iere `n programare lec]ie demonstrativ\ 19
1. 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
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 câmp, iar la sfâr[itul grupului s\ afi[a]i totaluri
ale grupului curent. Cum pute]i afi[a totaluri pe grupuri?
a) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iar
totalul se va afi[a în GROUP HEADER.
b) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iar
totalul se va afi[a în GROUP FOOTER.
c) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iar
totalul se va afi[a în PAGE FOOTER.
20 lec]ie demonstrativ\ Ini]iere `n programare