Documente Academic
Documente Profesional
Documente Cultură
Visual Fox Pro Initiere
Visual Fox Pro Initiere
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Analiznd datele din tabela SALARIATI se poate aprecia c: - valorile de pe prima coloan au semnificaia de Marc Salariat - valorile de pe a 2-a coloan au semnificaia de Nume Salariat, - valorile de pe a 3-a coloan au semnificaia de Prenume Salariat, - valorile de pe a 4-a coloan au semnificaia de Locul de Naterii, - valorile de pe a 5-a coloan au seminificaia de Data Naterii, - valorile de pe a 6-a coloan au semnificaia de Funcia,
2
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z valorile de pe a 7-a coloan au semnificaia de Salar, valorile de pe a 8-a coloan au semnificaia de Spor, valorile de pe ultima coloan au semnificaia de Cod Servici
Semnificaia valorilor de pe o linie se exprim prin noiunea (conceptul) de Cmp. Cmpul este cea mai mica unitate informaional, identificabil i accesibil, utilizat n structurarea (organizarea) datelor. Mulimea cmpurilor definesc structura tabelei, iar valorile care formeaz o linie reprezint valorile cmpurilor din structura tabelei. n general un cmp este caracterizat prin: - nume (prin care se identific i se face referire), - tipul cmpului, prin care se definete natura valorilor care se pot memora n cmp (numeric, ir de caractere, dat calendaristic, etc.) - lungime (dimensiune) cmp, care definete numrul maxim de caractere a celei mai mari valori a cmpului, Identificarea liniilor Modelul relaional permite identificarea liniilor dintr-o tabel prin conceptual de cheie primar (index primar). Cheia primar este format dintr-un cmp sau grup de cmpuri a crui valori identific n mod unic liniile ntr-o tabel. Nu sunt admise dou linii n tabel pentru care cmpul sau grupul de cmpuri declarat cheie primar (index primar) s aib aceeai valoare. Organizarea tabelelor Pentru a organiza o colecie de date sub forma unei tabele, mai nti trebuie s definim structura tabelei. A defini structura a unei tabele nseamn a specifica, cel puin: - numele tabelei, - cmpurile tabelei, iar pentru fiecare cmp s se specifice: . numele cmpului, . tipul cmpului, . lungimea cmpului, n aceste condiii structura tabelei SALARIATI ar putea fi definit n felul urmtor: Nume tabel: SALARIATI Coloane: CODS N,3 NUMES C,10 PRENS C,15 LOCNAST C,12 DATAN D FUNCTIA C,10 SALAR N,5 SPOR N,4 CODSERV N,2 Dup descrierea structurii unei tabele, tabela poate fi populat cu date (adic se pot introduce linii n tabel).
Atenie. Facei diferena dintre stuctura unei tabele i datele tabelei (aa cum facei
deosebirea dintre proiectul unei case i casa propriu-zis).
3
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z Asupra datelor unei tabele se pot efectua urmtoarele operaii: - introducerea (memorarea) de noi linii, - tergerea anumitor linii, - modificarea liniilor, adic modificarea valorilor anumitor cmpuri de pe anumite linii, - citirea (regsirea, localizarea) anumitor linii din tabel n vederea prelucrrii datelor din aceste linii. Asupra structurii unei tabele se pot face urmatoarele operaii: - introducerea de noi cmpuri, - tergerea unor cmpuri, - modificarea caracteristicilor anumitor cmpuri,
Atenie. UneleSGD-urii (ex. Visual FOXPRO) folosesc termenul de relaie, probabil mai
sugestiv, n locul termenilor de coresponden sau dependen. n acest curs vor fi utilizai termenii de coresponde sau dependen pentru a se evita confuzia cu termenul de relaie utilizat de E.F.Cod pentru tabel. Dac am utiliza termenul de relaie am fi tentai, uneori, s utilizm expresia relaia dintre relaii.
Figura 1 Diagrama dependenei a dou tabele Dac oricrei linii din tabela T1 i corespunde o singur linie din tabela T2 atunci corespondena dintre cele doua tabele este tipul 1:1 (unu la unu) (Figura 2.A).
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z Dac exist linii din tabela T1 crora le pot corespunde mai multe linii din tabela T2 atunci corespondena dintre cele doua tabele este de tipul 1:N (unu la mai muli sau 1 la N) (Figura 2.B).
Definirea dependenelor
Maniera cea utilizat pentru definirea dependenelor dintre dou tabele este aceea a definirii unui cmp de legtur. Cmpul de legtur este format din una sau mai multe cmpuri, care apar n structura ambelor tabele cu aceeai semnificaie sau semnificaii echivalente n lumea real. Unei linii printe din tabela printe i va corespunde linia sau liniile fiu din tabela copil, pentru care cmpul de legtur din liniile copil are aceeai valoare cu cmpul de legtur din linia printe. ntre tabele unei baze de date relaional pot fi definite dou categorii de dependene: - dependene permanente, - dependene temporare. Dependenele permanente Dependenele permanente au o durat mare de existen, chiar att timp ct exist baza de date, dac se dorete. Rolul dependenelor permanente este acela de a defini condiii de integritate referenial, care au la baz principiul c "ntr-o tabel copil nu trebuie s existe nici o linie care s nu corespund unei linii din tabela printe" (nu sunt admii copii fr prini, adic copii orfani). Condiia de integritate referenial permite existena de liniii n tabela printe crora nu le corespund nici o linie n tebela copil. n general, n aceast situaie se atribuie ca linie copil o linie vid. Dependenele temporare Dependenele temporare, dup cum sugereaz i denumirea sunt cu caracter temporar. O dependen temporar este definit pentru a simplifica prelucrrile care implic date din mai multe tabele dependente. Dependenele temporare pot de tipul printe/copil de tipul1:1 sau 1:N. n cazul dependenelor de tipul printe/copil ntre dou tabele A i B pot s apar situaii de genul: - o prelucrare poate s cear ca tabela A s fie printe i tabela B s fie copil, - iar alt prelucrare s cear tabela B printe i tabel A copil. Observaie n cazul mai multor tabele dependente ntre ele, indiferent de tipul dependenei, pot s apar urmtoarele situaii:
5
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z o tabel s fie tat la mai multe tabele fiu, o tabel s fie tabel fiu pentru mai multe tabele tat, o tabel s fie fiu n raport cu o tabel i s fie tat n raport cu alt tabel.
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z tears. Dac unei linii parinte din tabela parinte i corespunde cel puin o linie copil n tabela copil, atunci poate fi ntreprins una din urmtoarele aciuni: . linia din tabela parinte nu se terge, . tergerea liniei parinte este nsoit de tergerea liniilor copil corespunztoare din tabela copil: are loc fenomenul de tergerea n cascad. - Modificarea valorilor cmpului de legtur din tabela tat. Dac unei linii parinte din tabela parinte nu-i corespunde nici o linie copil n tabela copil, atunci valoarea cmpului de legtur din linia printe poate fi modificat. Dac unei linii printe din tabela parinte i corespunde cel puin o linie copil n tabela copil, atunci poate exista una din urmtoarele situaii: . nu se poate modifica valoarea cmpului de legtur din linia parinte, . modificarea valorii cmpului de legtur din linia parinte este nsoit de modificarea cu aceeai valoare a cmpului de legtur din liniile copil corespunztoare din tabela copil: are loc fenomenul de modificare n cascad. - Modificarea valorilor cmpului de legtur din tabela copil. La modificarea valorii cmpului de legtur dintr-o linie a tabelei copil poate s apar una din situaiile: . dac noua valoare a cmpuluii de legtur nu se regsete printre valorile cmpului de legtur din liniile tabelei printe, atunci noua valoare nu este acceptat, . dac noua valoare a cmpului de legtur se regsete printre valorile cmpului de legtur din liniile tabelei printe, atunci noua valoare este acceptat: deci linia copil i schimb linia printe.
Indexarea tabelelor
Citirea liniiilor dintr-o tabel se poate face n dou moduri: - n mod secvenial, - n mod direct. n citirea secvenial pentru a citi linia cu numrul k trebuie citite cele k-1 linii anterioare, adic altfel zis, liniile din tabel se citesc una dupa alta n ordinea n care ele sunt memorate n tabel. Prin citirea n mod direct o linie este localizat direct, fr a mai fi nevoie de citirea altor linii din tabel. Citirea n mod direct se bazeaz pe aa numitele "criterii de selecie", care pot fi: - numrul sau identificatorul intern al liniei n cadrul tabelei, - valorile unei coloane sau a unui grup de coloane din structura tabelei. Citirea n acces direct pe baza valorilor unui coloane sau a unui grup de coloane se face prin tehnica indexrii. n ce const tehnica indexarii? O coloan sau un grup de coloane din structura tabelei sunt declarate "coloan index", prescuratat "index" sau "coloan cheie", prescurtat "cheie". Pe baza coloanei index, se creaz o "tabel index", care este format din "nregistrri index". n general, o nregistrare index este format din dou valori: valoarea indexului (coloanei index) i valoarea care reprezint numrul sau identificatorul intern (adresa liniei) al liniei corespunztoare din tabel (Figura. 4).
7
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
<valoare index>
<id. linie>
Figura 4 nregistrarea index n tabela index, nregistrrile index sunt memorate n ordinea cresctoare sau descresctoare a valorilor indexului (vezi exemplul din Figura 5). Citirea n acces direct pe baza unui index, presupune faptul ca utilizatorul furnizeaz valoarea indexului (coloanei index) iar sistemul citete nregistrarea index pentru care indexul are valoarea indicat. n acest caz procesul de citire se desfaoar n modul urmtor: - mai nti, se citete nregistrarea index din tabela de index, pentru care indexul are valoarea indicat (exist metode de citire direct a nregistrrilor index, favorizate de faptul ca nregistrrile index sunt ordonate dup valoarea indexului), - iar apoi, pe baza numrului sau identificatorului intern al liniei gsit n nregistrarea index se citeste direct nregistrarea corespunzatoare din tabel (vezi Figura 5). n unele situaii indexarea este utilizat i pentru citirea secvenial. n acest caz, liniile nu mai sunt citite secvenial n ordinea n care sunt memorate n tabel, care reprezint "ordinea fizic", ci n ordinea dat de nregistrrile index din tabela de index, care reprezint "ordinea logic". n acest caz, indexarea n citirea secvenial, ofer o ordonare a liniilor dintr-o tabel, fr ca liniile din tabel s fie ordonate fizic. Citirea secvenial a liniilor tabelei din Figura 1.5 va furniza liniile din tabel n ordinea: 2, 4, 1, 5, 3.
Fig. 5 Tabel index Indecii asociai unei tabele se pot defini: fie la definirea structurii tabelei, fie ulterior n mod explicit prin comenzi dedicate. Pentru o tabel pot fi definii, n general, orici indeci dorim, dar aspectele legate de performan cer ca numrul acestora s fie redus (cel mult 2 sau 3 indeci pentru o tabel).
Tipuri de indeci
n practica structurrii tabelelor exist urmtoarele tipuri (categorii) de chei (indeci): - chei candidate (indeci candidai), pentru care nu exist dou linii n care cheia s aib aceeai valoare: pot fi definii mai multe chei candidai pentru o tabel, - cheie primar (indeci primar), pentru care nu exist dou linii n care cheia s aib aceeai valoare: ntr-o tabel poate fi definit o singur cheie primar,
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
-
chei normale (indeci normali), care admit existena a dou sau mai multe linii n care cheia s aib aceeai valoare: pot fi definii mai multe chei normale pentru o tabel
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z n tehnologia client-server, baza de date este memorat pe discurile unui calculator din reea i reprezint baza de date server. Clientul este orice utilizator, eventual de pe alt calculator din reea, care dorete s lucreze cu baza de date. Clientul este reprezentat printr-o aplicaie utilizator sau printr-o component a SGBD-ului.
10
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Limbajul V Foxpro
Este format din comenzi. Fiecare c-da este formata din cuvinte: Cheie Utilizator Cuvintele sunt organizate in clauze Numai din cuvointe cheie Numai din cuvinte utilizator Combinati de cuvinte cheie si utilizator Exista clauze Optionale Obligatorii Se descrie o c-da, se descriu:
11
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z Functia Sintaxa Comentarii Exemple
Verb-comanda [clauze]
Variabilele de mediu de lucru V.Fox nume valori Setarea variabilelor de mediu asistat prin comenzi SET cu sintaxa
Codserv Denserv
N,2 C,12
12
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Cheltuieli N,7 Sef C,20 Ca sa putem stabili o relatie permanenta intre 2 tabele, trebuie ca:
tabela parinte sa fie indexata dupa campul de legatura (index primar sau candidat) tabela copil sa fie indexata dupa campul de legatura (orice index)
Cum definim relatia? D&D (Drag and Drop) de la cheia camp de legatura din tabela parinte (cheaia CODSERV din SERVICII) la cheia camp de legatura din tabela copil (cheaia CODSERV din SALARIATI).
n numefis putei specifica i calea directorului unde este stocat fiierul BD. Dac omitei numele bazei de date, atunci VFP afieaz o fereastr de dialog pentru a selecta fiierul bazei de date pentru deschidere. Starii variabilei de mediu EXCLUSIVE: ON, atunci deschiderea este exclusive OFF, atunci deschiderea este partajat
13
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Deschiderea tabelelor
Zone de lucru n VFP
Pentru deschiderea tabelelor VFP utilizeaz nite zone de memorie intern numite zone de lucru. O tabel se deschide ntr-o zon de lucru, iar ntr-o zon de lucru nu se dechide dect o singur tabel. n zona de lucru sunt memorate informaii despre tabela deschis n zon. Zonele de lucru sunt identificate printr-un numr (1,2,3, ), iar primele 10 zone de lucru mai pot fi identificate printr-un alias de forma A, B, C, , J. Pot fi cel mult 32767 zone de lucru. La un moment dat o singur zon este zon de lucru curent sau zon de lucru activ. Cnd o zon de lucru este curent, atunci tabela deschis n ea este tabel curent. Unele comenzi lucreaz pe tabela curent, sau au ca baz de lucru tabela curent.
Comanda SELECT
Activeaz o zon de lucru. Sintaxa SELECT {idzon | aliastabel}
Comanda USE
Deschide sau nchide o tabel.
14
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Sintaxa
USE
Aliasul tabelei sau aliasul zonei de lucru (pentru primele 10 zone de lucru) sunt necesare la referirea campurilor dintr-o tabela care nu este tabela curenta, dupa sintaxa:
Numarul inregistrarii
Inregistrarile index sunt stocate n index. n ordinea ascend sau descendent a valorilor expresiei index.
Tabela index A 3 B 1 C 5 D 2 E 4 (1) (2) (3) (4) (5) Tabela B D A E . C .
Stocarea unui index (tabel index) se poate face: ntr-un fiier mono-index (cu orice nume i extensia .IDX) n fiierul multi-index structurat care are acelasi nume cu numele tabelei, dar cu extensia .CDX ntr-un fiier multi-index utilizator, cu orice nume i extensia .CDX
Observaie
Noi vom lucra cu indecsi stocati in fisierul multi-index structurat. Fiierul multi-index structurat se deschide automat cnd se deschide tabela.
Utilitatea indecilor
Definirea dependentelor permanente Definirea dependentelor temporare Citirea direct a nregistrrilor Citirea secvenial a nregistrrilor
Ordinea nregistrarilor dintr-o tabel poate fi: Ordine fizic, care corespunde ordinii de stocare a nregistrrilor n tabel. Ordinea logic, care corespunde ordinii dat de un index. De cele mai multe ori, pentru ca un index s fie utilizat ntr-o prelucrare trebuie ca el s fie fcut index activ sau index master. 15
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Comanda INDEX
Creaz un index pentru tabela curent Sintaxa de creare a unui index stocat n fiierul multi-index structurat
INDEX ON expresie TO TAG numeindex [FOR cond_sel_nr_ind] [{ASCENDING | DESCENDING}] [{UNIQUE | CANDIDATE}]
Dac nu este specificat ordonarea, implicit este ASCENDING. Dac nu este specificat tipul indexului, atunci, implicit, el este regular (normal)
SET ORDER TO
Comanda CLOSE
nchide diverse tipuri de fiiere. Sintaxa CLOSE
TABLES [ALL]
Comanda APPEND
Adaug una sau mai multe nregistrri la sfritul unei tabele. Sintaxa APPEND [BLANK]
[IN
{ idzon | aliastabel}
Setari Data calendaristica SET CENTURY ON | OFF SET DATE { AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITALIAN | JAPAN | TAIWAN | USA | MDY | DMY | YMD }
Semnificatii AMERICAN ANSI mm/dd/yy yy.mm.dd 16
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
BRITISH/FRENCH dd/mm/yy GERMAN dd.mm.yy ITALIAN dd-mm-yy JAPAN yy/mm/dd TAIWAN yy/mm/dd USA mm-dd-yy MDY mm/dd/yy DMY dd/mm/yy YMD yy/mm/dd
Exemplu:
Comenzile ? si ??
{ ? | ?? } Expresie
Unde expresie este o expresie valid VFP. ? Expresie execut retur-de-car nainte de afiarea rezultatului evalurii expresiei. ?? Expresie nu execut un retur-de-car nainte de afiarea rezultatului evalurii expresiei.
Marimi care nu-si modifica valoarea in timp Numerice: 2, -3.14 Sir de caractere: ABC123 sau ABC123 sau abc123
Format: {^aaaa/ll/zz}
Exemplu Logice: .T. Variabile
{^aaaa/ll/zz hh:mm:ss}
sau .F.
Marimi care isi schimba valoarea in timp. Au nume si ocupa un spatiu de memorie RAM. Pot fi de tip: Numeric, 17
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Sir de caractere Data calendaristica Logice
Functii
Functiile sunt subprograme ce executa anumite prelucrari si returneaza o valoare. Unor functii li se pot transmite date pe care aceastea le prelucreaza. Transmiterea de date se face prin asa numitii parametrii ai functiei. Apelul functiei:
numefct([parametri])
Tipuri de functii: Numerice, Sir de caractere Data-timp Logice De conversie Functia DATE() returneaza data din sistemul de calcul.
Expresii
O expresie este o succesiune de operanzi si operatori care respecta anumite reguli. Operanzi definesc datele Operatorii definesc operatiile care se executa asupra operanzilor
Expresii Numerice
Actiune
?(4-3) * (12/2) ? 3 ** 2 ?3^2 ?2*7 ? 14 / 7 ? 15 % 4 ? 4 + 15
Exemplu
18
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Expresiile sir de caractere O expresie de tip sir de caractere este formata din:
Operatorii de concatenare +, -. Operanzi de tip sir de caractere
Operator Exemple
Action
+
-
Concatenare obisnuita.
?Popescu
Concatenare cu eliminarea spatiilor din dreapta primului operand.
+Vasile
?Popescu
Expresiile Data/timp
Este formata din Operanzi data/timp sau numerici Operator + Operatorii + sau Actiune Addition Subtraction
-Vasile
?Date( )+1000
?{^2012/01/01}-date()
Expresiile relationale
Este formata din 2 operanzi de acelasi tip legati printr/un operator de comparare (relational) O expresie relationala are una din valorile .T. sau .F. Relational Operators
Operator < > = <>, #, !=diferit <= >= $ Action mai mic mai mare egal mai mic egal cu mai mare egal cu inclus in Code ? 23 < 54 ?1>2 ? ABC =abc ? .T. <> .F. ? {^1993/01/01} <= {^1992/01/01} ? 32 >= 32.5 ?pop$prtopopescu 19
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
operad1$operand2 ? 'escu' $ 'popescu' are valoarea .T. ? 'dan' $ davidescu are valoarea .F.
Expresii logice
O expresie logica este formata din una sau mai multe expresii relationale legate prin operatorii logici: NOT, AND sau OR.
Operator () NOT AND OR Action grupare subexpresii negare logica AND logic (SI) OR logic (SAU) Code cVar AND (cVar2 AND cVAR3) IF NOT cVarA = cVarB IF ! nVar1 = nVar2 lVar0 AND lVar9 lVarX OR lVarY
NOT
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Sintaxa
{ DISPLAY | LIST } [list_cmpuri_expresii] [domeniu] [FOR expr_sel] [OFF] [NOCONSOLE] [{TO PRINTER [PROMPT] | TO FILE numefis_ies}]
Comentarii list_cmpuri_expresii este list de cmpuri i/sau expresii, separate prin virgul, a cror valori se doresc a se afia. Dac nu este specificat sunt afiate valorile tuturor cmpurilor din tabela curent. Coninutul cmpului memo nu este afiat dect n cazul n care este specificat explicit n list. Dimensiunea de afiare a cmpurilor memo este determinat de parametrul MEMOWIDTH.
domeniu
specific mulimea de nregistrri din tabela curent pe care va lucra comanda. Clauza domeniu poate avea una din valorile: ALL, NEXT nr_nregistrari, RECORD nr_nregistrare, REST.
Exemple
LIST NUMES, PRENS, SALAR+SPOR OFF for codserv=10 AND SALAR>1000 LIST NUMES, PRENS, SALAR+SPOR OFF for escu$numes LIST NUMES, PRENS, (DATE()-datanast)/365 TO FILE FISSAL LIST RECORD 2
tergerea de nregistrri
tergerea nregistrrilor dintr-o tabel se face n doi pai: - tergerea logic sau marcarea nregistrrilor pentru tergere. - tergerea fizic.
Comanda DELETE
Marcheaz anumite nregistrri pentru tergere.
Sintaxa
DELETE
[domeniu]
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z Dac domeniu nu este specificat, comanda lucreaz pe nregistrarea curent.
Functia DELETED()
Funcia DELETED [IN {idzona | aliastab}] returneaz valoarea .T. dac nregistrarea este marcat pentru tergere i valoarea .F. dac nregistrarea nu este marcat pentru tergere. Exemplu pentru afiarea nregistrrilor marcate pentru tergere LIST FOR DELETED()
Comanda PACK
terge fizic nregistrrile marcate pentru tergere din tabela curent. Sintaxa
Comanda ZAP
Sterge fizic toate inregistrarile dintr-o tabela. Sintaxa
Modificare nregistrri
Modificarea nregistrrilor dintr-o tabel, adic modificarea valorilor anumitor cmpuri din anumite nregistrri, se poate face: Interactiv (prin c-zile BROWSE sau EDIT) Automat pe baza unor expresii (prin c-da REPLACE
22
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
{ BROWSE | EDIT }
[FIELDS list_cmpuri]
[FOR expr_sel] [FREEZE numecmp] [NOAPPEND] [NODELETE] [{NOEDIT | NOMODIFY}] [TITLE titlu]
list_cmpuri poate fi o list de: cmpuri din structura tabelei curente sau a unor tabele n relaie cu tabela curent, cmpuri calculate, separate prin virgul.
nume_camp_calculat = expresie
Exemplu BROWSE FIELDS numes:H=Nume salariat, prens:R:H=Prenume salariat ,castig=salar+spor:H=Total castig
Expr_sel din clauza FOR este o expresie logica. Vor fi afisate date numai din inregistrarile pentru
care expresia este adevarata.
Prin clauza FREEZE puteti specifica campul pe care sa fie pozitionat, tot timpul, cursorul de editare. Comanda REPLACE
Actualizeaz valorile unor cmpuri din anumite nregistrri pe baza valorilor anumitor expresii. Sintaxa
REPLACE numecamp1 WITH expresie1 [ADDITIVE] [, numecamp2 WITH expresie2 [ADDITIVE]] ... [domeniu] [FOR condselinr]
Numecamp1, numecamp2, sunt numele cmpurilor a cror valori se vor modifica cu valorile expresiilor expresie1, expresie2, . Domeniu dac nu este specificat este nregistrarea curent.
23
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z ADDITIVE adaug valoarea la sfritul valorii existente pentru cmpul memo.
Citirea nregistrrilor
Citirea nregistrrilor dintr-o tabel se poate face: - direct (pe baza numrului de nregistrare sau a unui index), - secvenial.
GOTO
[RECORD] nrinr
Sau
GOTO
{ TOP | BOTTOM}
Comanda SEEK
Citete n mod direct prima nregistrare dintr-o tabel pentru care un index are o valoare precizat. nregistrare citit devine nregistrare curent Sintaxa
RECNO( ) returneaz numrul nregistrrii citite FOUND( ) returneaz Adevrat (.T.), EOF( ) returneaz Fals (.F.).
Dac SEEK nu gsete nici o nregistrare, atunci:
RECNO( ) returneaz numrul de nregistrrii din tabel plus 1 FOUND( ) returneaz False (.F.), EOF( ) returneaz Adevrat (.T.).
Comanda LOCATE
Citete secvenial prima nregistrare din tabela curent care ndeplinete o condiie specificat n comand. nregistrarea citit devine nregistrare curent. Sintaxa 24
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
LOCATE
RECNO( ) returneaz numrul nregistrrii citite FOUND( ) returneaz Adevrat (.T.), EOF( ) returneaz Fals (.F.).
Dac LOCATE nu gsete nici o nregistrare, atunci:
RECNO( ) returneaz numrul de nregistrrii din tabel plus 1 FOUND( ) returneaz False (.F.), EOF( ) returneaz Adevrat (.T.).
Dup ce LOCATE gsete nregistrarea putei executa o comand CONTINUE pentru a citi urmtoarea nregistrare care ndeplinete condiia din LOCATE.
Comanda CONTINUE
Comanda CONTINUE citete urmtoarea nregistrare care ndeplinete condiia din ultima comand LOCATE executat. . nregistrarea citit devine nregistrare curent. Sintaxa
SKIP
Comentarii
Nr_sal_inr specific numrul de nregistrri srite fa de nregistrarea curent, dintr-o tabel, pn la nregistrarea citit: - Dac valoarea este pozitiv, saltul se face spre sfritul tabelei (nainte), - Dac valoarea este negativ, saltul se face spre nceputul tabelei (napoi). Dac nr_sal_inr nu este specificat, atunci este 1 (unu). Dac nregistrarea curent este ultima nregistrare din tabel, atunci un SKIP nainte determin ca: RECNO( ) s returneze o valoare cu 1 mai mare dect numrul nregistrrilor din tabel, EOF( ) s returneze Adevrat (.T.),
Dac nregistrarea curent este prima nregistrare din tabel, atunci un SKIP -1 determin ca: - RECNO( ) s returneze valoare 1, - BOF( ) s returneze Adevrat (.T.),
Observaie
25
Initiere in Visual FOXPRO Autor: Eugen Maftei www.cartiaz.ro Carti si articole online gratuite de la A la Z
Dac tabela pe care lucreaz comenzile GO TOP, GO BOTTOM, LOCATE, CONTINUE i SKIP sunt controlate de un index master, atunci aceste comenzi respect secvena (ordinea) nregistrrilor dat de indexul master.
26