Sunteți pe pagina 1din 14

Pag.

COMENZI VISUAL FOXPRO


n mod tipic, bazele de date i tabelele aferente se creaz o singur dat . Dup aceea, utilizatorul i programatorul exploateaz datele de acolo (de fapt pentru asta se creaz baza de date). Operaiile uzuale sunt : deschiderea bazei de date , afiarea complet sau parial a datelor, modificarea sau tergerea nregistrrilor din tabele, afiarea ordonat a lor, cutarea unor date n tabele, etc. Pentru aceasta , SGBD pune la dispoziie o serie de comenzi specifice pe care le vom discuta mai departe. 1. Deschiderea bazelor de date i a tabelelor Bazele de date i elementele componente, la nivelul sistemului de operare sunt memorate n fiiere. Conform regulilor sistemului de operare, dup crearea unui fiier, acesta poate fi prelucrat dac este deschis. Aceast regul o ntlnim i la prelucrarea bazelor de date . Prin urmare, pentru a putea opera cu datele din b.d. i din tabele va trebui s le deschidei. Deschiderea bazei de date se poate face n mai multe moduri :

se selecteaz meniul File, comanda Open, apoi se selecteaz categoria se tasteaz ( n fereastra de comand ) OPEN DATABASE .Comanda poate fi

Database i n final se alege directorul i baza de date respectiv.

urmat de numele bazei de date sau fr nume, n acest caz se ncepe un dialog ntre utilizator i computer pentru selectarea bazei de date . Observaie: 1. Se pot deschide mai multe baze de date simultan. 2. Dup deschidere, constructorul de tabel nu este totdeauna afiat . Afiarea explicit a acestuia se poate face cu MODIFY DATABASE. Dup deschiderea bazei de date, trebuie deschise tabelele componente pentru a avea acces la date. Deschiderea unui tabel se face n mod similar :

se selecteaz meniul File, comanda Open, apoi se selecteaz categoria Table se tasteaz ( n fereastra de comand ) USE nume sau USE ? .Comanda

i n final se alege directorul i tabelul de date respectiv.

poate fi urmat de numele tabelului sau de ?, n acest caz se ncepe un dialog ntre utilizator i computer pentru selectarea tabelelor.

Pag.2

Tabelele libere se pot deschide n mod similar. De foarte multe ori utilizatorul dorete s lucreze ( simultan ) cu mai multe tabele. Din pcate , dac le deschide pe rnd , numai ultimul rmne accesibil, celelalte nchiznduse automat. Pentru astfel de situaii, exist mai multe zone de lucru identificate prin numere ( n numr de 32767) , n fiecare zon putndu-se deschide un tabel mpreun cu fiierele index asociate. Pentru a deschide un tabel (liber sau legat de baza de date) ntr-o zon de lucru se poate tasta n fereastra de comand : sau

SELECT n

USE numetabel USE numetabel IN n [ALIAS pseudonume]

unde n reprezint numrul zonei de lucru. Selectarea zonei de lucru se poate face dup aceea prin comanda SELECT n . De asemenea, deschiderea tabelelor n zone de lucru se mai poate face i din meniul Window, opiunea Data Session, dup care apare o fereastr numit Data Session cu ajutorul creia se selecteaz tabelele n zonele de lucru, ca n figura de mai jos :

Tabela curent deschis n zona 2

Se folosete pentru deschiderea unui nou tabel Se folosete pentru nchiderea tabelului curent

Observaie :

Zona n care este deschis

a. Comenzile care se tasteaz n fereastra de comand se pot folosi i n sursele de program .


b. c.

Se poate deschide un tabel de mai multe ori folosind comanda Use nume In 1 AGAIN. Dac baza de date sau tabelul nu se gsesc n directorul curent ( care este de obicei directorul n care este instalat Visual Foxpro ), se poate scrie calea complet ce permite

Pag.3

localizarea lor. De asemenea, se poate schimba C:\Salariati.


d.

directorul de lucru folosind comanda

SET DIRECTORY TO nume. De exemplu, se poate tasta SET DIRECTORY TO O baz de date se nchide cu comanda CLOSE DATABASE , iar un tabel deschis ntr-o zon cu USE sau USE IN zon. De asemenea, nchiderea tabelelor se poate face i cu comanda Close Table.
e.

Accesarea cmpurilor bazelor de date deschise n mai multe zone de lucru, se poate face i prin numele bazei de date urmat de punct i numele cmpului : Angajai.Nume sau Funcii.Cod . Trebuie reinut faptul c prelucrarea datelor ntr-o tabel se face la nivel de

nregistrare, n sensul c la un moment dat este prelucrat o singur nregistrare . Din acest motiv , sistemul ine evidena nregistrrii curente, a celei care se prelucreaz, folosind un indicator de nregistrare . Acest indicator care i spune sistemului cu ce nregistrare s lucreze sau unde s modifice date , este la poziionat la deschiderea tabelului la nceput. El este mutat de obicei pe nregistrarea urmtoare, dup o prelucrare a nregistrrii curente. Totui indicatorul poate fi mutat explicit cu ajutorul comenzilor GOTO i SKIP astfel : GOTO n (se poziioneaz la nceputul nregistrrii n) sau GOTO TOP (se poziioneaz la nceputul tabelului) sau GOTO BOTTOM (se poziioneaz la sfritul tabelului ) urmate eventual de opiunea IN tabel ce precizeaz explicit la care tabel se aplic, respectiv SKIP n IN tabel care sare peste n nregistrri ( n este pozitiv sau negativ). Atenie, dac este deschis o fereastr de editare ( cu Browse, cu Append, cu Edit se poate face poziionarea manual sau cu ajutorul comenzii Goto Record din meniul Table. exist i o funcie , numit RecNo() , care poate fi folosit pentru a numrul nregistrrii curente . 2. Adugarea de noi nregistrri n tabele Dei utilizatorul poate introduce n momentul crerii tabelului nregistrri, exist o comand dedicat pe care o poate apela n fereastra de comand sau n program : APPEND De asemenea, exist dou comenzii, folosite mai ales n programe , ce permit adugarea de nregistrri goale : APPEND BLANK i INSERT BLANK .

Pag.4

3. Editarea coninutului tabelelor . Comenzile BROWSE i EDIT. Utilizatorul are la dispoziie o comand universal, numit BROWSE, care poate fi folosit pentru realizarea diferitelor operaii de prelucrare asupra datelor din tabele. Comanda poate fi pornit din meniul rapid (ce se obine apsnd butonul dreapta pe obiectul tabel) fie tastnd comanda n fereastra de comand.ablonul general de utilizare (simplificat): BROWSE [list cmpuri] [WIDTH laime] [FOR condiie ] [NOEDIT] [NODELETE] [NOAPPEND] . Se observ apariia unor argumente suplimentare , care nu sunt obligatorii : list cmpuri permite afiarea n tabel doar a anumitor coloane, Width precizeaz limea maxim a coloanelor, iar celelalte opiuni protejeaz tabelul la operaiile precizate. Comanda permite afiarea datelor sub form tabelar, apoi permite modificarea valorilor din cmpuri ( cu comenzile de editare cunoscute). De asemenea, se pot aduga nregistrri noi tastnd CTRL +Y sau alegnd comanda APPEND NEW RECORD din meniul TABLE ( atenie meniul Table apare doar cnd deschidei fereastra BROWSE):

Adaug o nregistrare nou Marcheaz pentru tergere o nregistrare Anuleaz tergerea

terge fizic nregistrarea

Se pot terge, de asemenea, nregistrri din tabel. tergerea nregistrrilor se face n dou etape : marcarea lor i tergerea lor fizic . Marcarea se face tastnd CTRL+T (dup ce am poziionat indicatorul pe aceea nregistrare- cu tastele cursor, PgUp, PgDown). Dup cum se observ din figura de mai sus, se poate folosi i comanda DELETE RECORDS , din meniul TABLE. tergerea fizic (deci pierderea definitiv a acelei nregistrri ) se face fie

Pag.5

tastnd comanda PACK

n fereastra de comand, fie

alegnd comanda REMOVE

DELETED RECORDS, din meniul TABLE. Comanda BROWSE are o variant similar numit EDIT, ce permite acelai lucru. 4. Afiarea coninutului unui tabel - comanda LIST. Sistemele pentru baze de date ( inclusiv Visual Foxpro) au foarte multe instrumente de afiarea a datelor. Am prezentat o metod simpli , tabelar, cu Browse . De asemenea , exist o variant , tot simpl i rapid , pe care utlizatorul o poate folosi rapid pentru a afia coninutul tabelului, varianta motenit din versiunile mai vechi de FoxPro. Comanda respectiv se numete LIST (sau DISPLAY) i se poate folosi sub urmtoarea form : LIST [list cmpuri] [grup nregistrriri] [FOR condiie] [WHILE condiie] [TO PRINTER|TO FILE][NOCONSOLE] n mod implicit se afieaz toate cmpurile, n schimb se pot preciza cmpurile care se vor afia . Domeniu precizeaz grupul de nregistrri care se vor afia, domeniu putnd lua urmtoarele valori: ALL, NEXT n, RECORD n, REST . Opiunile FOR i WHILE, permit filtrarea nregistrrilor conform condiiei precizate. Ultimele opiuni permit afiarea datelor i la imprimant sau n fiier . Exemple: 1. USE cursanti LIST nume, prenume 2. USE cursanti DISPLAY 3. USE cursanti LIST FOR Datan >{^1968/01/01}
4.

USE cursanti LIST Nume, Prenume TO PRINTER NOCONSOLE

5. USE cursani LIST Nume,Prenume,Medie To Lista.txt Trebuie totui s menionm c exist o soluie mult mai bun, ce se folosete mai ales pentru sisteme informatice (adic pentru aplicaii). Ea const n folosirea rapoartelor (subiectul se va discuta mai trziu). 6. tergerea nregistrrilor din tabele comanda DELETE

Pag.6

Alturi de adugare i modificare, tergerea reprezint una din operaiile des ntnite n lucrul cu tabelele. tergerea este folosit pentru a elimina datele unei nregistrri din tabel. tergerea unei nregistrri se poate face fie la nivel logic ( nregistrarea nu este propriu-zis tears, ci este marcat pentru tergere), fie la nivel fizic (nregistrarea este tears fizic din tabel). Am prezentat deja o soluie cu BROWSE. Exist, ns , o comand dedicat numit DELETE, ce se poate tasta n fereastra de comand sau scrie n programe: DELETE [grup nregistrri] [FOR condiie] [WHILE condiie]. n mod implicit, dac nu se folosete nici un parametru, se va marca pentru tergere nregistrarea curent. Putei s precizai grupul de nregistrri prin domeniu (domeniu poate lua acelai valori cu cele precizate anterior la comanda LIST ) sau prin condiii. Dup marcarea nregistrrilor , ele pot fi terse definitiv din tabel cu ajutorul comenzii PACK (tastat n fereastra de comand). Exemple: 1. USE cursanti DELETE 2. USE cursanti DELETE FOR Datan >{01/12/1968} PACK. 3. USE cursanti DELETE RECORD 3 PACK. Observaie: O nregistrare marcat pentru tergere, poate fi recuperat cu ajutorul comenzii RECALL sau cu ajutorul opiunii Recall Records din meniul Table (vezi figura anterioar). ns, dac s-a aplicat comanda Pack, nregistrrile nu mai pot fi recuperate. 7. Modificarea coninutului unei tabel. Modificarea valorilor din cmpuri se poate face n mai multe moduri. O soluie , este oferit de comnezile BROWSE i EDIT. De asemenea, i comanda APPEND permite modificarea valorilor din cmpuri. Totui exist o comand dedicat, folosit mai ales n programe, cu ajutorul creia se modific valorile din cmpuri . Comanda se numete REPLACE i are sintaxa : REPLACE [domeniu] cmp1 WITH valoare1, , cmpn WITH valoaren [FOR condiie] [WHILE condiie]

Pag.7

Comanda nlocuiete vechea valoare din cmpurile precizate cu o valoare nou. Dac nu se precizeaz domeniu, comanda se aplic doar la nregistrarea curent , altfel la grupul precizat de domeniu.Clauzele For i WHILE permit filtrarea grupului de nregistrri prin condiii . Exemple: 1. USE cursanti REPLACE ALL MEDIE WITH (Obiect1+Obiect2)/2 2. USE salariai REPLACE ALL Salariu WITH 1.5 * Salariu REPLACE ALL Sanatate WITH 0.07 *Salariu 3. USE cursanti REPLACE ALL Situaie WITH PROMOVAT FOR Ob1>=5 AND Ob2>=5 n programe, mai ales cnd se fac calcule , comanda este foarte util, deoarece modificarea unui cmp nu se poate face direct prin atribuire ci doar cu REPLACE. O alt tehnic de modificare a coninutului nregistrrilor este dat de comenzile SCATTER i GATHER . Prin intermediul acestor dou comenzi se poate realiza transferul ntre nregistrarea curent a tabelei sau un set de variabile. Comanda GATHER realizeaz transferul de la tablou sau de la setul de variabile la tabel, iar SCATTER realizeaz transferul invers. Comanda GATHER are sintaxa: GATHER FROM tablou GATHER MEMVAR prima preia datele din tabloul specificat n nregistrarea curent , iar cea de-a doua form folosete ca surs de date un set special de variabile, cu acelai nume ca i cmpurile tabelei. Accesul la setul de variabile (creat cu comanda SCATTER cu clauza MEMVAR) se face prin construcia : m. nume variabil. Comanda GATHER poate conine clauza FIELDS , urmat de o list de cmpuri care se vor copia n nregistrarea curent a tabelei active . Dac se dorete i copierea cmpurilor memo, trebuie adugat i opiunea MEMO. Comanda comenzii este : SCATTER TO tablou sau SCATTER MEMVAR i aici se pot folosi clauzele FIELDS i MEMO, cu acelai scop. SCATTER, este opus comenzii anterioare, ea copiind cmpurile nregistrrii curente din tabela activ ntr-un tablou sau ntr-un set de variabile. Sintaxa

Pag.8

6. Cutarea datelor comanda LOCATE O alt operaie util, mai ales n cazul tabelelor mari, este cea de cutare a unei nregistrri care respect o anumit condiie. Comanda este LOCATE i are sintaxa : LOCATE FOR condiie [domeniu] [WHILE condiie ] Ea ncearc localizarea primei nregistrri din tabel ce verific condiia din FOR . Grupul de nregistrri n care se caut , este cel dat de domeniu i WHILE, implicit fiind ALL. Dac aceast nregistrare exist, indicatorul de acces la fiier se va poziiona pe aceasta. Utilizatorul poate afla dac nregistrarea exist, folosind funcia FOUND(), funcie care returneaz TRUE n cazul gsirii sau FALSE n caz de eec. Se poate continua cutarea , n ideea de gsi alte nregistrri asemntoare, cu ajutorul comenzii CONTINUE. Exemplu : USE cursani LOCATE FOR Nume=POPESCU IF Found() DISP ENDIF 8. Calcule statistice cu datele din tabele- comenzile SUM, COUNT Pe lng cutarea i consultarea datelor din tabele, n aplicaiile practice avem nevoie i de calcule cu valorile cmpurilor. De exemplu, ne intereseaz s tim care este totalul salariilor brute sau ct este impozitul total ce trebuie virat. De asemenea, ne intereseaz ci angajai nu sunt pltitori de impozit. Toate aceste lucruri constau de fapt n operaii statistice asupra nregistrrilor din tabele : nsumarea valorii cmpurilor din tabele, contorizarea nregistrrilor ce ndeplinesc o anumit proprietate . Exist comenzii dedicate ce pot s dea rspuns la ntrebrile anterioare. Calcularea numrului de nregistrri care respect o anumit condiie se realizeaz cu ajutorul comenzii COUNT , cu sintaxa : COUNT [domeniu] FOR condiie TO variabil Exemplu : USE ANGAJAI COUNT FOR Impozit=.T. TO Nr ?Nr

Pag.9

O alt operaie util este aceea de nsumare a valorilor unor cmpuri numerice. Pentru aceasta folosim comanda SUM cu sintaxa : SUM [domeniu] expresie1, expresie2,, expresien TO v1,v2,,vn [FOR condiie] Exemplu :a. USE ANGAJAI SUM VenitBrut TO TotalBrut ?TotalBrut b. USE ANGAJAI SUM Impozit TO TotalImpozit FOR Tip_Ang=T ?TotalImpozit Exist o variant particular a comenzii SUM , numit AVERAGE, ce se poate folosi pentru a calcula media aritmetic a unor cmpuri. Exemplu :a. USE ANGAJAI AVERAGE SalBrut TO SalariuMediu ?SalariuMediu De asemenea, pentru calcule statistice mai complexe, exist o comand mai n aceste expresii pot fi incluse o serie de funcii

complex numit CALCULATE . Aceasta poate fi urmat de o list de expresii care sunt calculate pe baza datelor din tabel. statistice, cu urmtoarele semnificaii: AVG(expresie )- calculeaz media aritmetic a valorilor expresiei respective (pentru fiecare nregistrare ), expresie care poate conine cmpuri numerice ale tabelei. CNT() returneaz numrul de nregistrri prelucrate. MAX(expresie), respectiv MIN (expresie) returneaz expresia cea mai mare , respectiv cea mai mic. SUM(expresie) calculeaz suma valorilor expresiilor . Sintaxa general a lui CALCULATE este : CALCULATE funcii TO VARIABILE [FOR condiie] Exemplu :a. USE ANGAJAI CALCULATE MAX(VenitBrut) TO MAXVenitBrut ?MAXVenitBrut

Pag.10

8. Ordonarea datelor din tabele : Nimeni nu se ateapt ca utlizatorii s introduc datele gata sortate, gata aranjate. Din acest motiv, de multe ori avem nevoie s vedem datele ntr-o anumit ordine. O alt operaie uzual, regsirea informaiilor, se poate face mult mai comod n listele ordonate. S.G.B.D.-ul Visual Foxpro ofer dou soluii legate de ordonarea unei tabele :

ordonarea fizic a tabelei - const n crearea unei noi tabele cu datele din indexarea unei tabele - aceasta const n crearea unui fiier suplimentar , nregistrrilor

prima tabel , tabel ordonat dup un criteriu precizat

numit index, care s conin informaii cu privire la ordinea conform ordinii din fiierul index . Sortarea fizic a tabelelor :

tabelei. Tabela rmne fizic n aceeai ordine, dar este vzut i accesat

Ordonarea fizic i crearea unei noi tabele ordonate se face cu ajutorul comenzii SORT. Aceasta are sintaxa : SORT [domeniu] ON cmp1 /A sau /D , , cmpn /A sau /D TO TabelaNou FOR condiie Exemplu : a. USE ANGAJAI SORT On Nume TO LAngajati USE Langajai BROWSE b. USE ANGAJAI SORT On DataAng/D, Nume/A TO LAngajati USE Langajai LIST NUME, DataAng c. USE Candidai SORT On Medie/D, Ob1/D To Admii FIELDS Nume, Prenume, Ob1, Ob2, Medie FOR Ob1>=5 .AND. Ob2>=5 USE Admii BROWSE SORT On Medie/D, Ob1/D To Respini FIELDS Nume, Prenume, Ob1, Ob2, Medie FOR Ob1 <5 .OR. Ob2<5 USE Respini

Pag.11

Sortarea logic ( indexarea ) tabelelor A doua metoda, care este mai performant ca i ordonarea fizic ( datorit timpului care se pierde, a spaiului consumat, etc) i este folosit mai ales la realizarea legturilor dintre tabele, const n crearea unui fiier separat ( numit index) asociat tabelei, fiier index care s pstreaz ordinea nregistrrilor . Accesarea nregistrrilor din tabel se face prin intermediul indexului, n ordinea dat de fiierul index. . De exemplu : Carti.cdx Titlu Amintiri din copil. Ion Insula misterioas Moromeii Poziie 2 1 4 3 Nr. nreg 1 2 3 4 Titlu Ion Amintiri din copilrie Moromeii Insula misterioas Carti.dbf Autor Nr. pag. Liviu. R. 400 Ion Creang 100 Marin Preda 350 Jules Verne 450

Dac se dorete afiarea datelor, sistemul se uit n fiierul index i de acolo afieaz mai nti inregistrarea de pe poziia 2 (ce o gsete n tabelul carti.dbf), apoi nregistrarea 1,4 i n final 3. Folosirii fiierelor index aduce cteva avantaje : timp redus de obinere a listelor ordonate, dac se fac actualizri n tabel , fiierul index este actualizat automat , spaiul de memorie consumat este mai mic . Pentru a lucra cu indeci, trebuie parcurse mai multe etape de lucru : a. se creaz fiierul index asociat tabelei, preciznd criteriile de ordonare dorite . b. deschiderea (activarea) indexului respectiv , adic activarea criteriului ordonare . c. accesarea datelor din tabele ( conform ordinii din index). d. nchiderea indexului ( eventual nchiderea tabelei de care este legat indexul). Crearea indexului se poate face la crearea tabelelui , cu ajutorul constructorului de tabele sau cu ajutorul unor comenzi dedicate . De asemenea , se poate reveni asupra structurii cu ajutorul comenzuii MODIFY i se pot aduga indeci. de

Pag.12

Observaie : S considerm tabelul anterior cari.dbf, avnd urmtoarea form : CodC C(5) 1002 1005 1001 1009 Titlu C(20) Ion Amintiri din copilrie Moromeii Insula misterioas Autor C(30) Liviu. R. Ion Creang Marin Preda Jules Verne NrPag N(6) 400 100 350 450 DataI D 01.01.1998 02.12.1999 03.11.2000 07.05.1995

ac dorim s vedem coninutul tabelului ordonat , dup mai multe criterii , va trebui s crem mai multe fiiere index. De exemplu, dac dorim o list alfabetic dup Titlu , va trebui creat un index ( am vzut n cursul 1 de Visual Foxpro cum se face acest lucru), a crui expresie de indexare s conin coloana Titlu. n schimb, dac dorim s avem liste ordonate alfabetic dup autor i dac un autor are mai multe cri , acestea s fie afiate dup Titlu, indexul va conine expresia Autor+Titlu. O alt situaie , puin mai complicat apare dac se dorete obinerea unor criterii de ordonare care depind de coloane ale cror tipuri de date sunt diferite . De exemplu, dac se dorete o list dup data intrrii iar dac sunt cri intrate n aceeai dat s apar alfabetic dup titlu, expresia de indexare nu va fi doar DataI+Titlu ( se va semnala eroare). Conform regulilor din Foxpro , o expresie conine membrii de acelai tip, prin urmare va trebui convertit unul din cmpuri la tipul celuilalt. Cel mai simplu este s se converteasc totul la tipul ir de caractere. Pentru exemplul anterior, ar trebui folosit urmtoarea expresei de indexare Dtos(DataI)+Titlu (Dtos este o funcie care convertete logic o dat calendaristic la tipul ir de caractere ). Un alt exemplu similar, ar fi acela cnd se combin coloane ce au valori numerice cu coloane ce au valori ir de caractere , cum ar fi o list ordonat dup numrul de pagini i , n caz c sunt mai multe cri cu acelai numr de pagin , alfabetic . Pentru un astfel de caz , se va folosi expresia Str(NrPag)+Titlu. Activarea indexului dorit (pot fi mai multe criterii de ordonare ) se poate face cu ajutorul comenzii SET ORDER TO numeindex [IN tabel]. Exist o funcie numit ORDER(tabel) , care poate spune care este indexul activ . Dup deschiderea indexului, orice operaie de afiare, modificare sau tergere se fac via index. Mai mult, orice modificare a datelor n tabela cu date are ca efect modificarea datelor n fiierul index ( lucru neplcut n cazul ordonrii fizice a tabelelor ).

Pag.13

Un alt avantaj al ordonrii logice , este legat de cutarea mai rapid a datelor cu ajutorul unei alte comenzi numite SEEK. Aceasta se folosete sub forma SEEK expresie , unde expresie este o valoare legat de cheia de cutare . Exemplu : USE Angajai SET ORDER TO NUME SEEK POPESCU IF FOUND() DISPLAY ENDIF 9.Copierea structurii unui tabel n alt tabel . Adugarea de date din alte tabele. O alt comand , motenit din vechiul Foxpro , este cea de multiplicare a structurii unei tabel ntr-un alt tabel. Trebuie s precizm c Visual Foxpro, ofer i alte soluii mai performante legate de acest subiect ( care se vor discuta mai trziu). Copierea structurii se face cu comanda COPY STRUCTURE, cu sintaxa : COPY STRUCTURE to NouTabel [FIELDS lista cmpuri ] Exemplu : USE Angajai COPY STRU TO TEMP De asemenea , se pot aduga nregistrri dintr-un tabel n alt tabel , folosind comanda APPEND FROM cu sintaxa : APPEND FROM Tabel [FOR condiie] FIELDS list cmpuri Exemplu :a. USE Angajai COPY STRU TO TEMP USE TEMP APPEND FROM ANGAJATI BROWSE b. USE Angajai COPY STRU TO TEMP FIELDS Nume,Prenume,Salariu USE TEMP APPEND FROM ANGAJATI FIELDS Nume,Prenume,Salariu BROWSE c. USE Candidai COPY STRU TO Admii FIELDS Nume,Prenume,Ob1,Ob2,Medie

Pag.14

COPY STRU TO Respini FIELDS Nume,Prenume,Ob1,Ob2,Medie USE Admii APPEND FROM Candidai FIELDS Nume,Prenume,Ob1,Ob2,Medie FOR Ob1>=5 .AND. Ob2>=5 USE Respini APPEND FROM Candidai FIELDS Nume,Prenume,Ob1,Ob2,Medie FOR Ob1<5 .OR. Ob2<5 BROWSE

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