Sunteți pe pagina 1din 21

Curs 14. FOXPRO 2.6 DOS pag.

1
10.4. Baze de date (dbf)
10.4.1. Exemplu de problem rezolvat n FoxPro
Model: agenda de telefon;
Problee de re!ol"at:
a# $%starea tuturor persoanelor d%n l%st& 'n ord%ne alfabet%(&;
b# )f%*area nu&rulu% de telefon al une% persoane+ spe(%f%(,nd nuele a(este%a;
(# $%starea persoanelor de la o l%ter& anue;
Model matematic:
Crearea stru(tur%% de 'naga!%nare a datelor.
problea a# - ordonarea (res(&toare dup& (,pul .ue *% pentru a(ela*% nue ordonarea
alfabet%(& dup& (,pul Prenue;
problea b# - sele(/%a *% af%*area 'nreg%str&r%% pentru (are "aloarea d%n (,pur%le .ue *% Prenue
(orespunde (u "alor%le (&utate.
Problea (# - sele(/%a persoanelor pentru (are pr%ul (ara(ter d%n "aloarea (,pulu% .ue
(orespunde (u (ara(terul (&utat.
Rezolvarea problemei n FoxPro
Crearea stru(tur%% tabele%
)01.D).D2F
A G E N D A . D B F
. u e
3 C 1 4 #
P r e n u e
3 C 1 4 #
5 e l
3 C 1 2 #
F%g. 14
F%g. 16
pag.2 Curs 14. FOXPRO 2.6 DOS
Se a(/%onea!& se("en/a FileNe!ataba"e#$. 6n fereastra %tr&ct&re se %ntrodu(e stru(tura
ba!e% de date 3F%g.16#+ def%n%ndu7se:
n&mele f%e(&ru% (,p - (oloana Name+ se %ntro(u(e de la tastatur& dup& (are se a(/%onea!& 1nter;
tip&l c'mp&l&i - (oloana ()pe; pr%n a(/%onare 1nter sau (l%(8 se des(9%de o l%st& as(uns&+ de unde
pr%n s&ge/% d%re(/%onale *% 1nter sau drag : drop se sele(te!& t%pul (,pulu%. 6n (a!ul de fa/&
toate (,pur%le sunt de t%p (9ara(ter 3*# ;
dimen"i&nea c'mp&l&i - (oloana +idt, 3nua% pentru t%pul nuer%( are sens (oloana !ec+ unde
se spe(%f%(& nu&rul de !e(%ale# se %ntrodu(e de la tastatur& dup& (are se a(/%onea!& 1nter.
Se a(/%onea!& ;Ctrl71nter; sau (l%(8 pe de(lan*atorul %pl%(%t O< (eea (e deter%n& des(9%derea
ferestre% .ae t9e ne= database 3F%g.1>#. 6n (aseta te?t d%n partea de @os a ferestre% se %ntrodu(e
nuele ba!e% de date a (&re% stru(tur& a fost (reat& anter%or. 1ste suf%(%ent& %ntrodu(erea nuelu%
e?tens%a f%%nd %pl%(%t&. Dup& a(/%onarea ACtrl71nter; sau (l%(8 pe de(lan*atorul %pl%(%t O< se
des(9%de o fereastr& de d%alog 3F%g. 1B#
Da(& se r&spunde (u C se 'n(9e%e (rearea
stru(tur%% tabele% )01.D). D2F dup& (are se
des(9%de fereastra )PP1.D+ 3F%g. 1D# 'n (are se
%ntrodu( de la tastatur& "alor% pentru (,pur%le
.ue+ Prenue+ 5el.
En a(east& fereastr&+ pe &sura %ntrodu(er%% (on/%nutulu% (,pur%lor pentru o 'nreg%strare se
a(/%onea!& 1nter. Dup& (opletarea une% 'nreg%str&r% 3datele pentru o persoan&# pr%n a(/%onarea 1nter
se tre(e la 'nreg%strarea ur&toare. 6nreg%str&r%le sunt
separate de o l%n%e or%!ontal&.
En odul )PP1.D se adaug& o 'nreg%strare "%d& la sf,r*%tul tabele% 3dbf#+ ar(at& pr%n s%bolul
;; pentru f%e(are (,p.
Deplasarea de la un (,p la altul se real%!ea!& pr%n a(/%onarea 5ab+ a tastelor d%re(/%onale +
sau sele(tare pr%n (l%(8. En a(east& fereastr& sunt "alab%le regul%le de ed%tare a te?tulu% pre(u *%
opera/%%le de an%pulare a ferestrelor.
F%g.1>
F%g. 1B
F%g. 1D
Curs 14. FOXPRO 2.6 DOS pag.F
Pr%n a(/%onarea A*trl-.nd; fereastra )PP1.D se 'n(9%de (u sal"area 'nreg%str&r%lor ad&ugate
'n tabel&. Pr%n a(/%onarea ."c. sau a butonulu% *lo"e al ferestre%+ fereastra se 'n(9%de nefiind "alvat/
&ltima ac0i&ne (are poate f%:
od%f%(area "alor%% unu% (,p+
%ntrodu(erea "alor%% pentru un (,p+
ad&ugarea une% no% 'nreg%str&r%.
!ac/ "e r/"p&nde c& N (rearea stru(tur%% tabele% )01.D). D2F se 'n(9e%e+ tabela
ne(on/%n,nd date.
Pentru a folos% o ba!& de date a(easta trebu%e des(9%s& 3% se alo(& autoat o !on& de lu(ru#.
Dup& ut%l%!are ba!a de date se 'n(9%de.
#b". Dup& (rearea stru(tur%% une% tabele+ f%e (& au fost %ntroduse date f%e (& nu+ tabela r&,ne des(9%s&
'n !ona de lu(ru (urent& p,n& la des(9%derea une% alte tabele 'n a(eea*% !on& de lu(ru. 6n(9%derea
tabele% d%n !ona de lu(ru (urent& se real%!ea!& pr%n (oanda 1%. f&r& paraetr%%+ %ntrodus& de la
tastatur& 'n fereastra Coand.
!e"c,iderea tabelei 23.N!2.!BF. 3Da(& a(easta a fost 'n(9%s&#. Se a(/%onea!& se("en/a:
File#pen!ataba"e. D%n l%sta derulant& se sele(tea!& nuele tabele% 3)01.D).D2F# apo% se
a(/%onea!& de(lan*atorul %pl%(%t #pen.
4ntrod&cerea 5 modificarea datelor 'n tabela
)01.D).D2F. 7 se poate real%!a 'n fereastra
BR#+%.5*62N3.. Pentru des(9%derea ferestre%
2ROGS1 se a(/%onea!& se("en/a !ataba"eBro"e. En
bara en%u SHste apare la l%%ta st,ng& op/%unea bar&
Bro"e. Da(& ult%a a(/%une de "%!ual%!are s7a real%!at 'n
fereastr& CI).01+ fereastra 2ROGS1 apare (a F%g. 1D.
En (a! (ontrar fereastra 2ROGS1 este de fora pre!entat&
'n F%g. 2J. Coutarea odulu% de "%!ual%!are
2ro=seKC9ange se real%!ea!& a(/%on,nd se("en/a
Bro"eBro"e 5 *,an7e. 6n fereastra BR#+%.5*62N3. sunt a(t%"e ur&toarele
(ob%na/%% de taste:
8*trl -F109 a?%%!area ferestre% pe tot e(ranul
8*trl -N9 ad&ugarea une% no% 'nreg%str&r% 3s%%lar& (u )PP1.D#
8*trl-(9 *tergerea log%(& a une% 'nreg%str&r%. Ltergerea f%!%(& 3def%n%t%"&# se real%!ea!&
pr%n (oanda P2*$ 'n fereastra Coand.
C,pur%le sunt separate de o l%n%e "ert%(al&. 6nreg%strarea (urent& este ar(at& pr%ntr7o band&
3MEones(uN# %ar 'nreg%str&r%le ar(ate pentru *tergere 3MMure*anN# pre!%nt& 'n e?tre%tatea st,ng& un
ar(a@ 3bul%n&#
Deplasarea de la un (,p la altul se real%!ea!& pr%n a(/%onarea 5ab sau pr%n a(/%onarea tastelor
d%re(/%onale + ; deplasarea de la o 'nreg%strare la alta se real%!ea!& pr%n a(/%onarea tastelor
d%re(/%onale + sau sele(tare pr%n (l%(8. En a(east& fereastr& sunt "alab%le regul%le de ed%tare a te?tulu%
pre(u *% opera/%%le de an%pulare a ferestrelor.
Pr%n a(/%onarea A*trl-.nd; fereastra BR#+%.5*62N3. se 'n(9%de (u sal"area
'nreg%str&r%lor ad&ugate 'n tabel&. Pr%n a(/%onarea ."c. sau a butonulu% *lo"e al ferestre%+ fereastra se
'n(9%de nefiind "alvat/ &ltima ac0i&ne.
Re!ol"area %nterog&r%lor ba!e% de date+ de la pun(tele a#+ b#+ (# real%!ea!& (u a@utorul
generatorulu% de f%ltre OP1RC.
F%g. 2J
pag.4 Curs 14. FOXPRO 2.6 DOS
a# Pr%n a(/%onarea se("en/e% FileNe:&er)#$ se des(9%de fereastra RO21
1
7 P.5E5$1D
Se(/%unea !ataba"e": apare nuele tabele% 3tabelelor# d%n (are se "or e?trage datele pentru %nterogare;
Se(/%unea #&tp&t Field": apar nuele (,pur%lor (e "or f% af%*ate 'n re!ultatul %nterog&r%%. C,pur%le
d%n a(est& se(/%une pot f% sele(tate d%n fereastra des(9%s& pr%n a(/%onarea (outatorulu% Q;< %elect
Field" =
Coutatorul #rder B): pr%n a(/%onarea a(estu% (outator se des(9%de fereastra d%n F%g. 22+ d%n (are se
sele(tea!& (r%ter%%le de ordonare a datelor la af%*area re!ultatulu% %nterog&r%% dup& unul sau a% ulte
(,pur%+ 'n ord%ne (res(&toare sau des(res(&toare.
1
RO21 - Relat%onal OuerH 2H 1?aple 3Enterog&r% rela/%onale pr%n %ntered%ul unu% e?eplu#
F%g. 21
Curs 14. FOXPRO 2.6 DOS pag.4
C,pur%le d%n se(/%unea Sele(ted
Output "or (onst%tu% (r%ter%% de
ordonare+ da(& pr%n sele(tare *%
a(/%onarea de(lan*atorulu% Mo"e "or f%
tre(ute 'n se(/%unea Order%ng Cr%ter%a
3de unde pot f% *terse a(/%onarea pr%n
a(/%onarea de(lan*atorulu% Reo"e#.
Ord%nea (res(&toare K des(res(&toare se
poate sele(ta pr%n a(/%onarea
butoanelor rad%o )s(end%ng K
Des(end%ng d%n se(/%unea Order
Opt%ons. Cr%ter%ul este "al%dat pr%n
a(/%onarea de(lan*atorulu% %pl%(%t
#$. Se renun/& pr%n a(/%onarea
de(lan*atorulu% Can(el. 6n e?eplul de
fa/& (,pur%le .ue *% Prenue ale
tabele% )genda "or (onst%tu% (r%ter%% de
ordonare 3(res(&toare#. C,pur%le "or
apare ar(ate (u s&geat& 'n
se(/%unea Output F%elds a ferestre%
RO21 3F%g. 21#.
Pr%n a(/%onarea AADo RuerH;;+ pentru sele(/%a d%n F%g. 2F se "a af%*a re!ultatul 'n fereastra 2ROGS1
(onfor F%g. 2F.
b# Pr%n a(/%onarea se("en/e% FileNe:&er)#$ se des(9%de fereastra RO21 7 P.5E5$1D
F%g. 22
F%g. 2F
F%g. 24
pag.6 Curs 14. FOXPRO 2.6 DOS
1?eplul a(este% %nterog&r% este: "aloarea (,pulu% .ue s& f%e SPopes(uT. Pentru a af%*a o
persoan& anue+ pr%n a(/%onarea taste% 5ab se sele(tea!& se(/%unea F%eld .ae 3!ona de @os a ferestre%
RO21 - F%g. 24#. Pr%n a(/%onarea 1nter apo% a tastelor d%re(/%onale se sele(tea!& (,pul %pl%(at 'n
%nterogare pr%n e?eplu 3.ue#. C,pul sele(tat se "al%dea!& pr%n a(/%onarea 1nter. Sele(/%a poate f%
efe(tuat& *% pr%n (l%(8 apo% drag and drop. )(/%on,nd s%%lar 'n se(/%unea .O5 se sele(tea!& operatorul
de (opara/%e $%8e 3(a *%# . 6n se(/%une 1?aple se %ntrodu(e de la tastatur& nuele persoane% (&utate
3Popes(u#. .u este ne(esar& s(r%erea nuelu% 'ntre apostrofur%+ Fo?Pro %nd%(,nd t%pul "alor%% (onfor
t%pulu% (,pulu% sele(tat+ fapt (e poate f% "%!ual%!at a(/%on,nd de(lan*atorul ASee SO$;. Da(& se
sele(tea!& (outatorul Pp$o nu se fa(e d%st%n(/%e 'ntre l%terele %(% *% a@us(ule pentru %ntrodu(erea
"alor%% de (opara/%e a (,pur%lor sele(tate. )(/%on,nd 'n od analog se poate sele(ta persoana
%nd%(,nd *% "aloarea (,pulu% Prenue. Pr%n a(/%onarea AADo RuerH;;+ pentru sele(/%a d%n F%g. 24 se
"a af%*a re!ultatul 'n fereastra 2ROGS1 (onfor F%g. 24.
(# Pr%n a(/%onarea se("en/e% FileNe:&er)#$ se des(9%de fereastra RO21 7 P.5E5$1D
1?eplul de la pun(tul b# 3)genda..ue $%8e Popes(u# se *terge pr%n a(/%onarea
de(lan*atorulu% AReo"e; aflat 'n partea dreapt& a ferestre% RO21 3F%g. 24#. 6n se(/%unea F%eld .ae
se "a sele(ta op/%unea A1?pres%onU; (eea (e deter%n& des(9%derea ferestre% (onstru(torulu% de
e?pres%%. 3F%g. 26#
F%g. 24
F%g. 26
Curs 14. FOXPRO 2.6 DOS pag.>
6n a(east& fereastr& se "a (onstru% e?pres%a (are "a returna nuele (are 'n(ep (u o anu%t&
l%ter& 3l%tera P#. Pentru a(easta se "a ut%l%!a fun(/%a 3de t%p (ara(ter# $1F5 3Ae?pC;+ Ae?p.;# (u
"alor%le pentru e?eplul de fa/& $1F5 3agenda.nue+1#. 6n partea super%oar& se afl& l%stele as(unse
Mat9+ Str%ng+ $og%(al+ Date (are furn%!ea!& fun(/%% refer%toare la t%pur%le de date de t%p nuer%(+
(ara(ter+ log%(+ dat& (alendar%st%(&. Fun(/%%le se pot sele(ta pr%n 5ab+ 1nter+ s&ge/% d%re(/%onale apo%
"al%dare (u 1nter sau pr%n (l%(8 *% drag and drop. )rguentele fun(/%%lor se sele(tea!& pr%n 5ab *%
"al%dare (u 1nter d%n se(/%un%le F%eld .aes+ Var%ables 3unde apar e"entualele "ar%ab%le def%n%te de
ut%l%!ator#+ sau dublu (l%8. Wona d%n e?pres%e unde "a f% %nserat arguentul apare 'n band& lu%noas&.
1?pres%a se (onstru%e*te 'n !ona de ed%tare aflat& sub l%stele as(unse (u fun(/%%. Se pot ut%l%!a tastatura+
ouse7ul sau pur *% s%plu e?pres%a se %ntrodu(e de la tastatur& l%ter& (u l%ter&. 6n (a!ul e?eplulu% de
fa/& d%n l%sta as(uns& Str%ng se sele(tea!& fun(/%a $1F5+ d%n se(/%unea F%eld .aes se sele(tea!&
arguentul Ae?pC; al fun(/%e% (a f%%nd (,pul .ue+ dup& "%rgula (e separ& arguentele se %ntrodu(e
de la tastatur& 3Ae?p.; X#1. 1?pres%a se "er%f%(& a(/%on,nd de(lan*atorul AVer%fH;. 6n (a!ul 'n (are
e?pres%a este (ore(t& d%n pun(t de "edere s%nta(t%( apare esa@ul M1?press%on %s "al%dN 'n partea
dreapt& sus a ferestre%. Val%darea e?pres%e% *% tre(erea e% 'n fereastra OuerH de %nterogare+ la se(/%unea
F%eld .ae+ se real%!ea!& pr%n a(/%onarea de(lan*atorulu% %pl%(%t AAO<;;. 6n se(/%un%le .O5 *%
1?aple a ferestre% OuerH se "or sele(ta $%8e respe(t%" ed%ta l%tera P. Pr%n a(/%onarea AADo RuerH;;+
pentru sele(/%a a(tual& se "a af%*a re!ultatul 'n fereastra 2ROGS1 (onfor F%g. 2>.
5e&: S& se (ree!e tabela
FE.).Y1.D2F (u (,pur%le .ue+
Prenue+ Sua 3negat%"& pentru
Mdeb%tN *% po!%t%"& pentru M(red%tN#. S&
se ob/%n& ur&toarele %nfora/%%:
l%sta persoanelor deb%toare+
l%sta persoanelor (red%toare+
deb%tul *% (red%tul pentru (,pul Sua.
10.4.2. Crearea unei baze de date(tabele). Strutura unei baze de date
#b". Se "a pre!enta odul de lu(ru as%stat+ pr%n %ntered%ul en%ulu% SHste.
$a (rearea une% ba!e de date se "a /%ne seaa de:
e(ono%a de spa/%u pe d%spo!%t%"ul de eorare+
"%te!a de a((es la datele d%n ba!a de date.
*rearea &nei tabele pentr& memorarea datelor referitoare la elevii &nei cla"e.
F%g. 2>
E L E V I . D B F
. r Z a t
3 C F #
. u e
3 C 1 4 #
P r e n u e
3 C 1 4 #
D a t a Z n
3 D B #
2 u l e t % n
3 C B #
5 e l
3 C D #
) d r e s a
3 M e o #
$ o ( o
3 $ 1 #
O b s
3 M e o #
F%g. 2B
pag.B Curs 14. FOXPRO 2.6 DOS
Pentru (rearea tabele% se a(/%onea!& se("en/a FileNe!ataba"e. Se des(9%de fereastra de
spa(%f%(are a stru(tur%% 3F%g. 2D#.
Wona de spe(%f%(are a
stru(tur%% (on/%ne 4
(oloane:
%. .u are nue. 1ste ut%l%!at& pentru ar(area (,pulu% asupra (&ru%a a(/%onea!& de(lan*ator%%
AEnsert; *% ADelete; 3%nserare K *tergere (,p#. C,pul este ar(at (u un spot de (uloare a%
des(9%s&+ pe banda d%n st,nga nuelu% (,pulu%. Pr%n a(/%onarea ACtrl7;+ ACtrl7; sau drag and
drop+ nu&rul de ord%ne al (,pulu% poate f% od%f%(at.
%%. Name: se %ntrodu(e nuele (,pulu% 3)7W+ Z#.
%%%. ()pe: d%n l%sta as(uns& (e apare la a(/%onarea (l%(8 sau 1nter se sele(tea!& t%pul (,pulu%.
%". +idt,: se spe(%f%(& lung%ea (,pulu% pentru date de t%p C+ .+ F.
". !ec: se spe(%f%(& partea !e(%al& pentru datele de t%p .+ F.
#b". Da(& pe spotul de ar(are a (,pulu% se a(/%onea!& dublu (l%(8 sau Spa(e apar su((es%" *%
(eea (e sen%f%(& %nde?area 3ordonarea# 'nreg%str&r%lor d%n tabel& as(endent respe(t%" des(endent dup&
"aloarea datelor d%n (,pul sele(tat.
6n banda de @os a ferestre% apar date refer%toare la stru(tura tabele%:
F%elds: nu&rul de (,pur%+
$engt9: l&/%ea 'n (ara(tere a tabele%+
)"a%lable: l&/%ea d%spon%b%l& 'n (ara(tere 3a?% 64 4JJX6442J[BJ#
Pr%n a(/%onarea de(lan*atorulu% %pl%(%t O< se des(9%de fereastra de %ntrodu(ere anuelu%
tabele% 3F%g. FJ#.
.uele tabele% se %ntrodu(e 'n !ona
de ed%tare aflat& 'n partea de @os a ferestre%.
6n fereastr& se poate sele(ta lo(a/%a la (are "a
f% sal"at& tabela+ (u nuele spe(%f%(at+ astfel:
$%sta s(uns& Dr%"e: un%tatea de d%s(+
F%g. 2D
F%g. FJ
Curs 14. FOXPRO 2.6 DOS pag.D
D%re(torH: d%re(torul 3dosarul#
De(lan*atorul Q \)ll F%les deter%n& af%*area 'n l%sta derulant& a tuturor f%*%erelor e?%stente la
lo(a/%a spe(%f%(at&.
$a spe(%f%(area nuelu% tabele%+ e?tens%a .D2F este %pl%(%t&. De(lan*atorul %pl%(%t AASa"e;;
deter%n& sal"area tabele% (u paraetr%% spe(%f%(a/% %ar a(/%onarea de(lan*atorulu% ACan(el; deter%n&
abandonarea sal"&r%%. Dup& sa"are apare fereastra de esa@ MEnput data re(ords no= ]N
Da(& se r&spunde AACes;; se de(lan*ea!&
pro(edura de %ntrodu(ere a datelor %ar da(& se
r&spunde A.o; (rearea ba!e% de date se (ons%der&
'n(9e%at&+ datele ur,nd a f% %ntroduse ulter%or.
Crearea ba!e% de date presupune (rearea stru(tur%% nu *% %ntrodu(erea datelor.
10.4.!. "odul de luru u baze de date. #e$%iderea &i n%iderea tabelelor. 'one de
luru.
1tape 'n ut%l%!area ba!elor de date 3tabelelor#:
Des(9%derea ba!e% de date;
1?e(utarea opera/%un%lor asupra ba!e% de date;
6n(9%derea ba!e% de date.
!e"c,iderea tabelelor: Se a(/%onea!& se("en/a File#pen!ataba"e.
D%n fereastra Open 3F%g. F2# se sele(tea!& Pn%tatea 3Dr%"e#+ d%re(torul 3D%re(torH# *% nuele tabele% (e
"a f% des(9%s& 'n !ona de lu(ru (urent&. 6n l%sta as(uns& 5Hpe "a f% spe(%f%(at& op/%unea Database.
De(lan*atoare:
Open 3%pl%(%t#: des(9%de tabela spe(%f%(at&+
.e=: (rea!& o nou& tabel&. Se des(9%de fereastra de spe(%f%(are a stru(tur%% 3F%g. 2D#+
Can(el: abandonea!& des(9%derea tabele%.
Pr%n des(9%derea tabele% se 'n/elege 'n(&r(area 'ntr7o !on& de lu(ru a %nfora/%%lor refer%toare la
tabel&+ spe(%f%(e ba!e% de date d%n (are fa(e parte tabela
2
. 6ntr7o !on& de lu(ru poate f% des(9%s& la un
2
Se rea%nte*te (& o ba!& de date poate (on/%ne una sau a% ulte tabele+ 'preun& (u rela/%%le stab%l%te 'ntre tabele.
F%g. F1
F%g. F2
pag.1J Curs 14. FOXPRO 2.6 DOS
oent dat o s%ngur& tabel&. 1?%st& 224 de !one de lu(ru d%st%n(te 3Fo?Pro 2.6# %dent%f%(ate pr%ntr7un
nu&r de ord%ne de la 1 la 244 sau pentru pr%ele 1J !one de lu(ru+ pr%n l%tere de la ) la ^.
Ferea"tra >ie. Se a(/%onea!& se("en/a +indo>ie Se des(9%de fereastra V%e= 3F%g. FF#.
!eclan?atoare@
8>ie9@ (out& 'n a(tuala fereastr& 3F%g. FF#;
8#n5#ff9@ (out& 'n fereastra de setare a paraetr%lor Fo?Pro e(9%"alent& (u setarea pr%n
(oanda
%.( 8parametr&9 #NA#FF
Setarea se real%!ea!&+ 'n fereastr&+ pr%n a(t%"area (outatoarelor aso(%ate f%e(&ru% paraetru;
F%les: (out& 'n fereastra de spe(%f%(are a:
un%t&/%% de d%s( %pl%(%te pentru opera/%%le de des(9%dereKsal"are f%*%ere 3C:_#+
(&%% de (&utare 3Pat9# pentru opera/%%le de des(9%dereKsal"are f%*%ere+
nuelu% de sal"are alternat%"& a f%*%erelor 3Sa"e asU#+
f%*%erelor de pro(edur% 3subprograe# 'n l%ba@ Fo?Pro+
f%*%erulu% de Ielp 3%pl%(%t FOXI1$P.D2F#+
f%*%erulu% de resurse 3%pl%(%t FOXPS1R.D2F#+
84ntBl9@ (out& 'n fereastra de setare a "alor%lor %nterna/%onale pentru data (alendar%st%(& *%
oneda (urent&;
8Mi"c9@ (out& 'n fereastra de spe(%f%(are a ore% 3S15 C$OC<U#+ a esa@ulu% sonor 3S15 21$$
U#+ a d%alogulu% Fo?Pro - ut%l%!ator 3S15 5)$< U# *% a ouse7ulu% 3S15 MOPS1U#.
#b". S15 5)$< O.`OFF U %pl%(& af%*area d%alogulu% la e?e(u/%a (oen!%lor )PP1.D FROM+
)V1R)01+ C)$CP$)51+ COPC 5O+ COP.5+ D1$151+ E.D1X+ P)C<+ R1E.D1X+ R1P$)C1+
S1$1C5 - SO$+ SOR5+ SPM+ 5O5)$.
F%g. FF
Curs 14. FOXPRO 2.6 DOS pag.11
8%et&p9: (out& 'n fereastra d%n F%g. F4; per%te real%!area unor opera/%% pr%"%toare la ba!a de date
des(9%s& 'n !ona de lu(ru (urent&.
%ec0i&nea %tr&ct&re@
l%sta derulant& af%*ea!& stru(tura tabele%+
de(lan*atorul AMod%fH; des(9%de fereastra de spe(%f%(are a stru(tur%% tabele% 3F%g. 2D#;
%ec0i&nea 4ndexe"
C
@
af%*ea!& fi?ier&l index "impl& a(t%" sau etic,etele de indexare ale fi?ier&l&i index comp&"D
"tr&ct&ral aso(%at ba!e% de date.
%ec0i&nea 4ndex:
de(lan*atorul A)dd...; des(9%de fereastra #pen de unde pr%n sele(/%a nuelu% f%*%erulu%
%nde? *% a(/%onarea de(lan*atorulu% %pl%(%t AAOpen;; se poate des(9%de un f%*%er %nde?
s%plu sau un f%*%er %nde? (opus+ nestru(tural (are "or f% aso(%ate ba!e% de date. 5ot 'n
fereatra #pen a(/%onarea de(lan*atorulu% Ne des(9%de fereastra de d%alog pentru %nde?are
a ba!e% de date
4
.
de(lan*atorul AMod%fH; este a(t%" doar (,nd s7a des(9%s un f%*%er %nde?. )(/%onarea a(estu%a
des(9%de fereastra de d%alog pentru %nde?are a ba!e% de date+ 'n (are se real%!ea!&
od%f%(area f%*%erulu% %nde? af%*at 'n se(/%unea 4ndexe" a ferestre% d%n F%g. F4.
de(lan*atorul AReo"e; este %na(t%" pentru f%*%erul %nde? (opus+ stru(tural. En (a!ul
f%*%erulu% %nde? s%plu a(/%onarea de(lan*atorulu% 'n(9%de a(est f%*%er 3tabela nu a% apare
%nde?at&# f&r& a *terge f%*%erul de pe d%s(. En (a!ul f%*%erelor %nde? (opuse+ nestru(turale
a(/%onarea de(lan*atorulu% des(9%de fereastra de d%alog pentru %nde?are a ba!e% de date+ 'n
(are pr%n a(/%un% spe(%f%(e et%(9eta de %nde?are "a putea f% *tears& 3d%n f%*%erul %nde? *% de pe
d%s(#.
de(lan*atorul ASet order; K A.o order; real%!ea!& sele(tarea et%(9ete% de %nde?are 'n (a!ul
f%*%erelor %nde? (opuse sau a f%*%erulu% %nde? s%plu. 5abela "a apare ordonat& (onfor
et%(9ete% de %nde?are sau a f%*%erulu% de %nde?are sele(tat. F%*%erul sau et%(9eta %nde?
sele(tat& apare ar(at& (u o bul%n& 'n st,nga 'n l%sta d%n se(/%unea Ende?es a ferestre% d%n
F%g. F4. Op/%unea A.o order; deter%n& de!a(t%"area et%(9etelor de %nde?are sau a
f%*%erulu% %nde? s%plu+ astfel 'n(,t tabele apare ne%nde?at& 3neordonat&#.
%ec0i&nea field":
%nd%(& nu&rul de (,pur% *% l&/%ea tabele% 'n (ara(tere+
F
.o/%unea de f%*%er %nde? "a f% tratat& 'n (ap%tolul (ndexarea bazelor de date.
4
Fereastra "a f% pre!entat& 'n (ap%tolul (ndexarea bazelor de date.
F%g. F4
pag.12 Curs 14. FOXPRO 2.6 DOS
(outatorul Q \ Set F%eldsU: a(/%onarea (outatorulu% des(9%de fereastra de sele(tare a
(,pur%lor a((esab%le 3F%g. F4#
6n a(east&
fereastr& (,pur%le
tabele% af%*ate 'n l%sta
Database F%elds pot f%
utate 'n l%sta
(,pur%lor a((esab%le
Sele(ted F%elds *%
%n"ers. Mutarea d%n
Database F%elds 'n
Sele(ted F%elds se
real%!ea!& pr%n
sele(tare (,p *%
a(/%onarea de(lan*atorulu% AMo"e; sau dublu (l%(8 pe nuele (,pulu%. 5oate (,pur%le pot
f% utate pr%n a(/%onarea de(lan*atorulu% A)ll;. Mutarea d%n Sele(ted F%elds 'n Database
F%elds se real%!ea!& pr%n sele(tare (,p *% a(/%onarea de(lan*atorulu% AReo"e; sau dublu
(l%(8 pe nuele (,pulu%. 5oate (,pur%le pot f% utate pr%n a(/%onarea de(lan*atorulu%
AReo"e )ll;. 2a!a de date se sele(tea!& d%n l%sta as(uns& Database. Val%darea sele(/%e% se
real%!ea!& pr%n a(/%onarea de(lan*atorulu% %pl%(%t AAO<;;.
butoanele rad%o 3 # On 3 #Off : a(/%onarea lor "al%dea!& sau %n"al%dea!& a(/%unea
(outatorulu% Q \ Set F%eldsU
(outatorul Q \ F%lterU: a(/%onarea (outatorulu% des(9%de fereastra (onstru(torulu% de
e?pres%% 3F%g. 26# 'n (are se spe(%f%(& o (ond%/%e 'ndepl%n%t& de (,pur%le a((esab%le. C,nd
(outatorul este a(t%"at+ e?pres%a f%ltru apare dreapta (outatorulu%+
(outatorul Q \ ForatU: per%te sele(tarea d%n fereastra Open a f%*%erulu% de forat. C,nd
(outatorul este a(t%"at+ f%*%erul de forat apare dreapta (outatorulu%.
Fereastra d%n F%g. F4 se 'n(9%de pr%n a(/%onarea de(lan*atorulu% %pl%(%t AAO<;;.
8Bro"e9 (out& 'n fereastra 2ROGS1 KCI).01 3F%g. 2J K F%g. 1D# (u apar%/%a op/%un%% en%u
2ro=se 'n en%ul SHste.
8#pen9 (out& 'n fereastra Open pentru des(9%derea une% ba!e de date 'n !ona de lu(ru sele(tat&
'n se(/%unea Gor8 )reas a ferestre% d%n F%g. FF.
8*lo"e9 'n(9%de ba!a de date d%n !ona de lu(ru sele(tat& 'n se(/%unea Gor8 )reas a ferestre% d%n
F%g. FF.
Se(/%unea +orE 2rea" a ferestre% V%e= 3F%g. FF# $%sta derulant& per%te "%!ual%!are (elor 224
de !one de lu(ru pre(u *% nuele e"entualelor ba!e de date des(9%se f%e(are 'ntr7o !on& d%st%n(t&.
)(/%onarea de(lan*atorulu% ARelat%ons;
4
'n fereastra V%e= 3F%g. FF# des(9%de fereastra
(onstru(torulu% de e?pres%% unde se "a spe(%f%(a (,pul 3sau e?pres%a refer%toare la (,pulU# (oun a
tabele% p&r%nte pe ba!a (&ru%a se stab%le*te rela/%a (u ba!a de date f%u. 6n se(/%unea Relat%ons apar s&ge/%
(e %nd%(& rela/%a de la tabela p&r%nte (&tre tabela 3tabelele# f%u. 6n l%sta Gor8 )reas ba!a de date p&r%nte
apare ar(at& 'n dreapta pr%ntr7un dreptung9% lu%nos %ar ba!a de date f%u pre!%nt& 'n st,nga o s&geat&
(e %nd%(& ordonarea K %nde?area 3obl%gator%e# dup& "alor%le (,pulu% (oun. )(/%onarea
4
Ferestrele aferente *% odul de a(/%onare pentru stab%l%rea rela/%%lor 'ntre tabele "or f% pre!entate la (ap%tolul )ela*ionarea
bazelor de date.
F%g. F4
Curs 14. FOXPRO 2.6 DOS pag.1F
de(lan*atorulu% A1 - 5o - ManH; transfor& rela/%a Muna la unaN 'n rela/%e Muna la a% ulteN pr%n
spe(%f%(area 'n fereastra de rela/%onare Muna la a% ulteN des(9%s& pr%n a(/%onarea de(lan*atorulu%.
6n banda de @os a ferestre% V%e= 3F%g. FF# sunt af%*ate nuele *% nu&rul de (,pur% ale ba!e%
de date sele(tate 'n !ona de lu(ru d%n l%sta Gor8 )reas. Fereastra V%e= se 'n(9%de pr%n a(/%onarea 1s(
sau (l%(8 pe butonul de 'n(9%dere al ferestre%.
2lia"&l &nei baze de date
$a des(9%derea une% ba!e de date 'ntr7o !on& de lu(ru+ a(easta pr%e*te autoat sau de la
ut%l%!ator un nue pr%n (are ba!a de date este %dent%f%(at&. )(est nue este alia"&l ba!e% de date.
)l%asul este ut%l%!at pentru:
%dent%f%(area ba!e% de date+
%dent%f%(area !one% de lu(ru 'n (are s7a des(9%s ba!a de date (u al%asul respe(t%"+
%dent%f%(area (,pur%lor ba!e% de date pr%n (onstru(/%a:
8alia"9.8n&meFc'mp9
)l%asul %pl%(%t dat de Fo?Pro este (9%ar nuele ba!e% de date.
1?. Pentru tabela 1$1VE.D2F des(9%s& 'n !ona de lu(ru 1 sau )+ pentru 'nreg%strarea (urent& nuele
poate f% %dent%f%(at pr%ntr7una d%n (onstru(/%%le: a.n&me sau elevi.n&me.
10.4.4. (ntroduerea datelor n tabele
)((esul la datele d%n ba!a de date se real%!ea!& se("en/%al+ la n%"el de 'nreg%strare+ ad%(&:
la un oent dat este a((esab%l& doar 'nreg%strarea (urent&+
nu se poate ad&uga de(,t o 'nreg%strare (oplet& 'n ba!a de date (9%ar da(& a(east&
'nreg%strare este "%d&.
nu se poate *terge sele(t%" de(,t o s%ngur& 'nreg%strare.
2d/&7area datelor@
pr%n a(/%onarea se("en/e% Record 2ppend se des(9%de fereastra de ed%tare 2ppend 3F%g.
1D+ pag. 2#.
pr%n a(/%onarea se("en/e% !ataba"e Bro"e sau +indo >ie Bro"e 'n
fereastra 2ROGS1 K CI).01. 3F%g. 2J+ pag.F#
.ditarea c'mp&rilor memo: at,t 'n fereastra )PP1.D (,t *% 'n fereastra 2ROGS1 K
CI).01 a(/%onarea (ob%na/%e% 8*trl - Pa7e !on9 (,nd este sele(tat un (,p eo sau
a(/%onarea d&bl& clicE pe (,pul eo+ des(9%de o fereastr& de ed%tare a (,pulu% eo 3F%g. F6# (u
nuele def%n%t de (onstru(/%a
F%g. F6
pag.14 Curs 14. FOXPRO 2.6 DOS
Aal%as;. AnueZ(,p;
En a(east& fereastr& se ed%tea!& (on/%nutul (,pulu% eo aseen% ed%t&r%% (on/%nutulu% unu%
f%*%er te?t Fo?Pro
6
. D%n fereastra de ed%tare a (,pulu% eo se %ese+ (u sal"area od%f%(&r%lor
efe(tuate+ pr%n a(/%onarea (ob%na/%e% ACtr71nter; sau (l%(8 pe butonul Close al ferestre% de ed%tare.
Ee*%rea f&r& sal"area od%f%(&r%lor se real%!ea!& a(/%on,nd tasta 1s(.
#b". (on/%nutul te?t al (,pur%lor eo ale une% ba!e de date este eorat 'ntr7un f%*%er aso(%at ba!e%
de date+ (u a(ela*% nue *% (u e?tens%a G.FP(. En (,pul eo d%n tabel& G.!BF 3de lung%e Memo
10# e?%st& refer%n/a spre (on/%nutul te?t aso(%at (,pulu% eo d%n f%*%erul G.FP(.
5e&: S& se (oplete!e (u date tabela 1$1VE.D2F. Ver%f%(a/% refer%rea (,pur%lor pr%n
Aal%as;.AnueZ(,p; astfel:
sele(ta/% o 'nreg%strare 'n fereastra 2ROGS1
'n(9%de/% fereastra 2ROGS1
af%*a/% (on/%nutul unu% (,p ut%l%!,nd (oen!%le H ... %2I *% J
10.4.+. ,izualizarea on*inutului unei baze de date. Generatorul de filtre, RQBE.
Fereastra BR#+%. 5 *62N3.: !ataba"eBro"e+ +indo>ie sau (oanda Bro"e
Pr%n drag and drop pe l%n%a de dear(a/%e 'ntre (,pur% se real%!ea!& red%ens%onarea
ferestrelor aso(%ate f%e(&ru% (,p+ e"entual (,pul poate f% as(uns. )(east& opera/%e n& od%f%(&
stru(tura tabele% 3lung%ea (,pur%lor#. Pr%n (l%(8 pe nuele (,pulu% apo% drag and drop la noua
po!%/%e+ (,pur%le pot f% utate st,nga7dreapta pentru o "%!ual%!are opt%&.
3enerator&l de filtre R:B. 3Ralat%onal OuerH bH 1?aple#
Fereastra RO21 se des(9%de pr%n a(/%onarea FileNe:&er)#$. En (a!ul 'n (are 'n
!ona de lu(ru (urent& nu este des(9%s& o ba!& de date+ se des(9%de autoat fereastra Open pentru
'n(&r(area une% ba!e de date asupra (&re%a s& a(/%one!e generatorul de f%ltre. Da(& se r&spunde pr%n
ACan(el; nu se "a des(9%de o ba!& de date+ a(esta ur,nd a f% 'n(&r(at& d%n fereastra RO21.
1(ranul RO21 f&r& ba!e de date des(9%se se pre!%nt& (a 'n F%g. F>
Pentru e?epl%f%(area lu(rulu% 'n fereastra RO21 se "a (rea o nou& tabel&: .O51.D2F (u
ur&toarea stru(tur&:
.RZM)5 CF
M)51RE) C14
D)5) DB
6
Curs 12 Fo?Pro+ pag. 11
F%g. F>
Curs 14. FOXPRO 2.6 DOS pag.14
CODZ5REM CF
.O5) .2
5abela "a (on/%ne+ teoret%(+ notele ele"%lor une% (lase+ ob/%nute la ater%%le d%n planul de
*(olar%!are+ pe par(ursul a F tr%estre. Data de a(ordare a note% este sto(at& 'n (,pul Data.
Pentru e?epl%f%(are se (opletea!& tabela (u notele 3suf%(%ent 2 note# ob/%nute de tre% ele"%
3%dent%f%(a/% pr%n .rZatr# la F ater%%+ pe tre% tr%estre. De(% sunt suf%(%ente 2 3note# ? F 3ele"%# ? F
3ater%%# ? F 3tr%estre# X 44 3'nreg%str&r%#. Se "or %ntrodu(e "alor% ale .rZatr astfel 'n(,t a(este
"alor% s& e?%ste *% 'n tabela 1$1VE.D2F+ e?%stent& 'n a(ela*% d%re(tor 3*% (opletat& (u date+ (el pu/%n
pentru F ele"% (&rora l% se a(ord& notele#.
Fereastra RO21 (on/%ne 4 se(/%un%:
Se(/%unea !ataba"e":
l%sta (on/%ne tabelele des(9%se 'n !one de lu(ru d%st%n(te+
de(lan*atorul A)dd;: a(/%onarea a(estu%a des(9%de fereastra #pen pentru des(9%derea tabe7
lelor+
de(lan*atorul AClear; : pr%n sele(/%a nuelu% une% tabele d%n l%st& *% a(/%onarea
de(lan*atorulu%+ tabela este *tears& d%n l%st& dup& a(/%onarea de(lan*atorulu% AACes;; d%n
fereastra de aten/%onare.
.x. En fereastra RO21 se des(9%de tabela 1$1VE.D2F. $a des(9%derea (ele% de7a doua tabele
.O51.D2F 3(,pul .rZat e"te com&n (elor dou& tabele+ a",nd a(ela*% t%p *% lung%e# se des(9%de
autoat fereastra de d%alog R:B. Koin *ondition X (ond%/%e de leg&tur& 'n fereastr& RO21 3F%g. FB#.
D%n l%sta as(uns& aflat& 'n partea
st,ng&+ pr%n a(/%onarea taste% 1nter+
sele(tare *% "al%darea sau (l%(8 apo% drag
and drop se pre(%!ea!& (,pul (oun al
(elor dou& tabele. S%%lar se pro(edea!&
'n l%sta as(uns& d%n partea st,ng&.
Operatorul e?pres%e% 3(ond%/%e%# se
sele(tea!& d%n l%sta as(uns& d%n (entrul
ferestre%. .egarea operatorulu% se ob/%ne pr%n a(/%onarea (outatorulu% .O5. )(/%onarea (outatorulu%
Egnore Ppper K $o=er Case deter%n& ned%feren/%erea (ara(terelor %(% de a@us(ule+ pentru "alor%le
(,pulu% (oun (elor dou& tabele. Pr%n a(/%onarea de(lan*atorulu% %pl%(%t AAO<;; (ontrolul re"%ne
'n fereastra RO21+ unde 'n se(/%unea %nfer%oar& apare af%*at& e?pres%a (ond%/%e% de rela/%onare.
)stfel datele (elor dou& tabele aflate 'n leg&tur& pot f% "%!ual%!ate s%ultan+ (oresponden/a f%%nd
as%gurat& de egal%tatea "alor%lor d%n (,pul (oun+ 'n (a!ul de fa/& 3a(ela*% nu&r atr%(ol#. Des%gur+
nu este ne(esar& des(9%derea a dou& tabele pentru ob/%nerea une% %nterog&r% 3"%!ual%!&r%#+ una f%%nd
suf%(%ent&. S7au ales totu*% dou& tabele+ pentru e?epl%f%(area (oplet& a fa(%l%t&/%lor ferestre% RO21.
Se(/%unea #&tp&t Field":
F%g. FB
pag.16 Curs 14. FOXPRO 2.6 DOS
l%sta (on/%ne nuele
(,pur%lor d%n
stru(tura tabelelor *%
nuele (,pur%lor
(al(ulate 3ob/%nute
pr%n apl%(area unor
fun(/%% (,pur%lor
tabele%# (are "or
apare af%*ate 'n ura
e?e(u/%e% %nterog&r%%.
de(lan*atorul Q \ %elect Field"...: des(9%de fereastra de sele(tare a (,pur%lor af%*ate 3F%g.
FD#. C,pur%le (al(ulate pot f% aduse 'n l%sta (,pur%lor af%*ate a(/%on,nd de(lan*atorul
AFu(t%ons; d%n se(/%unea Fun(t%ons K 1?press%ons. Fun(/%% d%spon%b%le: COP.5+ SPM+
ME.+ M)X+ )V1R)01.
Pr%n a(/%onarea taste% 1nter se des(9%de l%sta as(uns& de unde se sele(tea!& fun(/%a. )(/%on,nd tasta
1nter pe fun(/%e se des(9%de o l%st& as(uns& d%n (are se sele(tea!& (,pul (are (on/%ne "alor% asupra
(&rora se "a apl%(a fun(/%a. Sunt a(t%"e doar (,pur%le (orespun!&toare (a t%p fun(/%e% sele(tate. Se
"al%dea!& (u 1nter. Pr,nd a(eea*% (ale sele(/%a se poate real%!a pr%n drag and drop. Mutarea (,pulu%
(al(ulat 'n l%sta Sele(ted Output se real%!ea!& pr%n a(/%onarea de(lan*atorulu% AMo"e;. Fereastra de
sele(tare a (,pur%lor af%*ate se 'n(9%de pr%n a(/%onarea de(lan*atorulu% %pl%(%t AAO<;;. )stfel
(,pul (al(ulat apare 'n l%sta Output F%eds a ferestre% RO21.
.x. Pentru (al(ularea ed%e% generale pe an+ pe 'ntreaga (las&+ la toate ater%%le+ se "a sele(ta doar
(,pul de af%*are (al(ulat+ 2>3 (N#(2)+ ob/%nut pr%n apl%(area fun(/%e% 2>3()+ (,pulu% Note.nota;
(elelalte (,pur% sunt ne(on(ludente sau nu au sens+ deoare(e ed%a general& se (al(ulea!& pe 'ntreg
anul *(olar *% se ob/%ne (a ed%e ar%tet%(& a tuturor notelor ob/%nute la toate ater%%le+ pe toate
tr%estrele *% pentru to/% ele"%%.
de(lan*atorul Q \ #rder B)... deter%n& des(9%derea une% ferestre de d%alog. Pr%n sele(tarea
(,pulu% af%*at 3l%sta Sele(ted Output#+ a(/%onarea unu%a d%ntre butoanele rad%o 3 #
)s(end%ng K 3 # Des(end%ng+ (are dau ord%nea af%*&r%%+ *% a de(lan*atorulu% AMo"e; se
poate stab%l% un (r%ter%u de ordonare 3l%sta Order%ng Cr%ter%a# a (,pur%lor+ 'n fun(/%e de
"alor%le (,pur%lor sele(tate *% de ord%nea 3(res(&toare K des(res(&toare# sele(tat&. Cr%ter%ul
de ordonare este "al%dat pr%n a(/%onarea de(lan*atorulu% %pl%(%t AAO<;;.
de(lan*atorul Q \ 3ro&p b)... deter%n& des(9%derea une% ferestre de d%alog. Pr%n sele(tarea
unu% (,p d%n l%sta Database F%elds *% a(/%onarea de(lan*atorulu% AMo"e; (,pul tre(e
'n l%sta 0roup bH F%elds. Se ob/%ne astfel o grupare a datelor dup& (,pul 3(,pur%le#
sele(tate. 0ruparea este "al%dat& pr%n a(/%onarea de(lan*atorulu% %pl%(%t AAO<;;.
.x. )leg,nd af%*area (,pulu% (al(ulat )V0 3.O51..O5)# + 'n fun(/%e de sele(tarea (,pur%lor de
grupare se ob/%n re!ultatele %nterog&r%%:
3ro&p b) Field" #&tp&t Field" Rez&ltat&l intero7/rii
.ote..rZat .ue+ )V03.ota# ed%a general& a f%e(&ru% ele"
.ote.Mater%a Mater%a+ )V03.ota# ed%a general& 3pe (las&# la f%e(are ater%e
.ote.CodZtr% CodZtr%+ )V03.ota# ed%a general& 3pe (las&# pe f%e(are tr%estru
.ote..rZat+
.ote.CodZtr%
.ue+ CodZtr%+
)V03.ota#
ed%a tr%estr%al& a f%e(&ru% ele"
F%g. FD
Curs 14. FOXPRO 2.6 DOS pag.1>
.ote..rZat+
.ote.Mater%a
.ue+ Mater%a+
)V03.ota#
ed%a anual& a f%e(&ru% ele"+ la f%e(are ater%e
U U
.ote..rZat+
.ote.Mater%a+
.ote.CodZtr%
.ue+ Mater%a+
CodZtr%+ )V03.ota#
ed%a f%e(&ru% ele"+ la f%e(are ater%e pe f%e(are
tr%estru
U U
de(lan*atorul Q \ 6avin7U
Per%te af%*area sele(t%"& a c'mp&rilor
d%n l%sta Output F%elds+ ordonate sau neordonate
3Q \ Order 2HU#+ grupate sau nu 3Q \ 0roup 2HU#.
)f%*area sele(t%"& 'nsean& af%*area doar a
'nreg%str&r%lor (are 'ndepl%nes( (ond%/%a
3(ond%/%%le # stab%l%te 'n fereastra d%n F%g. 4J. Pr%n
a(/%onarea de(lan*atorulu% Q \ Ia"%ng se des(9%de
fereastra Sear(9 for 0roups Ia"%ngU 3F%g. 4J#.
6n pr%a se(/%une a ferestre% se (onstru%e*te e?pres%a (ond%/%e% (are trebu%e 'ndepl%n%t& de
f%e(are 'nreg%strare (e "a f% af%*at&. 1?pres%a este de t%p log%( *% poate f% s%pl& sau (opus& 3a% ulte
e?pres%% log%(e 'ntre (are sunt apl%(a/% operator%% log%(% ).D *% OR#.
Membr&l "t'n7 al expre"iei:
Sele(t,nd (oloana Field" se des(9%d su((es%" ferestre d%n (are se sele(tea!&:
(,pur% (al(ulate 3fun(/%% apl%(ate "alor%lor (,pur%lor#+
(,pur% ale tabelelor des(9%se 'n fereastra RO21+
e?pres%% a",nd a operan!% "ar%ab%le+ (,pur% sau fun(/%% apl%(ate (,pur%lor. Pr%n a(/%onarea
de(lan*atorulu% Ae?press%onU; se des(9%de fereastra (onstru(torulu% de e?pres%% 3pag. 4+
F%g. 26#
Sele(/%a 3operandul# d%n (oloana F%elds (onst%tu%e ebrul st,ng al e?pres%e%.
Membr&l drept al expre"iei@ se ed%tea!& 'n (oloana 1?aple unde se %ntrodu(e de la tastatur&
"aloarea (are trebu%e s& o a%b& operandul d%n ebrul st,ng al (ond%/%e%+ pentru (a 'nreg%strarea s& f%e
af%*at&.
#perator&l expre"iei lo7ice@ se sele(tea!& d%n l%sta as(uns& d%n (oloana .O5 a ferestre% d%n
F%g. 4J. Operatorul poate f%:
$%8e M(a *% UN
1?a(tlH $%8e Me?a(t (a *%UN
F%g. 41
F%g. 4J
pag.1B Curs 14. FOXPRO 2.6 DOS
$ess t9an Ma% %( de(,t UN
More t9an Ma% are de(,t UN
2et=een M'ntre 2 "alor%+ %n(lus%" "alor%leN
En M'n l%sta te?t UN
)(/%onarea (outatorulu% L < N#( deter%n& negarea operatorulu% e?pres%e% log%(e s%ple;
(oloana 1p5Mo: sele(tarea (outatorulu% deter%n& ned%feren/%erea 'ntre (ara(terele %(% *% a@us(ule.
Pentru a (rea o expre"ie comp&"/ se a(/%onea!&:
apl%(area operatorulu% ).D:
se (onstru%e*te pr%a e?pres%e log%(& s%pl&+
se a(/%onea!& de(lan*atorul AEnsert;
se (onstru%e*te a doua e?pres%e log%(& s%pl&+
U
)stfel+ 'ntre e?pres%%le s%ple se (ons%der& operatorul ).D.
apl%(area operatorulu% OR:
se (onstru%e*te pr%a e?pres%e log%(& s%pl&+
se a(/%onea!& de(lan*atorul AOr;
se (onstru%e*te a doua e?pres%e log%(& s%pl&+
U
)stfel+ 'ntre e?pres%%le s%ple se (ons%der& operatorul OR.
.x. Pentru a af%*a ed%%le la toate ater%%le nua% pe tr%estrul E *% nua% pentru ele"ul Eones(u se "a
a(/%ona:
3ro&p b) Field" #&tp&t Field" Rez&ltat&l intero7/rii
.ote..rZat+
.ote.Mater%a+
.ote.CodZtr%
.ue+ Mater%a+
CodZtr%+ )V03.ota#
ed%a f%e(&ru% ele"+ la f%e(are ater%e pe f%e(are
tr%estru
Pentru a f%ltra doar 'nreg%str&r%le 3ed%a notelor# (orespun!&toare ele"ulu% Eones(u la toate
ater%%le+ pe tr%estrul E 'n fereastra Sear(9 for 0roup Ia"%ngU se "a (onstru% (ond%/%a log%(&
(opus& d%n 2 e?pres%% s%ple 'ntre (are e?%st& operatorul ).D+ (onfor F%g. 42 + (eea (e 'nsean&
af%*area 'nreg%str&r%lor pentru .ue a &i MEones(uN -( CodZ5r% a &i MEN.
6n ura a(/%on&r%% de(lan*atorulu%
AADo OuerH;; se af%*ea!& re!ultatul
%nterog&r%%+ (onfor F%g. 4F.
Se(/%unea #&tp&t (o
F%g. 42
F%g. 4F
Curs 14. FOXPRO 2.6 DOS pag.1D
)(/%onarea (l%(8 sau 1nter asupra l%ste% as(unse 2ro=se ofer& pos%b%l%tatea sele(t&r%% ed%ulu%
de af%*are a re!ultatulu% %nterog&r%% pr%n e?eplu. )stfel sunt d%spon%b%le op/%un%le:
2ro=se: re!ultatele sunt af%*ate 'n fereastr& BR#+%. Read OnlH 3nu pot f% efe(tuate
ad&ug&r%+ od%f%(&r%#+
ReportK$abel: re!ultatele sunt af%*ate 'ntr7un format nou sau e?%stent de etic,et/ sau
raport
>
+
5ableKD2F: re!ultatele sunt af%*ate 'ntr7o tabel/ "a& baz/ de date (are poate f% des(9%s&+
od%f%(at&+ sal"at&+
Cursor: re!ultatele sunt af%*ate 'ntr7o baz/ de date temporar/+
0rap9: re!ultatele sunt af%*ate 'n for& 7rafic/ pentru s%steele unde este %nstalat&
(oponenta Fo?Pro : Fox3rap,.
Pentru op/%unea ReportK$abel a l%ste% as(unse este d%spon%b%l (outatorul Q \ Opt%onsU.
)(/%onarea a(estu% (outator ofer& pos%b%l%tatea sele(t&r%% unor op/%un% (u pr%"%re la foratarea *%
af%*area datelor 'n rapoarte K et%(9ete+ op/%un% (e "or f% pre!entate 'n (ap%tolele ur&toare.
Se(/%unea 8%ee %:M9 88!o :&er)99
8%ee %:M9 7 a(/%onarea de(lan*atorulu% per%te "%!ual%!area 'n f%*%er read7onlH a (oen!%%
S1$1C5 'n l%ba@ SO$+ (oand& (are real%!ea!& sele(tarea 'nreg%str&r%lor. Da(& a(east& (oand& ar f%
s(r%s& 'ntr7un f%*%er progra Fo?Pro+ e?e(u/%a a(estu% progra ar real%!a+ %dent%( (u generatorul de
f%ltre RO21+ sele(/%a (,pur%lor+ "alor%lor *% a 'nreg%str&r%lor d%n ba!ele de date des(9%se 'n !one de
lu(ru d%st%n(te
B
.
#b". pra(t%( 0eneratorul de f%ltre generea!& autoat un f%*%er progra+ (u e?tens%a a.OPR 3:uerH
Progra#+ al (&ru% nue este %pl%(%t+ a(ela*% (u nuele ferestre% RO21 (are l7a generat. F%*%erul
progra poate f%:
des(9%s: se("en/a File#penPro7ram8n&meFpro7ram.:PR9#pen
e?e(utat: se("en/a Pro7ram!o=8n&meFpro7ram.:PR9!o.
.x. Prograul generat de fereastra RO21 (are af%*ea!& re!ultatul d%n F%g. 4F este:
SELECT ELEVI.NUME, NOTE.MATERIA, NOTE.COD_TRIM, AVG(NOTE.NOTA);
FROM ELEVI, NOTE;
WHERE NOTE.NR_MAT = ELEVI.NR_MAT;
GROUP BY NOTE.NR_MAT, NOTE.MATERIA, NOTE.COD_TRIM;
HAVING UPPER(ELEVI.NUME) = "IONESCU";
AND NOTE.COD_TRIM = "1"
AA!o N&er);; a(/%onarea a(estu% de(lan*ator %pl%(%t deter%n& e?e(u/%a %nterog&r%% pr%n
e?eplu. De(lan*area este e(9%"alent& (u (oanda DO AnueZf%*%er.OPR; + d%n fereastra Coand.
Se(/%unea %elect *riteria
6n a(east& se(/%une se (onstru%e*te e?pres%a (ond%/%e% log%(e (are "a f% 'ndepl%n%t& de
'nreg%str&r%le (e "or f% af%*ate (a re!ultat al e?e(u/%e% f%ltrulu%. Operarea 'n "ederea (onstru%r%% e?pres%e%
a fost pre!entat& anter%or 'n sub(ap%tolul 1J.4.1 1?eplu U
%alvarea filtr&l&i: F%ltrul poate f% sal"at+ pentru pr%a dat& sau dup& f%e(are od%f%(are+ da(& la
p&r&s%rea ferestre% RO21 pr%n a(/%onarea 1s( sau (l%(8 pe butonul Close al ferestre% se r&spunde (u Ces
la 'ntrebarea MSa"e (9anges to UN. $a pr%a sal"area se des(9%de fereastra Sa"e (urent do(uent asU
3Curs 12+ pag. D+ F%g. D# unde se "or pre(%!a lo(a/%a *% nuele f%*%erulu% f%ltru a.OPR. 1?tens%a OPR
este %pl%(%t&. )(ela*% efe(t se ob/%ne pr%n a(/%onarea File%ave . )(/%onarea se("en/e% File%ave
a"= per%te (rearea une% dublur% a f%*%erulu% a.OPR 3sal"are sub a(ela*% K alt nue *% K sau la alt&
lo(a/%e#.
>
foratele de af%*are et%(9et& *% raport "or f% pre!entate la (ap%tolele 0eneratorul de eti%ete respe(t%" .eneratorul de
rapoarte.
B
1ste o odal%tate (ood& de a depr%nde etode de prograare 'n Fo?Pro
pag.2J Curs 14. FOXPRO 2.6 DOS
#b".
$a des(9%derea ferestre% RO21 pr%n a(/%onarea se("en/e% FileNe:&er) 'n bara
en%u SHste apare op/%unea bar& RO21 unde se reg&ses( eleentele de (oand& *%
(ontrol pre!ente *% 'n (ele 4 se(/%un% ale ferestre% RO21. 6n plus apare op/%unea en%u
Coents U. $a sele(tarea op/%un%% se des(9%de fereastra te?t Coents unde se ed%tea!&
de la tastatur& un te?t refer%tor la fereastra RO21 (urent&. Se "al%dea!& (u AAO8;;
$a e?e(u/%a f%ltrulu% de des(9%de autoat 'n alt& !on& de lu(ru f%*%erul teporar (u nuele
RuerH (are 'naga!%nea!& re!ultatul e?e(u/%e% f%ltrulu% 'n fun(/%e de sele(/%a d%n l%sta Output
5o U )(est f%*%er r&,ne des(9%s 'preun& (u tabelele ut%l%!ate de f%ltru+ lu(ru (are poate f%
obser"at 'n fereastra V%e=.
(em/: Pt%l%!,nd ba!ele de date real%!a/% f%ltre (are "or af%*a:
notele ele"%lor (are lo(u%es( pe o strad& anue 31le"%.adres&#+
ed%%le tr%estr%ale la f%e(are ater%e+ ob/%nute de ele"%% e?tern% 31le"%.lo(o#
l%starea ele"%lor (are au ed%a general& a% are de(,t ed%a general& pe (las&.
10.4./. "odi0iarea manual a on*inutului unei tabele
Modificarea man&al/: fereastra 2ROGS1KCI).01
Op/%un% en%u 'n fereastra en%u des(9%s& pr%n a(/%onarea op/%un%% bar& 2ro=se+ des(9%s& odat&
(u fereastra 2ROGS1KCI).01.
3rid #ff 5 #n: af%*ea!& K %n9%b& af%*area l%n%%lor desp&r/%toare ale ferestre%
2ROGS1KCI).01+
Re"ize partition: a(t%"ea!& K de!a(t%"ea!& af%*area ferestre% 2ROGS1 K CI).01 'n 2
part%/%% %ndependente+ f%e(are lu(r,nd (a o fereastr& 2ROGS1 K CI).01 s%pl&+ put,nd
a"ea odur% de af%*are d%fer%te 32ro=se sau C9ange#. F%g. 44
6n F%g. 44+ tabela )01.D).D2F+ 'n part%/%a st,ng& este af%*at& 'n odul
*,an7e %ar 'n part%/%a dreapt& 'n odul Bro"e. $a a(/%onarea op/%un%% Res%!e
Part%t%on+ 'n partea st,nga @os a ferestre% 2ROGS1 apare (l%p%nd o s&geat& 'n dublu
sens: . Pr%n drag and drop pe s&geat& sau a(/%onarea tastelor d%re(/%onale se
poate (rea (ea de7a doua part%/%e. Da(& se a(/%onea!& (u tastatura d%ens%onarea
part%/%e% se 'n(9e%e pr%n a(/%onarea taste% 1nter. Pentru re"en%re se a(/%onea!& op/%unea
Res%!e Part%t%on+ e?e(ut,nd opera/%a %n"ers& de as(undere a une% part%/%% pr%n
red%ens%onare la l&/%ea J. 5re(erea de la o part%/%e la alta se real%!ea!& pr%n
a(/%onarea (ob%na/%e% ACtr7I; sau op/%unea en%u C9ange Part%t%on;
F%g.44
Curs 14. FOXPRO 2.6 DOS pag.21
MinE 5 1nlinE Partition a(/%onarea op/%un%% deter%n& (a part%/%%le s& a%b&
a((ea*% bar& de def%lare "ert%(al& sau bare de def%lare d%fer%te;
%ize Field: red%ens%onarea l&/%%% (,pur%lor (u a@utorul tastelor d%re(/%onale
+ nua% 'n odul 2ro=se. 5re(erea de la un (,p la altul se real%!ea!& pr%n
a(/%onarea taste% 5ab.
Move Field: utarea (,pur%lor (u a@utorul tastelor d%re(/%onale ;
2ppend Record 3Ctrl7.#: adaug& o nou& 'nreg%strare 3"%d&#;
(o7le !elete 3Ctrl75#: a(t%"ea!& K de!a(t%"ea!& ar(a@ul pentru *tergere log%(& a
'nreg%str&r%% (urente. Ltergerea f%!%(& se real%!ea!& (u (oanda P)C<.
Fereastra 2ROGS1KCI).01 se p&r&se*te (u ACtrl71nd; pentru sal"area od%f%(&r%lor sau
1s( f&r& sal"area ult%e% od%f%(&r% 3od%f%(area unu% (,p al une% 'nreg%str&r%#.
*1PR4N%
10.4. Baze de date (dbf) 1
10.4.1. Exemplu de problem rezolvat n FoxPro 1
10.4.2. Crearea unei baze de date(tabele). Strutura unei baze de date 6
10.4.!. "odul de luru u baze de date. #e$%iderea &i n%iderea tabelelor.
'one de luru.
B
10.4.4. (ntroduerea datelor n tabele 11
10.4.+. ,izualizarea on*inutului unei baze de date. Generatorul de filtre,
RQBE.
12
10.4./. "odi0iarea manual a on*inutului unei tabele 1>