0% au considerat acest document util (0 voturi)
2 vizualizări87 pagini

Baze de Date În Visual Foxpro

Documentul oferă o prezentare detaliată a gestionării bazelor de date în Visual FoxPro, inclusiv crearea, deschiderea, modificarea și închiderea tabelelor de date. Se discută despre structura tabelelor, manipularea înregistrărilor, precum și comenzile utilizate pentru diverse operațiuni, cum ar fi adăugarea, ștergerea și modificarea datelor. De asemenea, sunt incluse informații despre zonele de lucru și utilizarea ferestrei BROWSE pentru interacțiunea cu datele.

Încărcat de

Mail OpenGTS Server
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
2 vizualizări87 pagini

Baze de Date În Visual Foxpro

Documentul oferă o prezentare detaliată a gestionării bazelor de date în Visual FoxPro, inclusiv crearea, deschiderea, modificarea și închiderea tabelelor de date. Se discută despre structura tabelelor, manipularea înregistrărilor, precum și comenzile utilizate pentru diverse operațiuni, cum ar fi adăugarea, ștergerea și modificarea datelor. De asemenea, sunt incluse informații despre zonele de lucru și utilizarea ferestrei BROWSE pentru interacțiunea cu datele.

Încărcat de

Mail OpenGTS Server
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Baze de date în Visual FoxPro 1

Baze de date în Visual FoxPro

1. Tabele de date

FoxPro este un mediu de dezvoltare integrat, care, pe lâng


instrumentele de programare, ofer i un sistem de tabele de date
rela ionale care simplific procesele de gestionare i organizare
eficient a datelor. Datele sunt organizate tabelar, pe linii (records,
articole înregistr ri) i coloane (fields, câmpuri), mai multe tabele,
între care exist leg turi, alc tuind o baz de date rela ional .

1.1. Crearea unui tabel de date – definirea structurii

Crearea unui tabel de date implic specificarea numelui


tabelului (fi ier cu extensia implicit DBF) i este ini iat prin
comanda
CREATE [<fi ier>]
sau prin alegerea op iunii File, New (în acest caz în caseta New se
selecteaz Table i New file). Ca urmare pe ecran este deschis
fereastra constructorului de tabele, în care vor fi precizate
caracteristicile noului tabel (nume, tip, lungime, etc.) i a indec ilor
folosi i la ordonarea datelor din list .
Fiecare câmp (field, coloan ) al unui tabel este caracterizat prin:
nume (Name);
tip (Type) - ir de caractere, numeric, dat calendaristic sau
moment de timp, logic, memo;
2 Baze de date în Visual FoxPro

l ime (Width) - num rul de caractere pe care îl ocup fiecare


dat memorat în acel câmp;
num rul de zecimale (Decimal) - pentru datele de tip numeric;

fanionul de indexare (Index) - indic dac se stabile te un


index pe câmpul respectiv (indec ii reprezint o tehnologie cu
ajutorul c reia datele din tabele sunt v zute într-o anumit
ordine, dat de un anumit criteriu numit criteriu de indexare);
fanionul de valoare nul (NULL) - arat dac în câmpul
respectiv poate fi memorat o valoare nul , pentru a se face
diferen ierea între un câmp l sat necompletat i unul completat
cu valoarea 0.

1.2. Deschiderea (activarea) tabelelor de date

Pentru ini ierea unei sesiuni de lucru cu un tabel de date, acesta


trebuie s fie activat (deschis). Deschiderea unui tabel de date se poate
realiza prin meniu (File, Open, Files of type: Table (*.dbf)) sau prin
comanda USE:
USE [<fi ier>] [IN <zona de lucru>] [TAG <nume etichet >]
[ASCENDING DESCENDING]
[ALIAS <alias>] [EXCLUSIVE] [NOUPDATE]
Baze de date în Visual FoxPro 3

o <fi ier> - numele tabelului de date care va fi deschis


(extensia implicit DBF);
o IN - permite deschiderea unui tabel de date într-o alt zon
de lucru decât cea curent ;
o TAG - face precizarea unei variante de indexare;
o ASCENDING DESCENDING - precizeaz tipul ordon rii
(implicit ascendent ) atunci când se folose te indexarea;
o ALIAS - stabile te un nou alias;
o EXCLUSIVE - asigur exclusivitatea folosirii unui tabel de date
atunci când se lucreaz într-o re ea de calcul;
o NOUPDATE - protejeaz tabelul de date la scriere (este
deschis doar pentru consultare).

Observa ii
Derularea unei sesiuni de lucru în FoxPro se realizeaz în
directorul de lucru implicit. Acest director poate fi schimbat
prin comanda:

SET DEFAULT TO <path> unde path define te noul director.

Lista tabelelor de date aflate în directorul de lucru poate fi


ob inut prin lansarea comenzii:

DIR

Se poate limita, temporar, accesul la înregistr rile tabelului de


date prin folosirea comenzii:

SET FILTER TO <cond>


4 Baze de date în Visual FoxPro

Zone de lucru

Pentru manipularea simultan a mai multor tabele de date,


FoxPro folose te zone speciale de memorie numite „zone de lucru”, în
care depune informa iile necesare efectu rii opera iilor cu tabelele de
date respective.
Pentru identificarea unei zone de lucru se folosesc alias-uri
(literele A, B, C sau cifrele 1, 2, 3, ) care permit identificarea
tabelelor de date i altfel decât prin numele lor. În afar de aceste
alias-uri utilizatorul poate defini i propriile sale alias-uri.

Observa ii
La pornirea FoxPro-ului zona de lucru implicit va fi zona 1 (cu
alias 1 sau A). Aceasta se poate schimba prin comanda :

SELECT <expN> <expC>

Comanda este urmat de o cifr , liter sau de un alias definit


de utilizator. Dac alias-ul este 0 se va selecta prima zon de
lucru neselectat .
Pentru a ob ine informa ii despre zonele de lucru folosite i
tabelele de date deschise se pot folosi dou func ii:

USED([<alias>]) i DBF([<alias>])

Func ia USED returneaz .T. sau .F. dac , în zona de lucru


curent sau precizat prin alias, este sau nu prelucrat un tabel de
date. Func ia DBF returneaz numele tabelului de date deschis în
zona de lucru.
Baze de date în Visual FoxPro 5

Exemple:
use personal in 1
use nomenclator in B alias nomen
select nomen
?dbf()
C:\PROGRAM
FILES\DEVSTUDIO\VFP\JOB\[Link]
?used(1)
.T.

1.3. Modificarea structurii unui tabel de date

Modificarea caracteristicilor unui tabel de date poate fi f cut prin


comanda:

MODIFY STRUCTURE

Aceast comand permite modificarea structurii tabelului de date


activ prin deschiderea unei ferestre de dialog, aceea i ca la crearea
tabelului de date. Modific rile care pot fi aduse structurii unui tabel de
date sunt :
schimbarea numelor, tipurilor i l imii câmpurilor deja
existente;
tergeri, inser ri de câmpuri, prin plasarea cursorului pe zona
de modificare (prima coloan din fereastra de dialog) i
ac ionarea butoanelor Delete i Insert.

Dup efectuarea modific rilor, FoxPro copiaz con inutul tabelului


de date vechi în tabelul de date nou, cu efectuarea schimb rilor
respective.
Caracteristicile unui tabel de date (structura) pot fi vizualizate
prin comanda:

DISPLAY STRUCTURE
6 Baze de date în Visual FoxPro

1.4. Închiderea prelucr rii tabelelor de date

Finalizarea opera iei de prelucrare a tabelelor se poate face prin


comenzile:

USE sau CLOSE ALL

Prima comanda închide prelucrarea tabelului de date din zona


de lucru curent iar a doua închide i elibereaz toate zonele de lucru
(în acest caz zona curent devine zona de lucru 1).

1.5. Editarea con inutului unui tabel de date

Prelucrarea înregistr rilor. Înregistrarea curent .

Un grup de înregistr ri (domeniu) poate fi:


All – semnific toate înregistr rile tabelei;
Next – urm toarele înregistr ri;
Record - înregistrarea cu num rul de ordine specificat;
Rest – restul înregistr rilor din pozi ia curent pân la sfâr itul
tabelului.

Prelucrarea tabelelor de date se realizeaz la nivel de


înregistrare. La un moment dat este activ un singur tabel de date i o
singur înregistrare din acest tabel. Fiecare înregistrare are un num r
de ordine, asociat acesteia la introducerea ei în tabelul de date.
Num rul de ordine al înregistr rii curente poate fi modificat prin
comenzile:

GOTO TOP | BOTTOM | RECORD <expN>

(salt la prima, ultima sau înregistrarea precizat din tabel);


Baze de date în Visual FoxPro 7

SKIP [±<expN>]

(salt înainte sau înapoi cu un num r de înregistr ri);

LOCATE [<domeniu>] [FOR <cond1>] [WHILE <cond2>]

(c ut prima înregistrare care respect condi ia <cond1>,


domeniul înregistr rilor fiind dat de clauzele <domeniu> i
WHILE).
Pozi ia curent în tabelul de date poate fi stabilit cu ajutorul
func iilor:
EOF() – returneaz .T. sau .F. dup cum este detectat sau nu
marcajul de sfâr it de fi ier (aflat dup ultima înregistrare);
BOF()– returneaz .T. sau .F. pentru început de fi ier;
RECNO() – furnizeaz num rul de ordine al înregistr rii
curente.
Exemple:
use personal
?recno()
1
goto record 7
?recno()
7
goto top
?recno()
1
skip –1
?bof()
.T.
skip 3
?recno()
3
go bottom
skip
?eof()
.T.
locate for nume=’ALEX’
8 Baze de date în Visual FoxPro

Introducerea înregistr rilor noi într-un tabel de date

Num rul de înregistr ri dintr-o baz de date, furnizat de func ia


RECCOUNT(), poate fi modificat, prin introducerea unor înregistr ri
vide (ad ug ri, inser ri):
APPEND BLANK sau INSERT BLANK [BEFORE]
Inserarea se execut implicit dup înregistrarea curent , dac nu
se folose te op iunea BEFORE, iar urm toarele înregistr ri sunt
translatate spre sfâr itul tabelului de date i renumerotate.

tergerea înregistr rilor dintr-un tabel

Eliminarea unor înregistr ri din tabelele de date se efectueaz la


nivel logic sau fizic prin utilizarea comenzilor DELETE, RECALL, PACK,
ZAP.
a) tergerea logic (marcare pentru tergere). Prin marcarea
pentru tergere înregistr rile din tabelele de date nu sunt
eliminate definitiv. Pentru tergerea logic este utilizat
comanda:
DELETE [<domeniu>] [FOR <cond1>] [WHILE <cond2>]

Aceast comand (precum i altele) folose te clauza FOR pentru


selectarea tuturor înregistr rilor care corespund condi iei logice
<cond1>. Clauza WHILE întrerupe testarea înregistr rilor când
g se te o înregistrare ce nu respect condi ia dat , <cond2>.

Accesul la înregistr rile marcate pentru tergere este controlat de


comanda:

SET DELETED ON OFF


Baze de date în Visual FoxPro 9

Când se alege op iunea ON, înregistr rile marcate pentru


tergere nu vor fi accesibile celorlalte comenzi, iar când se
selecteaz op iunea OFF, înregistr rile sunt accesibile indiferent
de marcajul de tergere (starea implicit este OFF). Aceast
comand este util atunci când se lucreaz pe grupuri de
înregistr ri.
b) Demarcarea tergerii logice. Marcajele de tergere logic pot
fi anulate prin folosirea comenzii:

RECALL [<domeniu>] [FOR <cond1>] [WHILE <cond2>]

c) tergerea fizic . Prin folosirea acestui tip de tergere


înregistr rile sunt eliminate definitiv din tabelul de date
( tergerile fizice nu mai pot fi ref cute). tergerile fizice au
efect asupra înregistr rilor marcate logic sau asupra tuturor
înregistr rilor din tabelul de date prelucrat prin utilizarea uneia
din comenzile:

PACK sau ZAP

Modificarea con inutului înregistr rilor

Modificarea con inutului înregistr rilor dintr-un tabel de date


presupune înlocuirea valorilor din unul sau mai multe câmpuri cu altele
noi. Comanda REPLACE permite actualizarea tabelelor de date cu valori
precizate în comand i are urm toarea sintax :

REPLACE <câmp1> WITH <exp1> [, <câmp2> WITH <exp2> ...]


[<domeniu>] [FOR <cond1>] [WHILE <cond2>]

REPLACE înlocuie te vechea valoare din câmpul <câmp1> cu


valoarea expresiei <exp1>, valoarea din câmpul <câmp2> cu
<exp2> i a a mai departe.
10 Baze de date în Visual FoxPro

Exemple:
use personal
?reccount()
25
append blank
?reccount()
26
goto 7
insert blank before
?recno()
7
dele next 3
skip -1
recall
pack
?reccount()
24
replace for nume=’ALEX’ nume with ’ALEXANDRU

Fereastra BROWSE

Principala comand , pentru realizarea diferitelor opera iuni


asupra tabelelor de date, prin deschiderea unei ferestre de lucru, este
comanda BROWSE care poate fi editat în urm toarea sintax :

BROWSE [FIELDS <list de câmpuri>] [FOR <cond>]


[FREEZE <câmp>]
[NOAPPEND] [NODELETE] [NOEDIT NOMODIFY]

o FIELDS - permite ca numai câmpurile precizate s intre în editare


(selec ie pe vertical );
o FOR – precizeaz condi iile conform c rora înregistr rilor vor fi
afi ate în fereastra BROWSE;
o FREEZE - permite modific ri doar pe câmpul precizat;
o NOAPPEND – invalideaz posibilitatea efectu rii ad ug rilor;
o NODELETE – elimin marcarile pentru tergere;
o NOEDIT NOMODIFY - interzice modific rile.
Baze de date în Visual FoxPro 11

Ca efect al lans rii comenzii BROWSE, în meniul principal, apare


o nou op iune, Table, care permite:
ad ugarea unei noi înregistr ri la un tabel de date: Append New
Record (Ctrl+Y);

stabilirea înregistr rii curente:


precizarea unor criterii de pozi ionare, Locate , la fel ca prin
folosirea comenzii cu acela i nume:

Domeniul

Clauza

Clauza
12 Baze de date în Visual FoxPro

tergerea datelor din tabele:


o marcare (demarcare) pentru tergere: Toggle Deletion
Mark (Ctrl+T) sau clic cu mouse-ul pe fanionul de
tergere din dreptul înregistr rii:

Fanionul de tergere

o tergere fizic : Remove Deleted Records;


o tergeri conform sintaxei comenzilor DELETE i RECALL:
Delete Records, Recall Records;
modific ri ale valorilor înscrise în câmpurile tabelelor
conform sintaxei comenzii REPLACE: Replace Field.

Câmpuri MEMO

Câmpurile MEMO definesc câmpuri de lungime variabil de


tip text. Un tabel de date, cu cel pu in un câmp MEMO, are asociat un
fi ier suplimentar în care sunt depuse informa iile legate de acest
câmp. Pentru a putea identifica datele din fi ierul MEMO asociat, care
Fi ierul MEMO
asociat
Tabelul de date
Baze de date în Visual FoxPro 13

apar in unei anumite înregistr ri, în tabelul de date, pe pozi ia


corespunz toare a înregistr rii, se memoreaz o adres spre fi ierul
MEMO (pozi ia primului caracter al câmpului respectiv).
Modificarea câmpurilor MEMO se poate face în fereastra Browse
sau prin comenzi specifice:

MODIFY MEMO <câmp memo1>[,<câmp memo2>,....]

- se deschide câte o fereastr de editare pentru fiecare câmp


memo;

CLOSE MEMO <câmp memo1>[,<câmp memo2>,....] ALL

- se vor închide ferestrele de editare corespunz toare câmpurilor


memo specificate în list (sau toate - ALL);

APPEND MEMO <câmp memo> FROM <fi ier> [OVERWRITE]

- con inutul unui fi ier extern, de tip text, va fi ad ugat la


sfâr itul câmpului memo precizat (dac se folose te clauza
OVERWRITE vechiul con inut al câmpului se pierde);

COPY MEMO <câmp memo> TO <fi ier> [ADDITIVE]

-con inutul unui câmp memo se copiaz într-un fi ier extern de


tip text. Dac se folose te clauza ADDITIVE copierea se va face la
sfâr itul unui fi ier deja existent.

1.6. Ordonarea i actualizarea tabelelor de date

Înregistr rile apar, în tabelul de date, în ordinea în care au fost


introduse, dar nu întotdeauna aceasta este i ordinea lor de utilizare.
Ordonarea unui tabel presupune stabilirea unui criteriu dup care s fie
parcurse înregistr rile acestuia. Acest criteriu poate fi un câmp sau o
combina ie de câmpuri ale tabelului de date numit cheie de ordonare.
14 Baze de date în Visual FoxPro

O cheie de ordonare este o expresie, alc tuit din câmpuri ale tabelului,
care este evaluat pentru fiecare înregistrare, ordinea de prelucrare a
înregistr rilor fiind dat de valorile acestei expresii. Se folosesc dou
metode de ordonare a bazelor de date: fizic i logic .

Ordonarea fizic (sortarea)

Sortarea const în rearanjarea fizic a datelor din tabel într-o alt


ordine, dat de criteriul de sortare. Astfel rezult un tabel de date nou
cu acelea i informa ii ca i cel original, dar ordinea fizic (natural ) a
înregistr rilor este schimbat .

SORT TO <fi ier> ON <câmp1> [/A /D] [/C]


[, <câmp2>[/A /D] [/C] ...]
[ASCENDING DESCENDING]
[<domeniu>] [FOR <cond>] [WHILE <cond>]
[FIELDS <list de câmpuri>]

o <fi ier> - numele tabelului de date nou creat;


o <câmp1>,<câmp2>,.... - lista cheilor de sortare;
o /A , /D - sortare ascendent , descendent , relativ la câmpul
asociat;
o - sortare în ordine alfabetic , necontând literele mari sau mici;
o - ordonare ascendent sau descendent
cu specificarea ordinii pentru toate câmpurile;
o FIELDS - selec ie pe vertical (filtrare).

Ordonarea logic (indexarea)

Indexarea este o metod mult mai eficient de ordonare a


tabelelor de date, care permite ca opera iile de consultare i c utare a
datelor în tabel s fie rapide. Prin indexare se creeaz un fi ier index,
asociat bazei de date, de dimensiuni mult mai mici decât dimensiunea
bazei de date. F r a detalia structura fi ierului index, trebuie
men ionat c fi ierul index este o list simplu înl n uit a numerelor
articolelor din baza de date aflate în ordinea lor natural .
Baze de date în Visual FoxPro 15

La definirea structurii bazei de date (prin CREATE sau MODIFY


STRUCTURE), în coloana Index, se pot defini unul sau mai multe criterii
de indexare care sunt identificate prin etichete (numele unei etichete
este acela i, în acest caz, cu numele câmpului). Activarea unuia sau
altuia din criteriile de indexare se realizeaz în dou moduri:
a) la deschiderea tabelului de date:

USE <fi ier> ORDER <nume etichet >

b) în timpul lucrului prin comanda:

SET ORDER TO TAG <nume etichet >

Stabilirea altor criterii de indexare, diferite de cele definite în


structura tabelului de date, se poate face prin comanda:

INDEX ON <exp> TAG <nume etichet >


[FOR <cond>]
[ASCENDING DESCENDING]
[UNIQUE]

o TAG - identific un criteriu de indexare;


o UNIQUE - clauz care nu admite dubluri pe câmpul de
indexare

tergerea unei etichete (criteriu) de indexare se realizeaz


utilizând comanda:

DELETE TAG <nume etichet > ALL

Principalul avantaj al index rii rezult din posibilitatea localiz rii


rapide a unor înregistr ri, mult mai eficient decât cea furnizat prin
LOCATE. Acest lucru este realizat prin comanda:

SEEK <exp>
16 Baze de date în Visual FoxPro

Comanda SEEK caut prima înregistrare pentru care valoarea


expresiei calculate cu valori din câmpurile acesteia este egal cu
<exp>, pe criteriul de indexare selectat.
Observa ii

la un moment dat poate fi activ un singur criteriu de indexare,


numele etichetei corespunz toare fiind furnizat de func ia
TAG();
efectul unei comenzi de c utare (SEEK sau LOCATE) poate fi
prelungit prin folosirea comenzii CONTINUE;
func ia FOUND() determin (.T. sau .F.) dac s-a reu it sau
nu localizarea.
Comanda:

SET EXACT ON OFF

stabile te modalitatea de c utarea pe sub iruri de caractere.


Clauza implicit este OFF.
Dac <exp> este un ir de caractere, acesta trebuie pus între
apostrofuri.

1.7. Introducerea formatat a datelor

FoxPro ofer posibilitatea introducerii datelor sub forma unor


machete sau formate prin asocierea la clauza GET a clauzelor
PICTURE i FUNCTION:

@<linie, coloan > [GET<variabil >]


[PICTURE <expC>] [FUNCTION <expC>]
[READ]

@ plaseaz cursorul pe pozi ia specificat a ecranului.


GET stabile te por iunea de pe ecran unde vor fi introduse
valorile ce vor fi atribuite variabilei <variabil >.
Baze de date în Visual FoxPro 17

PICTURE i FUNCTION permit formatarea afi rii datelor.


Ambele clauze sunt urmate de un ir de caractere care con ine
coduri referitoare la modul de afi are.
Codurile PICTURE se refer doar la un anumit caracter din
formatul de afi are i anume la cel de pe aceea i pozi ie cu
cea a codului.
Codurile FUNCTION ac ioneaz asupra tuturor caracterelor din
formatul de afi are.
Clauzele PICTURE i FUNCTION pot ac iona împreun , dar
FUNCTION este prioritar .
READ determin citirea con inutelor zonelor de editare pentru
introducerea valorilor de la tastatur , create prin GET.

Codurile de formatare PICTURE


X Permite orice caracter
9 Cifre i semnele + - . E (date numerice)
# Cifre, spatii i semnele + - . E
A Numai litere
W Numai date logice
N Numai litere i cifre
Y Permite doar caracterele logice Y, y, N i n
! Literele sunt convertite în majuscule
* Afi eaz asterix-uri în locul zerourilor ini iale
. Specific pozi ia punctului zecimal.

Codurile de formatare FUNCTION


A Permit numai caractere alfabetice (litere)
B Aliniere la stânga
I Centrare
J Aliniere la dreapta
C Dup un num r pozitiv se afi eaz CR (credit)
D Format dat calendaristic stabilit de SET DATE
E Format dat calendaristic european (britanic)
T Elimin spatiile de început i sfâr it
X Dup un num r negativ se afi eaz DB (debit)
Z Afi eaz spatii dac valoarea câmpului este 0
( Numerele negative sunt incluse între paranteze
! Literele sunt convertite în majuscule.
18 Baze de date în Visual FoxPro

Exemple:
* citirea unui num r cu dou zecimale pe câmp de 7
caractere:
a=0
@10,10 GET a PICTURE '9999.99'
READ

* citirea oric ror caractere pe câmp de lungime 10:


b=space(10)
@10,10 GET b PICTURE REPLICATE ('X',10)
READ

* introducere cu majuscule:
b=space(10)
@10,10 GET b PICTURE REPLICATE ('!',10)
READ

* introducerea unei majuscule i a dou cifre cu centrare:


.....PICTURE 'A99' FUNCTION 'I!'

* urm toarele machete de editare sunt echivalente:


..... PICTURE 'AAAAA' FUNCTION '!'
..... PICTURE 'XXXXX' FUNCTION 'A!'

1.8. Actualizarea tabelelor de date

Actualizarea tabelelor de date înseamn modificarea


structurii tabelelor de date (vezi comanda MODIFY STRUCTURE) sau
modificarea con inutului acestora. În ceea ce prive te modificarea
con inutului unui tabel de date se au în vedere posibilit ile de
tergere sau ad ugare a unor înregistr ri precum i modificarea
con inutului celor existente (vezi comenzile DELETE, PACK, RECALL,
REPLACE). Pentru editarea de la tastatur a tabelelor de date se
poate utiliza comanda BROWSE sau se pot alc tui secven e program.

Exemplu.
Fie fi ierul [Link], având structura:

Nume Caracter 30
Data_N Date 8
Telefon Caracter 10
Baze de date în Visual FoxPro 19

Pentru introducerea, de la tastatur , a unor date în acest fi ier


se poate concepe urm toarea procedur :

procedure introducere
clear
@10,10 say 'Numele' get nume function '!'
@12,10 say 'Data nasterii' get data_n
@14,10 say 'Telefonul' get telefon
read
endproc

Folosind aceast procedur se poate edita urm toarea secven


pentru consultarea i actualizarea fi ierului [Link]:

clear
use agenda
TEXT
Alegeti optiunea:
1. Afisare
2. Adaugare
3. Modificare
0. Terminare
ENDTEXT

opt=0
@10,20 say 'Optiunea:' get opt picture '9' range 0,3
read

clear
do case
case opt=1
do afisare
case opt=2
do adaugare
case opt=3
do modificare
case opt=0
cancel
endcase
cancel

procedure afisare
browse
endproc
procedure adaugare
append blank
20 Baze de date în Visual FoxPro

do introducere
endproc

procedure modificare
numele = space(30)
@10,0 say 'Numele cautat' get numele function '!'
read
locate for nume=numele
if found()
do introducere
else
WAIT 'Nume negasit!'
endif
endproc
Observa ii

o Pentru afi area meniului de op iuni s-a utilizat instruc iunea


TEXT ENDTEXT
o Pentru afi area mesajului de eroare „Nume negasit!” s-a
utilizat instruc iunea WAIT.

1.9. Ciclul SCAN

Ciclul SCAN este un ciclu cu num r finit de pa i, specializat în


lucrul cu tabele de date. Aceast structur repetitiv realizeaz
parcurgerea tabelului i executarea unui grup de instruc iuni pentru
fiecare înregistrare care îndepline te condi iile specificate. Ciclul este
utilizat, deseori, pentru actualizarea con inutului tabelelor de date,
conform unor anumite condi ii, sau pentru ob inerea informa iilor
statistice.
Sintaxa este:

SCAN [<domeniu>] [FOR <cond1>] [WHILE <cond2>]


[<instruc iuni>]
[LOOP]
[EXIT]
ENDSCAN
Baze de date în Visual FoxPro 21

1.10. Extragerea unor informa ii statistice

Comenzile care permit extragerea unor informa ii din tabelele


de date se aplic asupra unor câmpuri sau asupra unor expresii care
con in numele unor câmpuri.

COUNT [TO <var>]


[FOR <cond>] [<domeniu>] [WHILE <cond>]

- num r înregistr rile din tabelul de date, num rul de


înregistr ri putând fi memorat într-o variabil de lucru;

SUM <list exp>[TO<list var>]


[FOR <cond>] [<domeniu>] [WHILE <cond>]

- însumeaz valorile expresiilor din lista de expresii(<list exp>)


i le atribuie, eventual, unei liste de variabile (<list var>);

AVERAGE <list exp>[TO <list var>]


[FOR <cond>] [<domeniu>] [WHILE cond>]

- la fel ca SUM având ca rezultat media aritmetic .

CALCULATE <list funct>[TO<list var>]


[FOR <cond>] [<domeniu>] [WHILE <cond>]

- calculeaz anumite expresii folosind urm toarele func ii (<list


funct>):

SUM(<expN>) - suma;
AVG(<expN>) – media aritmetic ;
STD(<expN>) – devia ia standard;
VAR(<expN>) – abaterea medie p tratic ;
MAX(<exp>) – val maxim , nu neap rat numeric ;
MIN(<exp>) – val minim , nu neap rat numeric ;
NPV(<expN1>,<expN2>)[,<expN3>])
– valoarea prezent net a unei investi ii (vezi
func ia de calcul financiar);
CNT() – num rul de înregistr ri din tabelul de date.
22 Baze de date în Visual FoxPro

Aplica ii

10 Se creaz tabelul (fi ierul) de date [Link] având


structura:

nume Numele angajatului ir de caractere


marca Cod numeric angajat ir de caractere
functia Func ia angajatului ir de caractere
salariu Salariul brut Numeric
datanast Data na terii Dat calendaristic
sex Sex Logic
adresa Adresa angajatului Memo
20 Se introduc în tabel urm toarele înregistr ri:

- în câmpul sex se înscriu valorile .T. (masculin) i .F. (feminin)


- valorile din câmpul adresa (text de lungime variabil ) nu pot fi înscrise
direct în tabel, dar sunt stocate într-un fi ier asociat tabelului de date
numit fi ier memo. Trimiterea spre acest fi ier se poate face printr-un
dublu clic, cu mouse-ul pe câmpul memo corespunz tor
30 Informa ii privind:
fi ierele tabel de date prezente pe disc, în directorul de lucru:
dir
num rul de înregistr ri ale tabelului de date i num rul de
ordine al înregistr rii curente:
?reccount()
?recno()
Baze de date în Visual FoxPro 23

40 Opera ii asupra tabelului de date:


limitarea accesului în tabel la înregistr rile care con in angaja i
de sex masculin:
set filter to sex=.T.
browse
anularea filtr rii:
set filter to
browse
localizarea înregistr rii cu marca ’177’ :
locate for marca=’177’
browse
marcarea pentru tergere a înregistr rilor 2 i 4:
delete record 2
delete record 4
browse
marcarea pentru tergere a înregistr rilor corespunz toare
persoanelor cu vârste mai mari de 40 ani:
delete all for (year(date())-year(datanast))>40
browse
demarcarea tuturor înregistr rilor:
recall all
browse
tergerea fizic a înregistr rilor pentru care salariul este
cuprins între 3500000 i 12000000:
dele all for salariu >=3500000 and salariu <=12000000
pack
browse
înlocuirea, în câmpul nume, a literelor mici cu litere mari:
replace all nume with upper(nume)
24 Baze de date în Visual FoxPro

browse
înlocuirea valoric a salariului, la to i salaria ii, cu 12%:
replace all salariu with salariu*1.12
browse
50 Editarea tabelului de date selectiv (selec ii pe orizontal i pe
vertical ) utilizând comanda BROWSE:
afi area pe câmpurile nume, functia, salariu :
browse fields nume, functia, salariu
editarea înregistr rilor corespunz toare persoanelor de sex
masculin i a câmpurilor nume, salariu:
browse fields nume, salariu for sex=.T.
editarea tabelului de date doar pe câmpul salariu:
brow freeze salariu

60 Introducerea adresei persoanelor având marca ’204’ i ‘161’ :


locate for marca='204'
modify memo adresa
locate for marca='161'
modify memo adresa
70 Se creaz , prin sortare, un tabel de date [Link],
ordonarea f cându-se dup câmpurile Functia (cheie primar ) i
Salariu (cheie secundar ), ascendent:
sort on functia, salariu to Persoane
use Persoane
browse
80 Se definesc urm toarele criterii de indexare:
criteriul nume+functia, num:
index on nume+functia tag num
criteriul functia+salariu, func:
index on functia+str(salariu,8) tag func
criteriul salariu, descendent:
index on salariu tag salariu descending
criteriul marca
index on marca tag marca
Baze de date în Visual FoxPro 25

90 Vizualizarea tabelului de date conform celor patru criterii de


indexare definite anterior:
set order to tag num
browse
set order to tag func
browse
set order to tag salariu
browse
?tag()
set order to tag marca
browse
100 Folosind criteriul marca, se localizeaz înregistrarea de cod
‘204’ i se face, pentru aceasta, o m rire de salariu de 8%:
set order to tag marca
seek '204'
replace salariu with salariu*1.08
110 Informa ii despre tabelul de date:
num rul total de înregistr ri:
count to tot
?tot
num rul de angaja i ’Secretara’:
count for functia='Secretara' to a
?a
sau (prin program):
a=0
scan for functia='Secretara'
a=a+1
endscan
?a
media salarial pentru func ia ’Secretara’:
average salariu for functia='Secretara' to b
sau:
calculate avg(salariu) for functia='Secretara' to b
?b
salariul maxim:
calculate max(salariu) to m
?m
26 Baze de date în Visual FoxPro

sau (prin program):


maxim= salariu
scan
if salariu >maxim
maxim=salariu
endif
endscan
?maxim

2. Utilizarea bazelor de date i a vederilor

2.1. Crearea unei baze de date (Database)

Prin crearea unei baze de date mai multe tabele de date sunt
reunite într-o singur colec ie. Fiecare baz de date are asociat un
dic ionar de date care ofer mai mult flexibilitate în proiectarea i
modificarea bazei de date i reduce sarcina programatorului de a
scrie cod pentru valid rile la nivel de câmp i de înregistrare sau
pentru a asigura unicitatea valorilor din câmpurile reprezentând chei
primare. Fi ierele baz de date, con inând tabele de date i
informa iile asociate lor sunt fi iere având extensia implicit dbc.
Dic ionarul de date Visual FoxPro permite crearea sau
specificarea unor elemente cum ar fi:
Cheile primare i secundare;
Rela iile dintre tabelele bazelor de date;
Valorile implicite ale câmpurilor;
M tile de intrare i a formatelor de afi are a câmpurilor;
Regulile la nivel de câmp i de înregistrare;
Procedurile stocate.

Crearea unei baze de date poate fi ini iat prin comanda:

MODIFY DATABASE [<fi ier>]


Baze de date în Visual FoxPro 27

sau prin alegerea op iunii File, New din meniu (în acest caz în caseta
New se selecteaz Database i New file). Când se creeaz o nou
baz de date, aceasta nu con ine nimic (tabele asociate sau alte
obiecte).

Pentru ini ierea unei sesiuni de lucru cu o baz de date,


aceasta trebuie s fie activat (deschis ). Deschiderea unei baze de
date se poate realiza prin meniu (File, Open, Files of type: Database
(*.dbc)) sau prin comanda MODIFY DATABASE.
Observa ie
Lucrul cu bazele de date se realizeaz utilizând Constructorul
bazei de date în fereastra Database Designer, in meniul
principal fiind activat op iunea Database care ofer
instrumentele de lucru cu bazele de date.
Sfat
Lucra i cu bara de instrumente Database Designer. Dac
aceasta nu este afi at utiliza i meniul: View,
Toolbars Database Designer.

Remove Table
New Local View Browse Table
Add Table Modify Table

New Table

Bara de instrumente Database Designer permite efectuarea unor


opera iuni asupra bazelor de date cum ar fi:
New Table – Crearea unui nou tabel de date i includerea lui
în baza de date;
Add Table – Includerea unui tabel deja creat în baza de date;
Remove Table – Eliminarea unui tabel de date din baza de
date;
Modify Table – Modificarea structurii unui tabel;
Browse Table – Deschiderea ferestrei de vizualizarea pentru
un tabel;
New Local View – Crearea unei vederi (View).
28 Baze de date în Visual FoxPro

2.2. Ad ugarea tabelelor la baza de date

Fiecare tabel Visual FoxPro poate exista în una din urm toarele
dou st ri: ca tabel liber, adic sub form de fi ier .dbf neasociat
vreunei baze de date, sau ca tabel dintr-o baz de date, adic sub
form de tabel asociat unei baze de date. Tabelele asociate unei
baze de date au unele propriet i specifice, care nu exist în cadrul
tabelelor externe, cum ar fi regulile la nivel de câmp i de
înregistrare, declan atoarele i rela iile permanente.
Tabelele pot fi asociate cu o baz de date prin crearea lor în
cadrul unei baze de date deschise în fundal sau prin ad ugarea
tabelelor existente la o baz de date.
Observa ie
Un tabel existent poate fi asociat cu o singur baz de
date.

2.3. Eliminarea tabelelor din baza de date

Prin ad ugarea unui tabel la o baz de date, Visual FoxPro


modific înregistrarea din antetul fi ierului corespunz tor tabelului
pentru a actualiza calea i numele fi ierului asociat bazei de date care
include acum tabelul. Procesul de eliminare a unui tabel dintr-o baz
de date (Remove Table) nu numai c terge tabelul i dic ionarele de
date din fi ierul bazei de date, ci actualizeaz informa ia de rela ie
pentru a reflecta noul statut al tabelului, cel de tabel liber. Eliminarea
unui tabel dintr-o baz de date nu determin tergerea automat a
fi ierului asociat tabelului. Pentru tergerea fi ierului .dbf se poate
utiliza comanda DELETE.

2.4. Crearea rela iilor permanente între tabele

Pentru stabilirea unor rela ii între tabele, trebuie inut cont c


acestea nu sunt rela ii de egalitate, ci de subordonare. Unul dintre
tabele va fi p rinte (Parent Table), iar cel lalt copil (Child Table).
Baze de date în Visual FoxPro 29

În Visual FoxPro, sunt utiliza i indec ii pentru a stabili rela ii


permanente între tabelele bazei de date. Indec ii sunt constitui i pe
baza unor expresii (în particular indec ii pot fi nume de câmpuri ale
tabelelor) prin utilizarea procedeului de indexare. Tipul etichetei de
index sau al cheii determin tipul de rela ie permanent care se poate
crea. Este necesar folosirea unei chei primare (Primary) pentru
rela ii „una la mai multe”. Pentru partea „mai multe”, cheile de
indexare sunt chei obi nuite (Regular).
Exemplu
Baza de date [Link] include tabelele [Link],
[Link], [Link]. Aceste tabele de date sunt indexate dup
câmpurile codc (cod client) i codp (cod produs). Tabelele [Link]
i [Link] sunt tabele p rinte iar tabelul [Link] este tabel
copil, stabilindu-se rela ii „una la mai multe”: [Link]– [Link]

Figura 2.1

i [Link] – [Link]. În tabelul [Link] respectiv


[Link] cheile codc, codp sunt primare (unice), valorile
corespunz toare acestora neputând fi scrise decât o singur dat în
tabel – nu pot exista mai mul i clien i sau mai multe produse cu
acela i cod:
30 Baze de date în Visual FoxPro

Figura2.2

În tabela copil, [Link], pot apare de mai multe ori acela i


coduri de clien i sau produse. Se impune stabilirea cheilor codc i
codp drept chei normale:

Figura 2.3

Crearea unei rela ii permanente între tabele:


În fereastra Database Designer, se alege numele indexului
primar (cum ar fi codc) i apoi se trage spre numele indexului din
tabela legata (cum ar fi codc din [Link]).
tergerea unei rela ii permanente dintre tabele:
În fereastra Database Designer, se execut clic pe linia de
rela ie dintre dou tabele. Ca urmare, l imea liniei de rela ie cre te
pentru a indica faptul c s-a selectat rela ia respectiv . Pentru
eliminarea rela iei se apas tasta DELETE.
Baze de date în Visual FoxPro 31

Crearea integrit ii referen iale

Generatorul de Integritate Referen ial (Referential


Integrity Builder) se lanseaz prin meniu: Database, Edit Referetial
Integrity. Generarea integrit ii referen iale presupune crearea unui
set de reguli care s p streze rela iile definite între tabele atunci când
se insereaz sau se terg înregistr ri.

Figura2.4

Prin înt rirea integrit ii referen iale, Visual FoxPro nu permite:


S se adauge înregistr ri la un tabel copil atunci când nu exist
nici o înregistrare asociat în tabelul p rinte.
S se modifice valori în tabelul p rinte care ar duce la apari ia
de înregistr ri orfane în tabelul copil.
S se tearg înregistr ri din tabelul p rinte atunci când exist
înregistr ri asociate în tabelul copil.
Generatorul de integritate referen ial gestioneaz mai multe
niveluri de tergere i actualiz ri în cascad i este instrumentul cel
mai potrivit pentru generarea integrit ii referen iale.
32 Baze de date în Visual FoxPro

Observa ii
Se recomand lansarea generatorului de integritate
referen ial imediat dup includerea unui nou tabel i
stabilirea rela iilor cu alte tabele deja incluse.
Se recomand realizarea rela iilor de integritate în
cascad .
Dac se intervine în arhitectura bazei de date, de pild , prin
modificarea tabelelor sau a indec ilor folosi i într-o rela ie
permanent , se impune relansarea generatorului înainte de
a se folosi baza de date astfel încât acesta s reflecte noua
arhitectur . Altfel, pot fi generate rezultate imprevizibile.

2.5. Închiderea unei baze de date

Închiderea unei baze de date se poate realiza prin comenzile:

CLOSE DATABASE -sau- CLOSE ALL

2.6. Crearea unei vederi (View)

Vederile reprezint un tip special de tabele, construite pe baza


datelor din una sau mai multe tabele sau vederi legate între ele prin
rela ii. Vederile sunt folosite atunci când se dore te o alt structur a
tabelelor (bazelor de date), structur construit pe baza unor tabele
i vederi deja existente.
Observa ii
Vederile sunt incluse în bazele de date, ele neputând fi
folosite decât atunci când baza de date care le con ine este
deschis . Chiar memorarea efectiv a vederilor se face în
fi ierul bazei de date (.dbc).
Vederile sunt v zute i prelucrate ca orice alt tabel.
Vederile sunt tabele logice, nestocând fizic date.
Baze de date în Visual FoxPro 33

Crearea unei vederi în cadrul unei baze de date se poate realiza


prin meniu, File, New (în acest caz în caseta New se selecteaz
View i New file), sau folosind butonul New Local View din bara
de instrumente Database Designer. În meniul principal este activat
op iunea Query care ofer instrumentele de lucru pentru vederi i
interog ri. Pentru construirea vederilor se folose te un utilitar special
al SGBD-ului Visual FoxPro numit View Designer („Constructorul de
vederi”).

Modul de utilizare a acestui utilitar este asem n tor celui


folosit pentru construirea interog rilor (Query Designer).

Construirea unei vederi implic parcurgerea urm toarelor etape


principale:
dac baza de date care urmeaz s con in vederea nu
este deschis , se deschide, eventual se creeaz ;
apoi se porne te Constructorul de vederi;
urmeaz precizarea sursei de date, adic a tabelelor din
care se preiau datele pentru construirea vederii respective:

Figura 2.5
34 Baze de date în Visual FoxPro

apoi se stabilesc câmpurile care vor intra în componen a


vederii, câmpuri selectate dintre cele ale tabelelor surs
precizate anterior;
în continuare, se specific o serie de parametri precum:
leg turile între tabelele specificate, eventualele condi ii de
filtrare (selec ie), ordonare, grupare a datelor în vedere,
modul de actualizare a datelor surs pe baza datelor din
vedere etc.

Aplica ii

10 Pentru eviden a produselor livrate de un furnizor se creeaz


baza de date [Link], având în componen urm toarele tabele
de date:
a) [Link] (Client C, 35 / Codc C, 4 / Adresa - memo)

b) [Link] (Data D / Cantitate N, 10 / Codc C, 4 /


Codp C, 5)

c) [Link] (Denumire C, 35 / Pret N, 10 /Um C, 6 /


Codp C, 5 / Stoc N, 12)
Baze de date în Visual FoxPro 35

unde Codc este codul atribuit firmei, iar Codp este codul produsului i
vor constituii cheile de leg tur între tabele.

20 S se indexeze tabelele de date:


[Link] dup câmpul Codc, c ruia i se va atribuii statutul de
cheie primar (vezi figura 2.2);
[Link] dup câmpurile Codc i Codp c rora li se va
atribuii statutul de chei normale (vezi figura 2.3);
[Link] dup câmpul Codp - cheie primar .

30 S se realizeze rela iile de tip „una la mai multe” (vezi figura 2.1):
a) între tabelele de date [Link] i [Link] (clic cu
mouse-ul pe cheia Codc din tabelul [Link] i tragere peste
cheia Codc din tabelul [Link]).
b) între tabelele de date [Link] i [Link].

40 S se lanseze Generatorul de Integritate Referen ial (prin


meniu: Database, Edit Referetial Integrity) pentru realizarea rela iilor
de integritate în cascad (Cascade) – vezi figura 2.4. S se verifice
stabilirea integrit ii referen iale în urm toarele situa ii:
o tergere logic (DELETE) în tabelul p rinte, [Link], se
reflect ca tergere logic în tabelul copil [Link].
orice modificare a cheii primare din tabelul p rinte, [Link],
se reflect ca modificare în tabelul copil [Link].

50 S se includ în baza de date un tabel vedere, livrari:


36 Baze de date în Visual FoxPro

Indica ie
Se va ac iona butonul New Local View din bara de instrumente
Database Designer i se vor include în vedere cele trei tabele de date (vezi
figura 2.5), precum i câmpurile necesare. La închiderea ferestrei View
Designer, acestei vederi, i se va asocia numele livrari.

60 S se ob in situa ia livr rilor, afi ând con inutul tabelului livrari


(Browse):

3. Interogarea bazelor de date

O interogare a unei baze de date reprezint extragerea - în


func ie de anumite criterii i într-un anumit format - unor date din
tabele de date care alc tuiesc baze de date. Componenta Visual
FoxPro-ului care realizeaz acest obiectiv se nume te Query
Designer („Constructorul de interog ri”), component
asem n toarea cu View Designer („Constructorul de vederi”).
Datele extrase printr-o interogare pot fi prezentate sub diverse forme
(Browse, rapoarte, grafice, etc,).

3.1. Crearea, deschiderea i rularea unei interog ri

Crearea unei interog ri (fi ier cu extensia implicit


QPR) poate fi ini iat prin comanda:

MODIFY QUERY [<nume interogare>]


Baze de date în Visual FoxPro 37

sau prin alegerea op iunii File, New din meniu (în acest caz în caseta
New se selecteaz Form i New file).

Activarea (deschiderea) unui formular se poate realiza prin


meniu (File, Open, Files of type: Query (*.qpr)) sau prin comanda
MODIFY QUERY.

O interogare este o secven executabil care poate fi


rulat în urm toarele moduri:

din meniul principal (Query, Run Query),

prin ac ionarea butonului din linia de instrumente standard,


prin comanda DO <nume interogare>.
Observa ie
Prin lansarea Constructorului de interog ri, în fereastra
Query Designer, meniul principal va include op iunea Query
care ofer instrumentele de lucru necesare.
Sfat
Lucra i cu bara de instrumente Query Designer. Dac aceasta
nu este afi at utiliza i meniul: View, Toolbars Query
Designer.
Remove Table
Add Table Add Join
Show the SQL window

Query Destination
Maximize the table
i
Bara de instrumente Query Designer permite efectuarea unor
opera iuni cum ar fi:
Add Table – Includerea unui tabel de date în interogare;
Remove Table – Eliminarea unui tabel;
Add Join – Stabilirea sau modificarea unor leg turi între
tabelele de date incluse în interogare;
Show the SQL window – transpunerea secven ei de
interogare în instruc iuni SQL;
38 Baze de date în Visual FoxPro

Query Destination – stabilirea destina iei unei interog ri: o


fereastr Browse, un tabel permanent, o list la imprimant
(report), un grafic, etc.
Maximize the table View – modificarea formei de afi are a
con inutului ferestrei Query Designer.
Fereastra Query Designer (figura 3.1) este constituit din dou
zone, în care sunt afi ate tabelele surse de date (împreun cu leg turile
dintre ele), respectiv paginile în care se vor preciza parametrii de
definire a interog rii i anume:
Fields (câmpuri) – specificarea câmpurilor surs ce vor fi incluse
în tabelul destina ie;
Join (leg tur ) – leg turile între tabelele surs ;
Filter (filtru) –condi iile de selec ie (filtrare) a datelor din tabelele
de date;
Order By (ordonare) – specific ordinea de prelucrare;
Group By (grupare) – criteriile de grupare a datelor;
Miscellaneous (altele).

Figura 3.1
Baze de date în Visual FoxPro 39

3.2. Fereastra Query Designer

Specificarea câmpurilor interog rii


Pentru ca un câmp s fie preluat într-o interogare se activeaz
pagina Fields, dup care acesta se selecteaz din lista Availabile
fields (câmpuri disponibile) i se ac ioneaz butonul Add. Ca urmare
numele câmpului va fi copiat în lista Selected fields (vezi figura 3.1).
Dac se dore te introducerea unui câmp calculat se va introduce
formula de calcul corespunz toare în caseta Functions and
expresions.

Specificarea leg turilor între tabelele de date


Modelul rela ional al bazelor de date permite stabilirea unor
leg turi între tabelele de date. Aceste rela ii pot fi permanente,
memorate în fi ierul bazei de date, sau stabilite dinamic în cadrul
unor secven e program. Stabilirea leg turilor dinamice se poate
realiza cu ajutorul comenzii:
SET RELATION TO <etichet 1> INTO <tabel1>,
<etichet 2> INTO <tabel2>,
unde:
- tabelul p rinte este cel activ;
- TO stabile te criteriile de ordonare;
- INTO precizeaz tabelele copil.
La fel ca în cazul definirii unei vederi (cu View Designer), pentru
stabilirea unei leg turi între dou tabele de date, este necesar ca cele
dou tabele s aib cel pu in un câmp comun prin intermediul c ruia
se realizeaz coresponden a. Rela ia stabilit între dou tabele legate
este o rela ie de subordonare: unul din tabele va fi tabelul p rinte,
iar cel lalt va fi tabelul copil. Mutarea indicatorului de înregistr ri al
tabelului p rinte pe o anumit înregistrare determin mutarea
indicatorului de înregistr ri al tabelului copil pe înregistrarea
corespunz toare, dar nu i invers.
40 Baze de date în Visual FoxPro

Observa ii:
Este obligatorie indexarea tabelului copil dup criteriul care
stabile te leg tura (de obicei acesta este un câmp comun cu
al tabelului p rinte, dar poate fi i o expresie oarecare).
Se pot stabilii dou tipuri de leg turi între tabelul p rinte i
tabelul copil:
o „leg turi unu la unu”, când în tabelul copil valorile
cheii de indexare sunt unice;
o „leg turi unu la mai multe”, când înregistr rile
tabelului copil pot lua i valori egale pe cheia de
indexare.
Leg turile permanente necesare pentru stabilirea unei
interog ri se aleg folosind pagina Join (figura 3.2), prin specificarea
câmpurilor care fac obiectul leg turii i a tipului de leg tur :
Inner Join – leg tur interioar , între înregistr rile din tabelul
p rinte care au corespondent în tabelul copil i invers;
Left Join – leg tura la stânga, când vor fi luate în considerare
i înregistr rile din tabelul p rinte (din stânga) care nu au
corespondent în tabelul copil;
Right Join – leg tura la dreapta, când vor fi luate în
considerare i înregistr rile din tabelul copil (din dreapta) care
nu au corespondent în tabelul p rinte;
Full Join – vor fi considerate toate leg turile.

Figura 3.2
Baze de date în Visual FoxPro 41

Condi iile de selec ie a înregistr rilor

Principala func ie a unei interog ri este aceea de selec ie.


Criteriile de selec ie sunt precizate în pagina Filter.

Figura 3.3

Ordonarea afi rii rezultatelor interog rii

Specificarea ordinii de afi are se face cu ajutorul paginii Order


By. În figura 3.4 s-a selectat ordonarea dup câmpul nume din
tabelul [Link]:

Figura 3.4

Gruparea datelor
42 Baze de date în Visual FoxPro

Query Designer (pagina Group By) permite ca mai multe


înregistr ri s fie cumulate dup mai multe criterii, pentru fiecare
grup de înregistr ri fiind furnizat în tabelul de destina ie o singur
înregistrare. Gruparea poate fi realizat dup unul sau mai multe
câmpuri care vor forma cheia de grupare. Înregistr rile având
acelea i chei de grupare vor furniza în tabela de destina ie o singur
înregistrare (câmpurile numerice pentru un grup vor con ine valori
ob inute prin însumarea valorilor corespunz toare din grup).

Destina ia interog rii

Figura3.5

Datele extrase prin interogare pot fi trimise spre o anumit


destina ie (folosind butonul Query Destination din bara de butoane a
Constructorului de interog ri) cum ar fi:
fereastra Browse - implicit;
un tabel permanent (Table) acesta putând fi folosit într-o nou
prelucrare;
ecranul (Screen);
o list la imprimant (Report);
un grafic (Graph) construit cu ajutorul componentei Microsoft
Graph.
Baze de date în Visual FoxPro 43

Aplica ii

10 S se creeze urm toarele tabele de date:


[Link] (nume C, 30 / matricola N,4 /grupa C,4)
[Link] (materia C, 30 / cod C,4)
[Link] (nota N,2 / matricola N, 4 / cod C,4):

20 S se indexeze tabelele de date [Link], [Link]


dup câmpurile Matricola respectiv Cod.

30 S se creeze i s se ruleze fi ierul de interogare a tabelelor de


date [Link], [Link], [Link], pentru afi area notelor
studen ilor inclu i în baza de date (vezi figura 3.1 i figura 3.2). S se
stabileasc ca destina ie a interog rii fi ierul [Link] (vezi figura
3.5) i s se vizualizeze con inutul acestui tabel.

40 S se realizeze interogarea bazei de date pentru afi area notelor


în ordinea alfabetic a numelor studen ilor (vezi figura 3.4).

50 S se ruleze fi ierul de interog ri pentru afi area notelor


studen ilor din grupa ’FC01’ (vezi figura 3.3).

60 S se ruleze fi ierul de interog ri pentru toate cele patru tipuri de


leg turi (Inner Join, Left Join, Right Join, Full Join) – vezi figura 3.2.
44 Baze de date în Visual FoxPro

4. Utilizarea formularelor

Formularul (forma) reprezint o fereastr pentru


introducerea sau extragerea datelor utilizatorului, în mod interactiv,
cu ajutorul unor obiecte de interfa c rora le sunt asociate
propriet i i metode (secven e de instruc iuni – secven e de cod).
Definirea unui formular se realizeaz prin utilizarea tehnologiei POO
(Programare Orientat Obiect) care permite modificare propriet ilor
obiectelor incluse în formular, ceea ce se reflect în aspectul
formularului i a comportamentului acesteia în diferite situa ii.

Form Designer („Constructorul de formulare”) este o


component a Visual FoxPro - ului dedicat cre rii i modific rii
formularelor precum i gener rii secven ei de cod necesare pentru
execu ia acestora (fi ierele corespunz toare au extensia implicit
scx).

4.1. Crearea, deschiderea i rularea unui formular

Crearea unui formular (fi ier cu extensia implicit SCX)


poate fi ini iat prin comanda:

MODIFY FORM [<nume formular>]

sau prin alegerea op iunii File, New din meniu (în acest caz în caseta
New se selecteaz Form i New file).

Activarea (deschiderea) unui formular se poate realiza prin


meniu (File, Open, Files of type: Form (*.scx)) sau prin comanda
MODIFY FORM.

Scopul cre rii unui formular este ob inerea unei secven e


executabile care poate fi rulat în urm toarele moduri:
Baze de date în Visual FoxPro 45

din meniul principal (Form, Run Form),

prin ac ionarea butonului din linia de instrumente standard,


prin comanda DO FORM <nume formular>.
Observa ie
Prin lansarea Constructorului de formulare, în fereastra
Form Designer, meniul principal va include op iunea Form
care ofer instrumentele de lucru necesare.

4.2. Elementele constructorului de formulare

Ferestrele de lucru

Form Designer – fereastra principal care con ine obiectele


formularului.
Properties – fereastra de propriet i având ca rol
modificarea propriet ilor obiectelor formularului (metode,
nume, titluri, dimensiuni, fonturi, culori, etc.).
Data Environment – mediul de date al formularului,
fereastra pentru precizarea tabelelor de date care vor fi
deschise automat în momentul rul rii formularului.
Ferestrele pentru cod – succesiunile de instruc iuni care
urmeaz a fi executate la apari ia diferitelor evenimente din
cadrul formularului cum ar fi: ac ionare unui buton, selectare
unui obiect, etc.

Barele utilitare
Form Designer Toolbar - bara de butoane standard a
formularului:
Data Environment Layout Toolbar
Properties Window Color Palette Toolbar

Code Window Form Controls Toolbar


46 Baze de date în Visual FoxPro

Butoanele din aceast bar de instrumente permit


deschiderea/închiderea ferestrelor: Data Environment, Properties,
Code (afi area secven ei de cod) sau a barelor de lucru:
Form Control Toolbar – butoanele de control;
Color Palette Toolbar – stabilirea atributelor de culoare;
Layout Toolbar – alinierea obiectelor în formular,
suprapunerea obiectelor, etc.

Form Controls Toolbar

Lista obiectelor din formular

Form Designer Toolbar

Valoarea
propriet ii

Proprietate
FORMULARUL

Obiect

Sfat
Lucra i cu barele de instrumente. Dac acestea nu sunt
afi ate utiliza i meniul: View, Toolbars
Baze de date în Visual FoxPro 47

4.3. Mediul de date al formularului (Data Environment)

Constructorul de formulare permite configurarea mediului de


date în care lucreaz formularul, adic a zonelor de lucru i a
tabelelor de date deschise în ele. Tabelele de date sunt deschise
automat (f r comenzi speciale), dac acestea sunt incluse în Data
Environment, înainte de execu ia formularului (este de la sine în eles
c aceste tabele de date au fost deja create).
Observa ii
Deschiderea ferestrei Data Environment poate fi f cut
prin meniu (View, Data Environment ) sau folosind butonul
corespunz tor din bara de butoane Form Designer. Astfel în
meniul principal este inclus op iunea DataEnvironment.
Includerea (Add) unui tabel în Data Environment este
realizat prin meniu: DataEnvironment, Add sau prin clic cu
butonul dreapta al mouse-ului.

Mediul de date al formularului este considerat un obiect, deci


are asociate metode i propriet i. Cele mai importante metode,
legate de folosirea datelor sunt:
Metoda OpenTables este folosit la deschiderea tabelelor de
date necesare (dac nu este utilizat , tabelele asociate sunt
deschise automat).
Metoda Load Event poate fi folosit , de asemenea, la
deschiderea tabelelor. Aceasta este ini iat dup metoda
OpenTables.
Metoda Init Event este o metod apelat dup metoda Load,
i face anumite ini ializ ri ale obiectelor din formular, inclusiv cu
datele din tabelele care sunt deja deschise.
Metoda CloseTables are ca scop închiderea tabelelor de date
din mediul de date al formularului la ini iativa utilizatorului.
Metodele Unload (desc rcare) i Destroy (distrugere a
formularului) ac ioneaz asupra mediului de date i sunt
activate dup metoda CloseTables.
48 Baze de date în Visual FoxPro

4.4. Utilizarea controalelor

Includerea controalelor în cadrul unui formular se realizeaz


prin introducerea unor obiecte (Label, Text Box, etc.) în acest
formular. Pentru aceasta, se ac ioneaz butonul corespunz tor din
Form Controls Toolbar i se stabile te por iunea dreptunghiular
(zona) din formular unde va fi afi at obiectul. Practic, obiectul va fi
desenat (se pozi ioneaz cursorul mouse-ului în col ul stânga-sus al
zonei de afi are, se ine ap sat butonul stâng i se trage cursorul
spre col ul dreapta-jos).

Propriet i i metode

Un formular poate con ine mai multe obiecte, el însu i fiind


considerat un obiect. Fereastra Properties permite alegerea
obiectului i a propriet ii a c rei valoare se schimb , ca de exemplu:
Proprietatea Caption este destinat stabilirii unui titlu
(denumire) pentru formular sau obiect.
Proprietatea Name permite atribuirea unor nume
obiectelor. Visual FoxPro stabile te valori implicite
propriet ilor Caption i Name cum ar fi:
o Form1, Form2 pentru formulare
o Label1, Label2... pentru obiectele Label
o Command1, Command2 pentru butoane
o Text1, Text2 pentru obiectele Text Box
o Edit1, Edit2 pentru obiectele Edit Box
Aceste nume ale obiectelor pot fi folosite a a cum au fost
definite de Visual FoxPro îns utilizatorul are posibilitatea
stabilirii unor denumiri proprii.
Proprietatea FontSize stabile te atributele de scriere
privind dimensiunea fontului folosit.
Proprietatea FontBold permite scrierea bold.
Proprietatea BorderStyle ofer posibilitatea stabilirii
atributelor de bordare.
Baze de date în Visual FoxPro 49

Proprietatea Format permite introducerea formatat a


datelor conform codurilor Function.
Proprietatea Input Mask permite introducerea formatat
a datelor conform codurilor Picture.
Observa ie
O categorie special de propriet i o reprezint metodele.
Metodele sunt secven e de cod (instruc iuni) asociate
diferitelor obiecte la activarea/dezactivarea acestora.

Form Designer ofer posibilitatea modific rii unei propriet i


prin comenzi de atribuire, referirea la proprietatea respectiv
f cându-se prin construc ia:

<nume formular>.<nume proprietate>

Referirea la un obiect din cadrul unei formulare se realizeaz


printr-o construc ie asem n toare, adic :
<nume formular>.<nume obiect>.<nume proprietate>

Exist construc ii speciale, mai scurte, cum ar fi:


o This - care se refer la obiectul curent;
o ThisForm - care indic formularul ce con ine
obiectul curent;
o Parent - care se refer la obiectul care con ine
obiectul curent.

Exemple
[Link]=’Actualizare’
modific proprietatea Caption (titlu) a formularului
Form1
[Link]
execut metoda Vizualizare ata at formularului
[Link]=’Numele persoanei’
modific proprietatea Caption (titlu) a obiectului
Label1
[Link]=’Ad ugare’
50 Baze de date în Visual FoxPro

modific proprietatea Caption (titlu) a formularului


curent
[Link]
execut metoda Vizualizare ata at formularului
curent
[Link]=’Numele persoanei’
modific proprietatea Caption (titlu) a obiectului

Obiecte din formular

Obiecte simple

Label – afi eaz un text informativ

– define te un câmp de editare în care utilizatorul


poate introduce un text.

Edit Box – pentru editarea variabilelor ir de caractere,


tablou, câmpuri ale tabelelor de date, câmpuri memo.

Command Button – este tipic pentru startul


evenimentelor, pentru c utarea i închiderea formularelor, mutarea
diferitelor înregistr ri, imprimarea rapoartelor, etc.

Check Box (casete de validare). Obiectele Check Box


permit utilizatorului s specifice o stare de tip logic (true sau false),
astfel încât la executarea formularului s se poat alege între dou
st ri. Principalele propriet i care le sunt asociate sunt:
Proprietatea Value furnizeaz valorile numerice 0 sau 1
dup cum caseta este neselectat sau selectat (bifat ).
Proprietatea Style schimb stilul de afi are, având
valoarea 0–Standard sau 1-Graphical, caseta de validare
primind aspectul unui buton neap sat/ap sat:
Baze de date în Visual FoxPro 51

Standard Graphical

Spinner (casete de incrementare/decrementare).


Obiectele Spinner permit utilizatorului s - i stabileasc op iunile
parcurgând incremental o plaj de valori sau introducând direct
valorile în caset . Pentru aceasta, câmpul de editare al casetei are în
dreapta sa dou butoane: unul pentru incrementare i altul pentru
decrementare:

Propriet i principale:
Proprietatea Value stabile te valoarea ini ial înscris în
caset i furnizeaz valorile editate la execu ia formularului.
Propriet ile KeyboardHighValue i KeyboardLowValue
stabilesc limita superioar i inferioar a valorilor introduse
în câmpul de editare direct de la tastatur (dep irea acestor
limite genereaz mesaj de eroare).
Propriet ile SpinnerHighValue i SpinnerLowValue
stabilesc limita superioar i inferioar a valorilor introduse
cu ajutorul butoanelor de incrementare/decrementare
(dep irea acestor limite nu conduce la eroare dar valoarea
aflat în editare nu mai este m rit /mic orat ).

Combo Box - List Box (casete cu list - list


derulant ). Listele sunt obiecte care ofer utilizatorului posibilitatea
select rii unor elemente dintr-o mul ime finit , afi at total sau
par ial pe ecran. Se utilizeaz dou tipuri de liste: liste simple - List
Box i liste derulante sau expandabile - ComboBox care afi eaz doar
elementul curent al listei.
52 Baze de date în Visual FoxPro

Listele simple, List Box afi eaz la un moment dat mai multe
elemente (nu neap rat pe toate):

Listele expandabile, Combo Box, afi eaz , în stare neactivat ,


doar un element al listei:

Propriet i ale listelor:


Proprietatea RowSourceType stabile te sursa de date a
elementelor unei liste cum ar fi:
o 0 – None (surs nespecificat ), când specificarea
elementelor listei se face în mod dinamic, la rularea
formularului;
o 1 – Value (valoare), care presupune c elementele
listei sunt enumerate manual în proprietatea
RowSource (list de elemente separate prin virgul );
o 2 – Alias, când elementele listei sunt preluate dintr-o
tabel de date specificat în proprietatea RowSource;
o 3 – SQL Statement (instruc iuni SQL);
o 4 - Query (interogare);
o 5 – Array (tablou) – elementele listei sunt preluate
dintr-un tablou;
o etc.
Baze de date în Visual FoxPro 53

Proprietatea RowSource specific sursa efectiv de date.

Num rul implicit de coloane dintr-o list este 1 îns pot fi


construite i liste multicoloan . O variant simpl de a ob ine o list
multicoloan dintr-o list unicoloan o ofer propriet ile
RowSourceType i RowSource. De exemplu, dac proprietatea
RowSourceType este 2 – Alias proprietatea RowSource poate avea
valoarea [Link]+[Link] (pentru baza de date
[Link]) astfel încât rezult o list de forma:

Obiecte compuse (container)

Obiectele compuse sunt constituite ca un grup de obiecte


simple. Construirea (Builder ) unui obiect container (de exemplu
includerea unor obiecte simple) sau editarea (Edit) unui obiect inclus
într-un container presupune
ac ionarea butonului drept al
mouse-ului:
54 Baze de date în Visual FoxPro

Option Group (butoane radio). Butoanele radio sunt un


tip special de obiecte de interfa care ofer posibilitatea alegerii unei
singure op iuni din mai multe posibile (sunt obiecte container).
Propriet ile cele mai utilizate ale butoanelor radio sunt:
Proprietatea ButtonCount stabile te num rul de
componente ale obiectului.
Proprietatea AutoSize determin calcularea automat a
dimensiunii grupului de butoane în func ie de con inut, dac
are valoarea .T. – True.
Proprietatea Value furnizeaz valorile numerice 1, 2, 3,
reprezentând num rul de ordine al butonului selectat
(implicit 1).
Proprietatea Style a fiec rui obiect din container
schimb stilul de afi are, având valoarea 0–Standard sau 1-
Graphical :

Standard Graphical

Command Group (butoane de comand ). Grupurile de


butoane de comanda au roluri asem n toare cu ale butoanelor simple
(Command Button) doar c ele sunt constituite ca obiecte container,
deci pot fi construite i editate ca acest tip de obiecte. Cele mai
importante propriet i (ButtonCount, AutoSize, Value) sunt
identice cu ale butoanelor radio.

Grid (Grile). Grila este un obiect container, variant


îmbun t it a ferestrei Browse, care con ine mai multe obiecte de
interfa , plasate matricial, cum ar fi: coloane, antete (header),
câmpuri de editare, fiecare cu propriul set de propriet i i metode.
Baze de date în Visual FoxPro 55

Elementele componente ale unei grile sunt cele prezente i în


mediul ferestrei Browse:
liniile, coloanele i celulele;
barele de derulare folosite atunci când dimensiunea grilei
dep e te dimensiune zonei vizibile;
antetul (header) – capul de tabel;
coloana de marcare a liniilor;
coloana de tergere a liniilor.

Obiectul Grid are o organizare intern arborescent , fiind dispus


pe nivele: la primul nivel sunt situate coloanele apoi antetele coloanelor
i obiectele de interfa :

Grid Grila

Column1 Coloana1

Header1 Antet1

Text1 Câmp1

Column2 Coloana2

Header2 Antet2

Text2 Câmp2

Grila i elementele din gril au anumite propriet i cum ar fi:


Proprietatea RecordSourceType stabile te sursa de date
a grilei:
o 0 – Table i 1 – Alias, sursa de date este un tabel de
date care va fi deschis automat la ini ializarea grilei. În
acest caz, înregistr rile tabelei vor fi linii în gril , iar
câmpurile tabelului de date vor fi coloane;
o 2 – Prompt –sursa de date (tabelul de date) se
specific la execu ia formularului;
o 3 - Query (interogare);
o 4 – SQL Statement (instruc iuni SQL).
Proprietatea RecordSource specific denumirea exact a
sursei de date.
56 Baze de date în Visual FoxPro

Aplica ii

10 S se editeze urm torul formular:

Indica ii
Se lanseaz Constructorul de formulare.
Se stabilesc propriet ile obiectelor în felul urm tor:

Caption Calcule
Form1 financiare
Caption Calculeaz Color Pallete : Verde
Command1
FontBold .T. -True
Caption Func ia: Color Pallete : Ro u
Label1
Name Opt
FV
Caption FV Color Pallete : Ro u
PV
Caption PV Color Pallete : Ro u
Payment
Caption Payment Color Pallete : Ro u
FontBold .T. -True
Name a1 Color Pallete :
a1 Albastru
FontSize 11
FontBold .T. -True Primul argument
Name a2 Color Pallete :
a2 Albastru
FontSize 11
FontBold .T. -True Al doilea argument
Baze de date în Visual FoxPro 57

Name a3 Color Pallete :


a3 Albastru
FontSize 11
FontBold .T. -True Al treilea argument
Name Rezultat Color Pallete : Ro u
rezultat
FontSize 12
Afi eaz rezultatul
FontBold .T. -True
Se stabilesc metodele (secven ele de cod) folosind pagina Method
din fereastra Properties:

a1=val([Link])
(se poate a2=val([Link])
Calculeaz executa i a3=val([Link])
dublu click pe Opt=[Link]
obiect) do case
case Opt=1
[Link]=FV(a1,a2,a3)
case Opt=2
[Link]=PV(a1,a2,a3)
case Opt=3
[Link]=Payment(a1,a2,a3)
endcase

Se salveaz i se execut formularul astfel creat.

20 S se editeze un formular pentru actualizarea datelor din tabelul de


date [Link].
Indica ii
Se include în mediul de date al formularului, Data Environment,
tabelul [Link] i se import în formular, ca obiecte, câmpurile
tabelului de date, prin tragere, cu mouse-ul în zona de editare a
formularului. Aceste obiecte vor fi considerate de Constructorul de
formulare ca fiind de tip Text Box (txtNume, txtMarca,
txtFunctia, txtSalariu, txtDatanast), de tip Edit Box (pentru
câmpul Adresa care este Memo) sau de tip Check Box (pentru
câmpul Sex).
58 Baze de date în Visual FoxPro

Se eticheteaz denumirile câmpurilor din tabelul de date (Numele,


Marca, etc.) folosind obiecte de tip Label.

Se stabilesc propriet ile obiectelor în felul urm tor:

Caption Actualizare
Form1
Caption Vizualizare Color Pallete : Mov
Command1

Caption Adaug Color Pallete : Verde


Command2

Caption terge Color Pallete : Albastru


Command3

Caption Stop Color Pallete : Ro u


Command4

Name M Pozi ionare pe o anumit


M
marc
FontBold .T. -True
Name Contor Contorul înregistr rilor
Contor
Value 1
FontBold .T. -True
Baze de date în Visual FoxPro 59

Se stabilesc metodele (secven ele de cod) folosind pagina Method


din fereastra Properties:

browse

Vizualizare
append blank
[Link]
Adaug [Link]=recno()
delete
pack
terge [Link]
[Link]=recno()
[Link]

Stop
locate for [Link]=Marca
M if found()
[Link]
[Link]=recno()
endif

î
s=[Link]
if s>=1 and s=<reccount()
Contor goto s
[Link]
else
[Link]=recno()
endif
î (goto s)

Se stabile te ordinea de activare a obiectelor prin ac ionarea


butonului Set Tab Order.
Se salveaz i se execut formularul astfel creat.
60 Baze de date în Visual FoxPro

30 S se editeze un formular pentru eviden a unor calificative. În


mediul de date al formularului se vor introduce (în aceast ordine!)
tabelele de date:
a) Tabelul de date [Link], având structura:
Nume Character 30
Nota1 Numeric 2
Nota2 Numeric 2
Media Numeric 5,2
b) Tabelul de date [Link].

Indica ii
Obiectul GrdCalificative poate fi creat în formular prin tragerea
tabelului [Link], cu mouse-ul, din fereastra Data
Environment.
Se stabilesc propriet ile obiectelor active în felul urm tor:

Caption Acordare
Form1 calificative
Caption Adaug
Adaug
FontBold .T. -True
Baze de date în Visual FoxPro 61

Caption Stop
Stop
FontBold .T. -True
FontBold .T. -True Permite
selectarea unei
Combo1 componente din
fi ierul

RowSourceType 2 - Alias
RowSource [Link]+ Afi area listei se
[Link] face pe dou
coloane
FontSize 10 Liniile listei se
adaug prin
ac ionarea
GrdCalificative butonului

Caption Numele persoanei


Alignment 2 – Middle Center La fel i pentru
celelalte câmpuri
Enabled .F. - False La fel pentru
coloana 4

Se stabilesc metodele (secven ele de cod) folosind pagina


Method din fereastra Properties:

repl media with (nota1+nota2)/2

GrdCalificative,
Column2,
Text1
-câmpul rezult din calcul
- la fel pentru

Adaug
-introduce în list marca i numele persoanei

Stop -dezactiveaz (închide formularul)

Se stabile te ordinea de activare a obiectelor prin ac ionarea


butonului Set Tab Order.
Se salveaz i se execut formularul astfel creat.
62 Baze de date în Visual FoxPro

5. Proiectarea meniurilor

Meniurile sunt obiecte de interfa care pun la dispozi ia


utilizatorului o serie de op iuni care permit alegerea i declan area
unor opera ii de prelucrare. Aproape orice interfa grafic con ine,
într-o form sau alta, un meniu. Un meniu apare, de obicei, în partea
superioar a ferestrelor de aplica ii i are o structur standard, iar în
general, orice opera ie care poate fi executat în cadrul unei aplica ii
trebuie s aib un corespondent în meniul acesteia, pentru a putea fi
executat . Utilizatorul î i construie te un model mental al structurii
aplica iei prin simpla examinare a meniurilor i a articolelor de meniu,
meniul reprezentând un mijloc prin care utilizatorul comunic
sistemului ce opera ie s efectueze la un moment dat.

Meniu orizontal Op iune selectat din meniul orizontal


(Meniu Bar)
Op iune selectat din submeniu

Submeniu Vertical
(Submenu)

Un meniu este format, în general, dintr-o bar (sau un


submeniu orizontal) care con ine mai multe op iuni. Fiecare dintre
acestea are asociat un submeniu vertical, care este activat numai la
alegerea op iunii respective. Alegerea de c tre utilizator a op iunilor
meniurilor verticale poate declan a o opera ie de prelucrare sau poate
determina afi area unui nou submeniu vertical.

5.1. Crearea i deschiderea unui meniu

Crearea unui meniu (fi ier cu extensia implicit MNX)


poate fi ini iat prin comanda:
Baze de date în Visual FoxPro 63

MODIFY MENU [<nume meniu>]

sau prin alegerea op iunii File, New din meniu (în acest caz în caseta
New se selecteaz Menu i New file). Din fereastra deschis pe
ecran se alege butonul Menu (meniu), dac se dore te crearea unui
meniu cu bar i submeniuri verticale, respectiv butonul Shortcut
(scurt tur ), dac se dore te construirea unui submeniu vertical,
având subordonate alte meniuri verticale. Astfel va fi lansat în lucru
Constructorul de meniuri.

Activarea (deschiderea) unui meniu care a fost deja


generat se poate realiza prin selectarea acestuia (File, Open, Files of
type: Menu (*.mxx)) sau prin comanda MODIFY MENU.

Sfat
Înainte de a stabili componentele unui meniu i caracteristicile
acestora trebuie precizate o serie de op iuni, cum ar fi pozi ia
fa de meniul sistemului Visual FoxPro. Op iunile generale ale
unui meniu pot fi precizate în fereastra de dialog General
Options (op iuni generale): View, General Options din meniul
Visual FoxPro-ului.

5.2. Definirea componentelor unui meniu

Butoanele din sec iunea Location (loca ie) stabilesc pozi ia


noului meniu fa de meniul sistem:

Replace – înlocuirea meniului sistem;


Append – ad ugare;
Before - plasarea noului meniu înaintea submeniului sistemului
specificat în lista derulant al turat (care este afi at numai la
selectarea butonului);
After – noul meniu va fi plasat dup submeniul specificat.
64 Baze de date în Visual FoxPro

Se pot specifica secven e de cod (Meniu code) la ini ializarea


meniului (crearea sa) i tergerea meniului (eliminarea sa din
memorie). Secven ele de cod respective se specific în ferestre
deschise prin activarea comutatoarelor Setup (ini ializare) i
Cleanup ( tergere), urmat de ac ionarea butonului OK.

În fereastra Meniu Designer sunt enumerate i descrise


op iunile meniului creat i o serie de obiecte de interfa folosite la

manipularea acestor op iuni. La un moment dat, în fereastra de lucru,


este afi at numai grupul de op iuni al unui subsistem (orizontal sau
vertical) al meniului proiectat. O op iune poate fi folosit pentru
accesul la un alt submeniu sau poate fi dedicat declan rii unei
ac iuni. Pentru a reveni la meniul imediat superior se folose te lista
Baze de date în Visual FoxPro 65

derulant Menu level (nivel meniu), în care sunt disponibile toate


meniurile superioare ierarhic meniului curent.

În fereastra Constructorului de meniuri, pe coloane, se specific


caracteristicile op iunilor, astfel:

1. Coloana Prompt cuprinde textele informative ale op iunilor în


care se pot introduce i combina ii speciale, prin intermediul
c rora se ob in diferite efecte:
Combina ia Efect
\< Dac este plasat înaintea unuia dintre caracterele irului
face ca acel caracter s fie folosit ca o tast pentru
selectarea direct a op iunii respective, atunci când
meniul este activat. Caracterul respectiv apare subliniat
în textul op iunii
\ Determin dezactivarea op iunii respective. Aceasta
apare pe ecran în culori terse, iar alegerea sa nu
declan eaz nici o ac iune (chiar dac în cazul s u au fost
specificate opera ii de executat)
\- Trasarea unei bare delimitatoare între mai multe grupuri
de op iuni ale aceluia i submeniu
2. Coloana Result este destinat preciz rii opera iunilor care
vor fi executate la selectarea acestora:
Submenu - activarea unui nou submeniu con inând
propriul grup de op iuni. Coloana a treia va con ine un
buton (Create sau Edit) la a c rei ac ionare se va intra în
editarea submeniului respectiv;
Command - permite lansarea unei comenzi FoxPro
specificat în câmpul de editare din dreapta listei (coloana
a treia);
Procedure - executarea mai multor comenzi grupate
într-o procedur . Butonul din dreapta listei permite
intrarea în editarea procedurii respective.
3. Coloana a treia specific opera iunea de executat la alegerea
op iunii.
4. Coloana Options (op iuni) este utilizat pentru deschiderea
ferestrei de dialog Prompt Options, pentru specificarea unor
parametri suplimentari ai op iunii respective cum ar fi:
66 Baze de date în Visual FoxPro

Shortcut (scurt tur ) - cale direct de alegere. Un


Shortcut con ine:

o Câmpul de editare Key Label (etichet tast ),


pentru a indica faptul c op iunea poate fi aleas
direct prin utilizarea unei combina ii de taste.
Combina ia de taste dorit este introdus în caseta
Key Label prin ap sarea combina iei de taste
respective.
o Câmpul Key Text (text tast ) este un text
suplimentar ce poate fi ata at op iunii. În mod
implicit Visual FoxPro repet tastele de comand
rapid din caseta Key Label în caseta Key Text, dar
acesta poate fi modificat (de exemplu combina ia
CTRL+L poate fi modificat în ^L).
Skip For (s rit când...) - permite impunerea unei
condi ii prin care s se controleze accesul la o op iune. În
acest câmp este introdus o expresie logic . Dac
valoarea ei este adev rat, atunci op iunea va fi
dezactivat , deci nu va fi disponibila pentru utilizator (ea
apare cu culori terse, pentru a indica aceast stare).
Dac valoarea expresiei este fals, op iunea va putea fi
aleas de utilizator. De exemplu, pentru ca o op iune s
Baze de date în Visual FoxPro 67

fie accesibil numai dac un fi ier exist pe disc condi ia


introdus poate fi: NOT(FILF(’[Link])).
Message (mesaj) - are ca efect apari ia unui mesaj
explicativ în bara de stare a Visual FoxPro-ului (plasat în
partea inferioar a ferestrei mediului de programare).

5.3. Previzualizarea meniului

Este recomandabil ca, în faza de editare a unui meniu, s se


fac afi area de prob a acestuia, chiar dac el nu a fost salvat sau
programul corespunz tor nu a fost înc generat. Acest procedeu se
nume te previzualizare. La previzualizare, alegerea unei op iuni a
meniului nu este înso it de execu ia comenzii corespunz toare, ci
doar de afi area acesteia. Previzualizarea meniului în curs de editare
se realizeaz prin ac ionarea butonului de meniuri sau utilizând
meniul principal al sistemului: Menu, Preview. În starea de
previzualizare, meniul sistemului este înlocuit de meniul în curs de
editare, iar pe ecran este afi at o fereastr care indic op iunea
selectat din acest meniu.

5.4. Generarea i rularea meniurilor

Un meniu editat poate fi salvat ca un fi ier cu extensia implicit


.MNX. Pentru a putea folosi meniul, trebuie generat un program la a
c rui rulare meniul s fie activat. Aceast opera ie poate fi realizat
din mediul Visual FoxPro: Menu, Generate... În fereastra deschis pe
ecran se precizeaz numele fi ierului ce va fi generat:

În mod implicit, acesta are acela i nume cu cel al fi ierului în


care este memorat meniul, dar extensia .MPR.
O dat generat meniul, acesta poate fi rulat printr-o comand
68 Baze de date în Visual FoxPro

DO. Deoarece comanda DO presupune extensia implicit PRG (de la


programe), este necesar specificarea extensiei .MPR:
DO <meniu>.MPR
Observa ie

Revenirea la meniul standard al mediului de programare Visual


FoxPro se realizeaz prin comanda:
SET SYSMENU TO DEFAULT

Aplica ie
S se editeze un meniu pentru crearea i modificarea
structurii unui fi ier cât i pentru editarea con inutului lui:

Indica ii
Se lanseaz Menu Designer.
Se editeaz op iunile meniului principal.

Op iunea Stop are asociat urm toarea procedur :


Procedure
close all
set sysmenu to default
Se editeaz op iunea Fisier din meniu.

Se previzualizeaz , se genereaz i se ruleaz meniul creat.


Baze de date în Visual FoxPro 69

6. Generarea rapoartelor

Raportul reprezint un set de informa ii, constituite pe baza


datelor introduse anterior în bazele de date, care urmeaz a fi tip rit
la imprimant sau afi at pe display-ul calculatorului. Definirea unui
raport se realizeaz , ca i în cazul formularelor, prin utilizarea
tehnologiei POO (Programare Orientat Obiect) care permite
definirea i modificare propriet ilor obiectelor introduse în raport.
Componenta Visual FoxPro-ului care permite crearea i
modificarea rapoartelor precum i generarea secven ei de cod
necesare pentru execu ia acestora este Report Designer.

6.1. Crearea i deschiderea unui raport

Crearea unui raport (fi ier cu extensia implicit .FRX)


poate fi ini iat prin comanda:
CREATE REPORT [< nume raport>]

sau prin alegerea op iunii File, New din meniu (în acest caz în caseta
New se selecteaz Report i New file).

Activarea (deschiderea) unui raport se poate realiza prin


meniu (File, Open, Files of type: Report (*.frx)) sau prin comanda:
MODIFY REPORT < nume raport>
Observa ie
Prin lansarea Constructorului de rapoarte, în fereastra
70 Baze de date în Visual FoxPro

Report Designer, meniul principal va include op iunea Report


care con ine op iuni referitoare la diferite opera ii.

6.2. Imprimarea i afi area rapoartelor

Un raport este un fi ier în care sunt memorate elementele sale


precum i caracteristicile acestora. Imprimarea (Print) unui raport
poate fi realizat în unul din urm toarele moduri:
din meniul principal (Report, Run Report),

prin ac ionarea butonului sau a butonului din linia


de instrumente,
prin comanda:
REPORT FORM <nume raport> TO PRINTER [PROMPT]
(clauza PROMPT este folosit pentru specificarea parametrilor
de tip rire)
Pentru afi area sau previzualizarea (Preview) pe ecran se
poate utiliza:
butonul din linia de instrumente standard,
comanda:
REPORT FORM <nume raport> PREVIEW

Vizualizarea informa iilor din raport se realizeaz utilizând bara


utilitar de mai jos:

Pagina anterioar Pagina urm toare

Tip rire

Prima pagin Ultima pagin Închidere afi are


Selectare pagin Scala de afi are

Observa ie
Se poate ob ine trimiterea raportului spre un fi ier (în loc de
imprimant ) cu ajutorul clauzei TO FILE a comenzii REPORT
FORM:
REPORT FORM <nume raport> TO FILE <fi ier> [ASCII]
Baze de date în Visual FoxPro 71

Clauza ASCII determin modul de scriere în fi ier: în prezen a


clauzei formatul fi ierului va fi text, iar în absen a acesteia formatul
va fi unul specific imprimantei (informa iile se depoziteaz în fi ierul
respectiv, exact cum s-ar trimite la imprimant ).

6.3. Constructorul de rapoarte

Report Designer – fereastra principal care con ine obiectele


raportului.
Data Environment – mediul de date al raportului, fereastra
pentru precizarea tabelelor de date care vor fi deschise automat în
momentul rul rii raportului.
Barele utilitare
o Report Designer Toolbar - bara de butoane standard a
raportului:

Data Grouping
Color Palette Toolbar

Layout Toolbar

Data Environment Report Controls

Butoanele din aceast bar de instrumente permit


deschiderea/închiderea ferestrelor: Data Environment, Data Grouping
(gruparea datelor) sau a barelor de lucru:
o Report Control Toolbar – butoanele de control;
o Color Palette Toolbar – stabilirea atributelor de culoare;
o Layout Toolbar – alinierea obiectelor în formular,
suprapunerea obiectelor, etc.

Sfat
Lucra i cu barele de instrumente asociate Constructorului de
rapoarte. Dac acestea nu sunt afi ate utiliza i meniul: View,
Toolbars
72 Baze de date în Visual FoxPro

O dat pornit Constructorul de rapoarte, pe ecran este afi at


fereastra de editarea a raportului.

Un raport este constituit din benzi care nu redau exact ceea ce


va fi în raportul final, dar codific modul în care se determin ceea ce
se afi eaz în raport. Un raport poate con ine urm toarele benzi:

Detail (detalii) – genereaz rândurile de detalii (con inutul de


baz al raportului). Pentru un raport care preia datele dintr-o
tabel , banda de detalii a raportului ar putea corespunde
înregistr rilor tabelei;
Title (titlu) – include o zon care se afi eaz o singur dat , pe
prima pe pagin a raportului. Aceast band con ine de obicei
titlul raportului i eventual, capul de tabel, dac acesta nu
trebuie repetat pe fiecare pagin în parte);
Summary (rezumat) - specific o zon care este afi at pe
ultima pagin a raportului, la sfâr it, o singur dat ;
Page Header (antet de pagin ) - genereaz textul care va fi
afi at în partea superioar a fiec rei pagini a raportului;
Page Footer (subsol de pagin ) - genereaz con inutul p r ii
inferioare a fiec rei pagini a raportului;
Group Header n (antetul grupului de nivel n) i Group Footer
Baze de date în Visual FoxPro 73

n (subsolul grupului de nivel n) - genereaz în raportul final


mai multe grupuri, în func ie de ni te valori numite chei de
grupare, putându-se preciza con inutul benzii antet de grup,
respectiv subsol de grup;

Un raport con ine cel pu in trei benzi: antetul de pagin ,


detaliile i subsolul de pagin . Dac se dore te inhibarea afi rii lor,
trebuie reduse la dimensiunea zero (chiar dac apar în fereastra
raportului, nu genereaz nimic în raportul final). Benzile de titlu i de
concluzii sunt afi ate op ional, afi area lor putând fi validat sau
invalidat prin meniu: Report, Title/Summary.
Fiecare dintre aceste dou benzi are asociat un comutator, New
page (pagin nou ), la activarea c ruia banda corespunz toare va
începe pe pagin nou :

Mediul de date al raportului

Un raport preia date din una sau mai multe tabele i le


aranjeaz în pagin . Deci la construirea raportului este necesar
specificarea tabelelor surs . Mediul de date al unui raport se
configureaz în fereastra mediului de date deschis prin meniu: View,
Data Environment sau prin ac ionarea butonului corespunz tor din
bara de instrumente standard a raportului. O dat deschis aceast
fereastr , la meniul sistemului este ad ugat un nou submeniu, numit
DataEnvironment, care con ine op iuni referitoare la configurarea
mediului de date.
74 Baze de date în Visual FoxPro

Fontul implicit al raportului

La construirea unui raport, trebuie stabilit ca font implicit cel


care predomin printre obiectele raportului, pentru celelalte obiecte
fontul urmând a fi specificat explicit. Fiec rui obiect nou definit în
raport îi va fi atribuit fontul implicit al raportului, care poate fi
schimbat ulterior.

Stabilirea fontului implicit al raportului se face prin meniu:


Report, Default Font, iar caracteristicile fontului sunt specificate în
caseta de dialog deschis pe ecran.

Tipuri de obiecte incluse în rapoarte

Editarea unui raport trebuie s înceap prin introducerea unor


obiecte în acesta. Pentru aceasta, se ac ioneaz butonul
corespunz tor din Report Controls Toolbar i se selecteaz obiectul
care va fi inclus în raport:

Label Line Rounded Rectangle

Field Rectangle Picture/OLE


Bound Control

Label – Texte informative.


Textele informative reprezint un ir de caractere de lungime
variabil . Pentru a stabili pozi ia textului informativ se pozi ioneaz
cursorul în punctul dorit din raport, dup care se execut clic cu
mouse-ul. Când se termin introducerea textului, se execut un clic în
afara obiectului nou creat.
Un obiect Label creat poate fi repozi ionat, prin tragere cu
ajutorul mouse-ului, pe suprafa a raportului. Se pot efectua i trageri
dintr-o band în alta, nu numai în cadrul aceleia i benzi.
Fontul folosit la afi area textului este stabilit în ferestrea Font,
Baze de date în Visual FoxPro 75

care se deschide prin meniu: Format, Font. Astfel, pot fi


specificate toate caracteristicile fontului: setul caractere (Font),
dimensiunea (Size), stilul (Font style), culoarea (Color), etc.

Field – Câmpuri.
Câmpurile reprezint elementele variabile ale unui raport,
putând genera în raportul final mai multe valori, valori care vor fi
determinate de sursa de date precizat : o variabil a raportului, o
expresie de calcul, un câmp al unui tabel de date. Caracteristicile
legate de fontul în care se realizeaz afi area valorii din câmp se
stabilesc la fel ca pentru obiectele de tip Label.
Definirea caracteristicilor unui obiect de tip Field se realizeaz în
fereastra de dialog Report Expression (deschis prin dublu clic pe
obiect).
Pozi ia câmpului (Field position) relativ la banda din raport în
care este definit poate fi: Float (pozi ie variabil , în func ie de
obiectele definite deasupra lui), Fix relative to top of band (pozi ie
fix relativ la marginea superioar a benzii), Fix relative to bottom of
band (pozi ie fix relativ la latura inferioar a benzii).
În caseta Expression se înscrie expresia care va furniza
valoarea ce trebuie afi at . De multe ori, aceast expresie este un
simplu câmp al unei tabele surs sau o variabil de lucru.
76 Baze de date în Visual FoxPro

Formatul de afi are al câmpului (caseta Format) reprezint un


ir de caractere (macheta de formatare). Acest format se poate stabili

i în mod interactiv, prin ac ionarea butonului din dreapta casetei,


care determin deschiderea ferestrei Format.
Asupra valorilor asociate obiectelor Field se pot aplica diferite
func ii pentru a ob ine unele informa ii sintetice: suma (Sum), media
aritmetic (Average), valoarea maxim i minim (Highest, Lowest),
devia ia standard (Standard deviation), varian a (Variance). Func ia
care se aplic asupra unui câmp al unui raport este precizat în
fereastra de dialog Calculate Field, deschis prin ac ionarea
butonului Calculations:

Obiecte semigrafice i grafice.


În cadrul unui raport pot fi desenate linii, chenare sau pot fi
introduse imagini. În leg tur cu aceste obiecte pot fi precizate
anumite caracteristici cum ar fi Pen (peni ) – Format Pen, Fill
(umplere) – Format Fill, etc.
Baze de date în Visual FoxPro 77

Aplica ie

10 S se creeze tabelulul de date, [Link]

având structura:
Denumirea mijlocului fix DENUMIRE C 30
Valoarea de inventar VALINV N 10
Valoarea amortizat VALAMOR N 10

20 S se genereze, pe baza tabelului de date definit anterior


urm torul raport:

Indica ii
Se lanseaz Constructorul de rapoarte.
În mediul de date al raportului se introduce tabelul de date definit
anterior.
Se includ în raport obiectele necesare i anume:
o În banda Page Header:
textele informative (denumirea raportului, capul de
tabel),
elementele semigrafice (linii, chenare),
câmpul care furnizeaz data calendaristic .
78 Baze de date în Visual FoxPro

o În banda Detail se trag, cu mouse-ul, din mediul de date


al raportului, câmpurile: denumire, valinv, valamor.
o În banda Summary se introduc câmpurile valinv,
valamor. Pentru ca acestea s afi eze valori totalizatoare
se execut câte un dublu clic pe ele pentru a deschide
fereastra Report Expresion. Aici, se ac ioneaz butonul
Calculations i se selecteaz func ia Sum.

30 S se previzualizeze i s se salveze raportul editat.

7. Crearea i editarea proiectelor

Proiectul reprezint un fi ier cu extensia implicit .PJX care


permite gruparea într-o form unitar a componentelor unui sistem
informatic cum ar fi baze de date, tabele, programe, formulare,
meniuri, rapoarte, interog ri etc., pentru a ine eviden a acestora.
Proiectarea unei aplica ii înseamn , în general, crearea unui fi ier
proiect la care sunt ad ugate pe rând componentele sale. Mediul de
programare Visual FoxPro permite ca toate opera iile care se
efectueaz asupra elementului unui proiect s poat fi declan ate din
Baze de date în Visual FoxPro 79

interiorul proiectului, prin intermediul resursei numit Gestionar de


proiecte.

Prin generarea proiectelor se creeaz posibilitatea desf ur rii


unor serii de opera ii care permit:
o actualizarea automat a proiectului, atunci când între forma
surs i cea compilat se constat desincroniz ri;
o crearea fi ierelor de aplica ii i a programelor executabile.

7.1. Crearea i deschiderea unui proiect

Crearea sau deschiderea unui proiect este declan at prin


comanda:

MODIFY PROJECT [< nume proiect>]

sau prin alegerea op iunii File, New din meniu (în acest caz în caseta
New se selecteaz Project i New file). Astfel este deschis fereastra
Gestionarului de proiecte:
80 Baze de date în Visual FoxPro

Fereastra include o list cu elementele componente ale


proiectului, grupate pe categorii (aceste categorii apar i în paginile
alternative ale ferestrei):

Categoria Tipul elementului

- baze de date
- tabele izolate
- interog ri

- formulare
- rapoarte
- etichete

- programe
- biblioteci API
- aplica ii
Baze de date în Visual FoxPro 81

- meniuri
- fi iere text
- alte tipuri de
fi iere

7.2. Editarea proiectelor

Editarea proiectelor este realizat cu ajutorul grupului de


butoane din partea dreapt a ferestrei Project Manager. Astfel, dup
selectarea din categoria sa a tipului elementului se ac ioneaz unul
din butoanele:
o New - ad ugarea unui element nou la proiect (va fi pornit
Constructorul asociat tipului de element specificat).
o Add - dac elementul este deja creat i trebuie doar ad ugat la
proiect. Din fereastra de dialog deschis pe ecran se selecteaz
fi ierul corespunz tor.
o Modify - editarea (modificarea) unui element al proiectului (din
Gestionarul de proiecte se porne te direct Constructorul asociat
unui anumit tip de element).
o Run - rularea unui element (program, formular, meniu etc.).
o Remove - eliminarea unui element din proiect din lista
Gestionarului de proiecte (înl turarea unui element dintr-un
proiect nu înseamn i tergerea fizic a acestuia de pe disc, ci
doar tergerea indicatorului corespunz tor din tabela
proiectului).
o Build (construire) - compilarea componentelor prin stabilirea
unor op iuni:

Compilarea elementelor unui proiect are ca efect crearea a


dou tipuri de fi iere:
fi iere de tip aplica ie care pot fi rulate direct, sub
controlul mediului de programare (Build Application);
fi iere executabile independent de mediul Visual FoxPro
(Build Executable).
82 Baze de date în Visual FoxPro

Vor fi compilate componentele noi sau cele care au suferit


modific ri de la ultima lor compilare. Pot fi recompilare toate
componentele proiectului, atunci când se activeaz comutatorul
Recompile All Files din sec iunea Options.

7.3. Generarea fi ierelor aplica ie

Aplica iile reprezint o forma a proiectului, generat într-un


singur fi ier, de tip aplica ie, care poate fi executat direct de sistem
i care con ine programele, formularele, rapoartele i celelalte
elemente ale proiectului. Acest fi ier are extensia implicit .APP.

Stabilirea fi ierelor modificabile

Din punctul de vedere al incorpor rii efective în fi ierul


aplica ie, elementele unui proiect se împart în dou grupe:
o fi iere incluse (elemente care fac parte din proiect i sunt
incluse în fi ierul aplica ie);
o fi iere excluse (elemente care fac parte din proiect, dar nu
sunt incluse în fi ierul aplica ie).

Fi ierele excluse au în stânga numelor lor simbolul :


Baze de date în Visual FoxPro 83

Marcarea unui fi ier ca „exclus” („inclus”) se realizeaz prin


meniu: Project, Exclude (Include).

Fi ierele incluse în proiect sunt asamblate într-un singur fi ier


aplica ie. Dup generarea proiectului, fi ierele marcate ca „incluse”
sunt protejate la scriere. Unele fi iere care fac parte dintr-un proiect,
cum ar fi tabelele, pot fi modificate de c tre de utilizator. În acest
caz, fi ierele trebuie ad ugate la proiect, dar vor fi marcate ca
„excluse”. Fi ierele excluse sunt parte a proiectului, dar ele nu sunt
compilate în fi ierul aplica ie, a a încât se pot actualiza la utilizare.

Observa ie
În mod implicit, tabelele sunt marcate ca excluse, deoarece
Visual FoxPro presupune c acestea vor fi modificate în cadrul
aplica iei. Ca regul general , elementele unui proiect care au
ca rezultat generarea de cod (formulare, rapoarte, interog ri,
meniuri i programe) trebuie incluse în fi ierul aplica ie, pe
când fi ierele de date trebuie excluse. Stabilirea fi ierelor
incluse, respectiv excluse, se realizeaz pe baza cerin elor
aplica iei. De pild , o tabel care cuprinde informa ii de sistem
importante sau informa ii folosite pentru c utare pot fi incluse
în fi ierul aplica ie pentru a le proteja împotriva modific rilor
neavenite. Invers, un fi ier raport (.frx) poate fi exclus pentru a
permite modificarea lui dinamic în timpul rul rii.
84 Baze de date în Visual FoxPro

Punctul de pornire al aplica iei

Înainte de executarea unei aplica ii trebuie stabilit fi ierul


principal al acesteia, adic acea component care va fi lansat atunci
când se execut comanda de rulare a aplica iei. Stabilirea fi ierului
principal (program, formular, meniu) se face prin selectarea acestuia
din lista Gestionarului de proiecte i alegerea op iunii Set Main a
meniului Project. În list , programul principal va fi afi at cu caractere
aldine:

Observa ie
Fi ierul desemnat ca fi ier principal al aplica iei este marcat ca
parte a proiectului, astfel c dup compilarea aplica iei el va fi
protejat la scriere (read-only). Într-un proiect nu poate exista
decât un singur fi ier principal.

Rularea unei aplica ii

O aplica ie poate fi rulat dac este activat comutatorul Run


After Build din fereastra Build Options sau prin comanda Do (în acest
caz este necesar precizarea explicit a extensiei fi ierului):

DO <nume aplica ie>.APP

7.4. Generarea fi ierelor executabile

Prin facilitatea de construire a programelor executabile se


ob ine o independen a programelor fa de mediul Visual FoxPro i
distribuirea lor independent . Generarea unui fi ier executabil (Build
Baze de date în Visual FoxPro 85

Executable) pe baza unui proiect se face la fel ca în cazul aplica iei,


fiind necesar construirea proiectului corespunz tor în care trebuie
introduse toate elementele acestuia (fi ierele incluse i excluse,
fi ierul principal).
Un fi ier executabil (cu extensia .EXE) poate fi rulat
independent de mediul Visual FoxPro, fiind totu i necesare o serie de
biblioteci de proceduri ale sistemului, acesta func ionând în cooperare
cu dou biblioteci de leg turi dinamice - [Link] ([Link] în
Visual FoxPro 5) i [Link] - care trebuie asociate aplica iei
pentru a oferi un mediu Visual FoxPro complet i coerent.

Controlul ciclului de evenimente

Controlul ciclului de evenimente se refer la prelucrarea


evenimentelor generate de utilizator, cum ar fi clicurile de mouse i
ap s rile de taste i este realizat prin comenzile:

READ EVENTS i CLEAR EVENTS

Plasarea corect a comenzii READ EVENTS în cadrul fi ierului


principal prezint importan , deoarece prelucrarea datelor în fi ierul
principal este oprit din momentul execut rii comenzii READ EVENTS
pân la lansarea unei comenzi CLEAR EVENTS. Astfel se poate lansa
READ EVENTS ca ultim comand într-o procedur de ini ializare,
executat dup ce mediul de dezvoltare a fost ini ializat i interfa a cu
utilizatorul a fost afi at . Dac nu se include comanda READ EVENTS,
dup rulare, aplica ia va returna controlul sistemului de operare
(aplica ia va fi rulat corect din fereastra Command a mediului de
dezvoltare, în schimb, dac ea va fi lansat independent de mediul
Visual FoxPro, aplica ia va ap rea pentru scurt timp, apoi va disp rea
de pe ecran). De asemenea, aplica ia trebuie s ofere o modalitate de
a încheia ciclul de evenimente.
Comanda CLEAR EVENTS suspend prelucrarea evenimentelor
de c tre Visual FoxPro i cedeaz controlul c tre programul care a
lansat comanda READ EVENTS ce a declan at ciclul de evenimente.
86 Baze de date în Visual FoxPro

Sfaturi
Include i comanda READ EVENTS în fi ierul principal. Dac
acesta este
o un formular: în metoda Activate Event;
o un meniu: în procedura Cleanup (meniu: View, General
Options ).
Asigura i-v c interfa a are un mecanism (cum ar fi un
buton Exit sau o comand de meniu) pentru a lansa
comanda CLEAR EVENTS.

Rularea unui fi ier executabil

Un fi ier .EXE poate fi rulat dac este activat comutatorul Run


After Build din fereastra Build Options sau prin comanda Do:
DO <nume aplica ie>.EXE

Aplica ie

10 S se editeze un proiect, pentru eviden a studen ilor înscri i


la o facultate care s includ :
a) fi ierul [Link] cu structura:

Num r legitima ie LEG N3


Numele candidatului NUME C 15
Nota proba 1 N1 N 5,2
Nota proba 2 N2 N 5,2
Media Media N 5,2
b) urm torul meniu (marcat ca fi ier principal):

c) un formular, pentru actualizarea tabelului de date (op iunea


Fisier, Actualizare);
Baze de date în Visual FoxPro 87

d) un raport (Report), pentru listarea tabelului de date


(op iunea Fisier, Listare);
e) O interogarea (Query), pentru afi area, în ordine
descresc toarea, a notelor ob inute la proba 1 (op iunea Note,
Note proba 1);
f) O interogarea, pentru afi area, în ordine descresc toarea, a
notelor ob inute la proba 2 (op iunea Note, Note proba 2);
g) O interogare pentru afi area descendent a mediilor
candida ilor admi i (op iunea Note, Media);

20 S se genereze i s se ruleze fi ierul aplica ie.


Indica ie
Se va include comanda SET SYSMENU TO DEFAULT în procedura
ata at op iunii

30 S se genereze i s se ruleze fi ierul executabil.


Indica ii
a) Se va include comanda READ EVENTS în procedura
Cleanup asociat meniului (View, General Options ).
b) Se va include comanda CLEAR EVENTS în procedura ata at
op iunii

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