fox pro tl - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii...

21

Upload: others

Post on 05-Sep-2019

18 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea
Page 2: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

L

E

C

}

I

E

D

E

M

O

N

S

T

R

A

T

I

V

|

INTRODUCERE

Sporirea complexit\]ii [i diversit\]ii activit\]ii economice [i sociale a generat întimp nevoia unor date din ce în ce mai elaborate [i precise. Ob]inerea acestora afost posibil\ datorit\ evolu]iei spectaculoase a sistemelor electronice de calcul, careau permis cre[terea volumului de date culese, transmise, prelucrate [i stocate.

Cursul Ini]iere ̀ n programare elaborat de Institutul Eurocor v\ propune familia-rizarea cu unul dintre cele mai folosite sisteme de gestiune a bazelor de date, [i anumeVisual FoxPro. Cursul se adreseaz\ tuturor celor interesa]i s\ se ini]ieze în lucrul cubazele de date, precum [i celor care doresc s\-[i îmbog\]easc\ cuno[tin]ele pe care leau în acest domeniu. În dezvoltarea materialului am insistat în permanen]\ asupraaspectelor practice, îns\ nu am pierdut din vedere nici fundamentarea teoretic\ a ceeace înseamn\ un sistem de gestiune a bazelor de date. Consider\m, totu[i, c\ estenecesar\ familiarizarea cu anumite elemente teoretice de baz\; dac\ un utilizator sarepeste aspectele teoretice [i trece direct la folosirea unui sistem, el va asimila mult maigreu produsul, multe no]iuni le va aborda incorect sau nu le va în]elege deloc. Fiecarefacilitate oferit\ de un astfel de sistem are o fundamentare teoretic\ ce ajut\ utilizatoruls\ în]eleag\ logic ceea ce face.

Cursul pleac\ de la ideea c\ sistemul de gestiune a bazei de date este parte integrant\,al\turi de baza de date, a unui sistem de baz\ de date. Din acest motiv, se va facemai întâi o trecere în revist\ a principalelor elemente din teoria bazelor de date. Înmodulele urm\toare vom continua cu descrierea sistemului Visual FoxPro [i aparticularit\]ilor acestuia, vom vorbi despre exploatarea [i construirea bazelor dedate folosind acest sistem, despre principalele comenzi [i func]ii specifice VisualFoxPro. În ultima parte a cursului, accentul se va pune pe construirea [i executareaprogramelor [i, în special, pe programarea orientat\ pe obiecte. Elaborarearapoartelor [i interogarea bazelor de date încheie prezentarea gradual\ a materialului.

Materialul cursului a fost astfel conceput `ncât s\ permit\ `nsu[irea optim\ ainforma]iilor prezentate. Efectuarea de la bun început a exerci]iilor recomandate v\va u[ura în mod vizibil deprinderea [i consolidarea noilor cuno[tin]e. Accesibilitateamodului de prezentare a materialului [i exemplele care apar ̀ n modulele de studiuasigur\ însu[irea f\r\ probleme a con]inutului, chiar [i de c\tre persoanele neini]iateînc\ în domeniul program\rii.

Lec]ia de fa]\ constituie o lec]ie demostrativ\, care dore[te s\ v\ familiarizeze cumetoda de studiu EUROCOR. Din punctul de vedere al num\rului de pagini, eareprezint\ mai pu]in de jum\tate din con]inutul unui caiet de studiu. Ve]i g\si aicifragmente din caietele de curs, exemple, exerci]ii, precum [i un model de rezumat[i de tem\ pentru acas\.

V\ dorim mult succes!

Page 3: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\2

ei

3 (18)

Modul de organizare a cursului Ini]iere în programare – Visual FoxPro

Materialul cursului se compune din 12 module, prezentate sub forma unor fascicule,care vor fi îndosariate într-o map\ special\, pe care EUROCOR v-o pune la dispozi]ie.

Dorim s\ v\ atragem aten]ia asupra modalit\]ii speciale de concepere [i prezentare

a lec]iilor, ce v\ va permite parcurgerea cu mai mult\ u[urin]\ a materialului de curs:

• fiecare modul are o anumit\ structur\ didactic\, p\strat\ pe întreg parcursulacestui curs;

• un element important în cadrul acestei structuri îl reprezint\ exemplele [i exerci]iilepractice, cu ajutorul c\rora v\ ve]i putea valorifica în mod curent cuno[tin]eledobândite;

• `n plus, pentru a v\ consolida cuno[tin]ele, la sfâr[itul fiec\rui modul ve]i g\si orecapitulare, care prezint\ cele mai importante aspecte analizate ̀ n cadrul acestuia;

• fiecare modul se încheie cu o tem\ pentru acas\, ce constituie o modalitateeficient\ de verificare a gradului de însu[ire a cuno[tin]elor prezentate; indica]iilereferitoare la rezolvarea temelor pentru acas\ [i la colaborarea cu profesoruldumneavoastr\ sunt prezentate la sfâr[itul modulului;

• folosim reprezent\ri grafice pentru înlesnirea însu[irii cuno[tin]elor (de exemplu,pentru eviden]ierea no]iunilor importante se folosesc litere ̀ ngro[ate).

Fiecare student EUROCOR are un profesor personal.

Temele propuse în fiecare modul vor fi expediate pe adresa Institutului EUROCOR,urmând ca profesorul personal s\ aprecieze corectitudinea r\spunsurilor [i s\ v\transmit\ comentariile sale pe marginea acestora. V\ recomand\m s\ rezolva]i temadoar dup\ parcurgerea integral\ [i atent\ a materialului prezentat.

Pentru ca studiul dumneavoastr\ individual s\ fie cât mai u[or [i eficient, pe

marginea lec]iilor au fost introduse diferite simboluri:

– semnaleaz\ no]iunile, defini]iile [i informa]iile importante

– semnaleaz\ exerci]iile pe care trebuie s\ le rezolva]i

Exemplu

– exemplele vor fi ̀ ncadrate ̀ ntr-un chenar special

– indic\ faptul c\ tema respectiv\ a mai fost abordat\ în modulele anterioare(în acest caz, tema a mai fost abordat\ în modulul 3, la pagina 18).

Page 4: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

3lec]ie demonstrativ\Ini]iere `n programare

Programa cursului de

Ini]iere în programare – Visual FoxPro

MODULUL 1 Baze de date. Elemente introductive

Conceptul de baze de date. Tipuri de baze de date. Obiectivelebazelor de date. Organizarea datelor în baze de date. Modele deorganizare a datelor. Etape de realizare a unei baze de date.Administrarea bazelor de date. Sisteme de gestiune a bazelor dedate. Re]ele de calculatoare. Re]ele [i arhitectura client/server.Avantajele program\rii

MODULUL 2 Sistemul de gestiune a bazelor de date rela]ionale Visual FoxPro

Descrierea mediului Visual FoxPro. Caracteristici generale.Structura func]ional\ a sistemului Visual Fox Pro. Instalarea [iconfigurarea Visual FoxPro. Elementele interfe]ei Visual FoxPro.Componentele unei baze de date rela]ionale. Construirea bazelorde date – elemente introductive

MODULUL 3 Exploatarea bazelor de date

Prelucrarea interactiv\ a datelor din bazele de date. Editareacon]inutului bazelor de date. Opera]ii uzuale. Comenzi VisualFoxPro pentru prelucrarea interactiv\ a datelor. Comenzi pentrustructura tabelelor. Comenzi pentru modificarea datelor din tabele.C\utarea datelor în tabele. Sortarea [i ordonarea datelor

MODULUL 4 Construirea bazelor de date

Crearea unei baze de date. Facilit\]i ale bazelor de date.Proceduri. Importul [i exportul datelor. Tipuri de date gestionateîn Visual FoxPro. Tipul logic. Tipul numeric. Tipul [ir decaractere. Sub[iruri de caractere. Tipul dat\ calendaristic\

MODULUL 5 Func]ii [i proceduri definite de utilizatori

Variabile. Crearea programelor în Visual FoxPro. Modularizareaaplica]iilor. Variabile locale [i variabile globale. Comenzi pentrumanipularea fi[ierelor. Comenzi pentru stabilirea mediului delucru. Calcule cu câmpurile unei tabele

MODULUL 6 Alte facilit\]i ale bazelor de date

Câmpurile memo. Legare [i încorporare de obiecte. Lucrul cubazele de date. Indec[i. Construirea integrit\]ii referen]iale.Integritatea rela]ional\

MODULUL 7 Elemente de programare structurat\

No]iunea de algoritm. Modalit\]i de reprezentare a algoritmilor.Programarea structurat\. Principalele structuri utilizate înschemele logice

Page 5: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\4

MODULUL 8 Programarea orientat\ pe obiecte (POO)

Aspecte generale. Obiecte [i clase. Caracteristicile modeluluiorientat pe obiecte. Încapsularea [i mo[tenirea. Terminologiamodelului bazat pe obiecte. Propriet\]i, evenimente [i metode.Domeniul variabilelor. Limbajul în programarea orientat\ peobiecte. Clasele de baz\

MODULUL 9 Programarea bazat\ pe evenimente

Crearea claselor. Crearea subclaselor. Instan]ierea. Bibliotecilede clase. Înregistrarea bibliotecilor de clase vizuale. Instrumentede creare a claselor. Crearea unei forme noi. Propriet\]i [i metodeale formelor în ansamblu

MODULUL 10 Utilizarea controalelor

Meniul Form. Controalele grup de butoane de op]iuni (OptionButtons). Controalele grup de butoane de comand\ (OptionGroups). Grilele (Grid). Controalele Page Frame. Controlul Timer(cronometru). Utilizarea controalelor. Meniurile. Componenteleunui meniu. Construirea unui meniu. Propriet\]ile globale alemeniului

MODULUL 11 Rapoarte. Depanarea programelor

Modul de creare a unui raport. Sec]iunile raportului. Tipuri deelemente incluse în raport. Afi[area [i tip\rirea rapoartelor.Constructorul de etichete. Depanarea programelor. Modul de lucrucu depanatorul din Visual FoxPro. Instrumente de depanare.Tratarea erorilor

MODULUL 12 Project Manager

Fereastra Project Manager. Interogarea (Query Designer).Vederi. View Designer. Vederile locale [i la distan]\. Tehnologiaclient/server

Page 6: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

5lec]ie demonstrativ\Ini]iere `n programare

Fiecare caiet de curs ̀ ncepe cu o scurt\ introducere care are rolul de a v\prezenta succint informa]iile ce urmeaz\ a fi expuse. Pentru ̀ nceput, v\

prezent\m introducerea modului 2, ̀ n care sunt prezentate no]iuni generaleprivind sistemul de gestiune a bazelor de date rela]ionale Visual FoxPro

Sistemul de gestiune a bazelor de date rela]ionale Visual FoxPro

Introducere

Proiectarea unei baze de date [i scrierea programelor de prelucrare [i gestiune adatelor reprezint\ o activitate laborioas\, care necesit\ mult\ creativitate. ~n primulrând, trebuie identificate toate elementele care vor compune noul sistem. Un primpas este reprezentat de g\sirea unei modalit\]i de transpunere a informa]iilor dinlumea real\ ̀ n elemente cuantificabile, apoi trebuie proiectat\ o structur\ unificat\,corespunz\toare naturii informa]iilor, dup\ care trebuie construit\, pentru utilizator,o modalitate de a interac]iona cu datele.

Proiectarea corect\ a bazei de date conduce la g\sirea unor solu]ii simple deprogramare [i de reducere a timpilor de scriere a unei aplica]ii. ~n plus, dezvoltarea seface cu u[urin]\ [i chiar cu pl\cere, iar efectele acestei abord\ri nu vor `ntârzia s\apar\. ~n caz contrar, apar cu siguran]\ blocaje, imposibilitatea de a scrie o component\dup\ modelul ales [i aceasta duce inevitabil la refacerea unei p\r]i sau uneori chiar larescrierea total\.

~n general, efortul ini]ial de creare a unei baze de date este mai mare decât cel necesarpentru realizarea unei foi de calcul tabelar sau a unui document. Dar foile de calculnu au posibilit\]i rela]ionale, de aici rezultând [i caracterul restrictiv al acestora.Eforturile dumneavoastr\ vor fi recompensate ̀ n momentul ̀ n care ve]i dori s\ extrage]iinforma]iile. Baza de date v\ permite s\ localiza]i rapid un element, s\ face]i compara]ii[i s\ ob]ine]i cu u[urin]\ rapoarte complexe.

Visual FoxPro este un sistem de baze de date rela]ional care simplific\ administrareadatelor, v\ ajut\ s\ organiza]i datele [i s\ crea]i aplica]ii care gestioneaz\ datele.Visual FoxPro v\ permite s\ crea]i aplica]ii complexe, oferindu-v\ un mediu dedezvoltare cu instrumente puternice de programare orientat\ pe obiecte, cu posibilit\]ide integrare cu alte aplica]ii [i capacit\]i client/server.

~ncepând cu acest modul vom trece la prezentarea sistemului Visual FoxPro 6.0.Având ̀ n vedere faptul c\ sistemul este foarte vast, vom ̀ ncerca s\ parcurgem [i s\definim cât mai multe dintre posibilit\]ile acestuia, dându-v\ `n acest fel impulsulnecesar pentru realizarea propriilor proiecte. Nu vom insista foarte mult asupra interfe]eimediului Visual FoxPro, ci ne vom concentra asupra aspectelor legate de utilizare [ine vom apropia de ceea ce ne intereseaz\ ̀ n mod special, [i anume programarea.

Caracteristici generale

FoxPro este un sistem de gestiune a bazelor de date rela]ionale pentru microcalculatoarecompatibile IBM-PC. Produsele elaborate dup\ modelul conceptual rela]ional auînceput cu dBASE în versiunile II, III, III+, IV, apar]inând ini]ial firmei Ashton Tate,devenind mai târziu ale firmei Borland. Au continuat cu Fox în diferite versiuniconcepute de c\tre firma Fox Software, ulterior achizi]ionate de cea mai mare firm\din domeniul software-ului, Microsoft.

Page 7: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\6

FoxPro s-a impus pe pia]a SGBD-urilor pe PC-uri înc\ de la primele versiuni 1.02[i 2.0. Cump\rarea [i dezvoltarea lui de c\tre firma Microsoft a condus la apari]iaversiunilor 2.5 [i 2.6, care au plasat produsul spre vârful ierarhiei în acest domeniu.

~n versiunile 2.5 [i 2.6, FoxPro a fost conceput pentru a lucra fie sub DOS sauUNIX (în modul de lucru caracter), fie sub Windows sau Macintosh (în modul delucru grafic).

Din concuren]a firmelor de software Borland (cu produsele dBASE [i Paradox),Nantucket (cu produsul Clipper) [i Microsoft (cu produsul FoxPro), s-a ajuns laversiunea FoxPro, care ofer\ posibilitatea transferului de elemente (ecrane, rapoarte,proiecte) între versiunile FoxPro care lucreaz\ sub diferite sisteme de operare.

În domeniul limbajelor de programare, principalele rivale sunt firmele Microsoft [iBorland. Referindu-ne la SGBD-uri, politica firmei Microsoft de a dezvolta produsulFoxPro pe baza dBASE-ului a avut drept scop atragerea utilizatorilor care proiecteaz\aplica]ii de baze de date.

Prin ultimele versiuni, FoxPro este considerat cel mai performant din familia amintit\,datorit\ urm\toarelor caracteristici principale:

• dispune de tehnici de optimizare, dintre care cea mai important\ este tehnicaRushmore, prin care se realizeaz\ compresarea indec[ilor, efectul fiind reducereadimensiunii fi[ierelor index cu pân\ la 80%;

• prin noile tehnologii de acces la date, tehnologia Rushmore a dus la cre[terea cumult a vitezei de prelucrare fa]\ de alte SGBD-uri;

• dispune de un limbaj procedural propriu foarte performant, care asigur\ descrierea[i manipularea datelor, precum [i de un nucleu al limbajului neproceduralSQL (Structured Query Language); aceste limbaje se adreseaz\ profesioni[tilor,asigurând utilizarea [i dezvoltarea de programe de mare complexitate;

• pentru a se adresa unei game cât mai largi de utilizatori, sistemul Visual FoxProare componente ce pot fi apelabile atât de la tastatur\, cât [i cu ajutorul mouse-ului;

• poate importa fi[iere din Excel, Lotus, Paradox, Symphony, Multiplan, RapidFile, ASCII;

• poate exporta fi[iere în Excel, Lotus, ASCII, Symphony, Multiplan, RapidFile etc.;

• dezvolt\ programe structurate de cel mai înalt nivel (utilizând comenzile pentrurealizarea structurilor secven]iale, alternative [i repetitive) [i modularizate (prinscrierea programelor sub form\ de proceduri);

• în func]ie de cerin]e, poate fi instalat în întregime sau pot fi instalate numaimodulele necesare aplica]iei;

• poate fi utilizat pe sta]ii de lucru individuale sau în re]ea, având ca avantaj cre[tereaeficien]ei de utilizare a resurselor sistemului;

• ultimele versiuni dispun de un mecanism evoluat de conversie a programelor [ia aplica]iilor scrise în versiunile anterioare de FoxPro.

Page 8: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

7lec]ie demonstrativ\Ini]iere `n programare

Pentru a v\ facilita re]inerea defini]iilor [i a exemplelor, acestea au fostmarcate prin semne grafice. Acest tip de eviden]iere se reg\se[te pe

parcursul ̀ ntregului curs [i pentru exemplificare v\ prezent\m câtevafragmente din modulul 3.

Opera]ii uzuale pentru ad\ugarea datelor în tabele

Comanda APPEND

Înc\rcarea cu date a tabelei se poate face imediat dup\ crearea structurii dac\ lamesajul “Input data record now? Y/N“ se r\spunde cu Y. De asemenea, ulterior sepot ad\uga înregistr\ri în tabel\ cu ajutorul comanzii APPEND. Dac\ tabela r\mânevid\ dup\ descrierea structurii, cu APPEND se demareaz\ înc\rcarea acesteia.

Sintaxa comenzii:

APPEND [BLANK]Adaug\ o înregistrare în tabel\ prin deschiderea unei ferestre implicite de introducere.Ie[irea din fereastra de introducere se realizeaz\ cu CTRL+W sau CTRL+END.Tasta PgUp permite deplasarea la înregistr\rile anterioare, iar tasta PgDn deplaseaz\cursorul pe înregistr\rile urm\toare. Dac\ deplasarea s-a f\cut dincolo de ultimaînregistrare se declan[eaz\ modul de lucru APPEND. Comanda APPEND cu op]iuneaBLANK adaug\ o înregistrare vid\ la sfâr[itul tabelei f\r\ a activa modul de lucruecran. Aceast\ înregistrare devine înregistrare curent\ [i poate fi completat\ cu altecomenzi Visual FoxPro.

La execu]ia comenzii APPEND se actualizeaz\ fi[ierele indexate activate.

Exemplu

Pentru ad\ugarea de înregistr\ri utilizând fereastra de introducere implicit\:USE PersonalAPPEND

Exemplu

Pentru a ad\uga o înregistrare vid\ f\r\ a deschide fereastra de introducereimplicit\:USE PersonalAPPEND BLANK

~nc\rcarea înregistr\rii vide se realizeaz\ [i cu alte comenzi de actualizare(BROWSE, CHANGE, REPLACE).

Dac\ tabela nu este activat\ [i se tasteaz\ comanda APPEND, se deschide ofereastr\ pentru selectarea tabelei.

i

i

Page 9: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\8

Comenzile FIND [i SEEK

Caut\ direct într-o tabel\ indexat\ prima înregistrare cu cheia specificat\.

Comanda FIND

Sintaxa comenzii:FIND ExprCheie

ExprCheie poate fi un num\r sau un [ir de caractere.

FIND utilizeaz\ un index fie sub forma unui fi[ier index simplu (.IDX), fie subforma unui fi[ier index compus (.CDX). Indexul utilizat este numit index principal[i poate fi activat cu clauza INDEX din comanda USE, cu SET INDEX sau cuSET ORDER.

Este de remarcat faptul c\ FIND caut\ un [ir de caractere specificat [i nucon]inutul unei variabile. De exemplu, dac\ avem variabila:obiect=”scaun birou”comanda:FIND obiectnu va c\uta dup\ [irul “scaun birou”, ci chiar dup\ [irul “obiect”.

Pentru a c\uta con]inutul unei variabile se utilizeaz\ operatorul &, care realizeaz\func]ia de macrosubstitu]ie. În acest caz, comanda opereaz\ asupra con]inutuluivariabilei referit\ prin numele ei [i nu dup\ numele variabilei. În aceast\ situa]ie,comanda se va scrie astfel:

FIND &obiect

i

i

Comanda SEEK

Caut\ într-o tabel\ indexat\ prima înregistrare a c\rei cheie rezult\ din evaluareaunei expresii.

Sintaxa comenzii:SEEK expresie• expresie trebuie s\ fie de acela[i tip cu tipul câmpului din structura înregistr\rii.

Comanda FIND se recomand\ atunci când se lucreaz\ în fereastra decomand\, iar SEEK este preferabil\ în programe.

La executarea comenzii SEEK, pentru reg\sirea cheii în fi[ierul index, se pot returnarezultate false datorit\ faptului c\ este diferen]\ între literele mari [i cele mici. Înacest caz, este bine s\ se utilizeze func]iile UPPER( ) de transformare a literelormici în litere mari [i LOWER( ) de transformare a literelor mari în litere mici.

Page 10: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

9lec]ie demonstrativ\Ini]iere `n programare

Tabelele au rolul de a completa ̀ ntr-un mod adecvat informa]iileprezentate. Din modulele 4 [i 6, am selectat câteva fragmente pentru

exemplificare.

Tipul numeric

O mare parte a datelor prelucrate de calculator este reprezentat\ de numere, pentrua c\ror descriere se folose[te tipul numeric. Cu toate c\ limbajul Visual FoxPro esteun limbaj orientat pe lucrul cu baze de date [i nu unul orientat pe calcule matematice,[tiin]ifice, tipul numeric este implementat astfel încât s\ permit\ realizarea majorit\]iiopera]iilor matematice întâlnite în practic\.

De asemenea, sunt prev\zute o serie de func]ii prin care se pot calcula func]iilematematice elementare, cum ar fi exponen]iala, logaritmul, func]iile trigonometriceetc., putându-se astfel realiza calcule matematice mai complexe cu efort minim.

Operanzii numerici care intervin în expresii pot fi:

• câmpuri numerice ale unei baze de date;

• func]ii care returneaz\ valori numerice;

• variabile de tip numeric;

• constante numerice.

Operatorii care se aplic\ unor operanzi numerici, având ca rezultate tot valorinumerice, sunt sintetiza]i în tabelul urm\tor:

rotarepO ei]acifinmeS

),( eliiserpxe\zaepurg

^,** eretupaleracidir

%,/,* )iiri]r\pmîlutser(oludom,eri]r\pmî,eri]lumnî

-,+ ered\cs,eranuda

Prioritatea operatorilor din acest tabel scade de sus în jos, iar pe acela[i nivel deprioritate evaluarea se face de la stânga la dreapta, în ordinea apari]iei operatorilorîn expresie.

Între dou\ expresii numerice se pot aplica, de asemenea, operatori rela]ionali,ob]inându-se astfel expresii logice. Ace[ti operatori sunt prezenta]i în tabelul urm\tor:

rotarepO ei]acifinmeS

< tâcedcimiam

> tâcederamiam

= uclage

== iruri[urtnepetatilage

=!,#,>< edtirefid

=< uclageuascimiam

=> uclageuaseramiam

Page 11: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\10

Închiderea unei baze de date

Pute]i închide o baz\ de date cu ajutorul comenzii CLOSE DATABASE.

Principalele comenzi pentru manipularea bazelor de date container sunt:

ai]cnuF/adnamoC aenui]cA

ESABATADETAERC reniatnocetaded\zab\uono\zaeerC

ESABATADNEPO \tnetsixereniatnocetaded\zaboedihcseD

OTESABATADTES \sihcsedetaded\zabourculed\tnerucanoznîecudA

ESABATADYFIDOM etaded\zaboacifidomaurtneprengiseDesabataDedihcseD

ERUDECORPYFIDOM \tnerucetadedazabnîetacotsirudecorp\cifidom/\zaeerC

SERUDECORPDNEPPA nretxerei[ifnu-rtnidetacotsirudecorp\guadA

SERUDECORPYPOC nretxerei[ifnu-rtnîetacotselirudecorp\zaipoC

ESABATADELIPMOC \tnerucetadedazabnidetacotselirudecorp\zaelipmoC

ESABATADYALPSID/TSIL \tnerucetadedazaberpsedii]amrofni\zae[ifA

YALPSID/TSILSERUDECORP

edazabnîetacotselirudecorperpsedii]amrofni\zae[ifA\tnerucetad

ESABATADKCAP azabnîeregret[urtnepetacramelir\rtsigernîvitinifedegret{\tnerucetaded

ESABATADETADILAV \zaerepucero,lanoi]po,i[etadediezabaetatidilav\cifireV\taroiretedetse\cad

)(CBD \tnerucetadedazabert\caelaci[elemun\zaenruteR

)(DESUBD \sihcsedetseetaded\zab\timunao\cad\cifireV

)(SESABATADA esihcsedetadedelezabetaotucrotcevnu\zaeerC

)(STCEJBOBDA \tnerucetadedazabnideletceiboetaotucrotcevnu\zaeerC

)(PORPTEGBD etadedezabienuaetateirporpoeni]bO

)(PORPTESBD etadediezabaetateirporpo\zaeteS

ESABATADESOLC etaoti[elaselelebatetaot,\tnerucetadedazabedihcnÎerebilelelebat

ESABATADETELED uasegret[,lanoi]po,i[csidepedetadedazabegret{elaselelebat\zaerebile

Lucrul cu tabelele din bazele de date

O tabel\ Visual FoxPro (fi[ier .dbf) poate exista în unul dintre cele dou\ moduri: catabel\ asociat\ unei baze de date sau ca tabel\ liber\. Tabelele sunt libere dac\ suntcreate f\r\ a fi incluse într-o baz\ de date, altfel sunt ad\ugate automat în baza dedate (dac\ nu este folosit\ clauza FREE).

Tabelele asociate cu o baz\ de date au mai multe avantaje fa]\ de cele libere. Cândtabela este o parte component\ a unui fi[ier baz\ de date, ea poate avea:

• nume lungi pentru tabel\ [i pentru fiecare câmp din structur\;•comentarii pentru fiecare câmp;

• valori implicite, m\[ti [i formate de introducere pentru fiecare câmp;

• reguli la nivel de câmp [i la nivel de înregistrare;

• indec[i primari [i rela]ii între tabele pentru a impune integritatea referen]ial\;

• declan[atori pentru evenimentele de inserare, actualizare [i [tergere.

Page 12: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

11lec]ie demonstrativ\Ini]iere `n programare

Fiecare lec]ie a acestui curs con]ine o serie de exemple [i exerci]ii bazate peinforma]iile expuse pe parcursul acesteia. }inând cont de importan]a ̀ nsu[irii [i

consolid\rii cuno[tin]elor, al\turi de fiecare exerci]iu ve]i intâlni exempleasem\n\toare. V\ prezent\m ̀ n continuare astfel de fragmente din modulele 7 [i 8.

e

Structura repetitiv\ condi]ionat\ anterior

Structura este implementat\ prin comanda DO WHILE... ENDDO cu urm\toareasintax\:

DO WHILE <expL> <comenzi> [LOOP] [EXIT]ENDDO

Se evalueaz\ expresia logic\ <expL> [i, dac\ este adev\rat\, se execut\ setul decomenzi ce urmeaz\ pân\ la ENDDO. Fiecare DO WHILE trebuie s\ se încheiecu ENDDO. Dac\ <expL> devine fals\, ciclul este închis [i pointerul de control sepozi]ioneaz\ la urm\toarea comand\ ce urmeaz\ dupa ENDDO.

Clauza LOOP va determina reluarea execut\rii comenzii DO WHILE.

Dac\ este specificat\ clauza EXIT, aceasta returneaz\ controlul programului laurm\toarea comand\ ce urmeaz\ lui ENDDO. Aceasta reprezint\ o ie[ire for]at\din structura repetitiv\. EXIT poate ap\rea oriunde în ciclul DO WHILE… ENDDO.

Exemplu

a=1DO WHILE a<=100 IF a>50 a=a+2 ELSE a=a+1 ENDIFENDDO?a

Sunt permise structuri DO WHILE imbricate în modul urm\tor:

DO WHILE <condi]ie1> <comenzi> DO WHILE <condi]ie2> <comenzi> ENDDO <comenzi>ENDDO

Exerci]iul 2

Scrie]i o bucl\ DO WHILE pentru parcurgerea de la sfâr[it la începuta unei tabele.

Page 13: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\12

READ EVENTS [i CLEAR EVENTS

Comanda READ EVENTS porne[te procesorul de evenimente în timpul rul\riiunui program. Toate instruc]iunile care urmeaz\ dup\ comanda READ EVENTS

nu vor fi rulate pân\ când comanda READ EVENTS nu este dezactivat\.Comanda CLEAR EVENTS opre[te procesorul de evenimente. Dup\ ce CLEAR

EVENTS a fost executat\, controlul în program este returnat la prima linie dup\READ EVENTS.

Exemplu

Exemplul urm\tor este un program foarte simplu, care arat\ cum sedefine[te o clas\, cum se creeaz\ un obiect cu func]iaCREATEOBJECT() [i cum se utilizeaz\ READ EVENTS [iCLEAR EVENTS.

Forma1=CREATEOBJECT(“FormaTest”) && se creeaza obiectul

WITH Forma1

.Caption=”Aceasta este Forma1”

.AutoCenter=.T.

ENDWITH

Forma1.SHOW

READ EVENTS && se porneste procesorul de evenimente

RETURN

* definitia clasei

DEFINE CLASS FormaTest AS Form

ADD OBJECT Buton1 AS CommandButton WITH ;

Caption = 'Iesire', ;

Left = 6, ;

Top = 2, ;

AutoSize = .T.

PROCEDURE Buton1.Click

=MessageBox(“Gata”, 16, “READ EVENTS”)

RELEASE THISFORM && se inchide forma

CLEAR EVENTS && se opreste procesorul de evenimente

ENDPROC

ENDDEFINE

Fig. 5. Forma creat\ [i mesajul care apare când se d\ clic pe butonul Iesire.Dup\ ce se d\ clic [i pe butonul OK, forma va fi închis\.

Page 14: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

13lec]ie demonstrativ\Ini]iere `n programare

e

eExerci]iul 1

Crea]i un fi[ier program [i introduce]i exemplul de mai sus exact a[acum este scris. Executa]i apoi programul.

Exemplu

Exemplul urm\tor utilizeaz\ metoda AddObject() pentru a transmite doiparametri la evenimentul Init al butonului de comand\ Buton1.

Forma1=CREATEOBJECT(“FormaTest”)

Forma1.SHOW

READ EVENTS

DEFINE CLASS FormaTest AS Form

* Proprietatile formei

AutoCenter = .T.

PROCEDURE Init

ThisForm.AddObject(“Buton1”,”Buton”,”Placinte”,;

“Clatite”)

WITH ThisForm.Buton1

.Caption = “Cancel”

.Top = 25

.Autosize = .T.

.Left = 30

.Visible = .T.

ENDWITH

ENDPROC

ENDDEFINE

DEFINE CLASS Buton AS CommandButton

PROCEDURE Init

PARAMETERS X,Y

=MessageBox(x+” si “+y, 32, “AddObject”)

ENDPROC

PROCEDURE Click

RELEASE THISFORM

CLEAR EVENTS

ENDPROC

ENDDEFINE

Exerci]iul 2

În exemplul de mai sus încerca]i s\ modifica]i procedura Init, astfelîncât s\ transmite]i 3 parametri. Vizualiza]i [i acest al treilea parametruîmpreun\ cu ceilal]i doi.

Page 15: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\14

Accesibilitatea cursului este asigurat\ de capturile de imagini reprezentative,permi]ând ̀ nsu[irea con]inutului chiar [i de c\tre cei neini]ia]i ̀ n domeniu.

Pentru exemplificare v\ prezent\m fragmente din modulul 9.

Interfa]a Class Designer

Class Designer (ca [i Form Designer) permite ca propriet\]ile [i metodele claseis\ fie manipulate prin interfa]\. Fereastra Properties poate fi utilizat\ pentru avizualiza [i modifica set\rile pentru propriet\]i (aceea[i ca [i set\rile de propriet\]idin Form Designer).

Fig. 11. Interfa]a Class Designer

Meniul Class

Dup\ ce dialogul Class Designer a ap\rut pe ecran, în bara de meniu Visual FoxPro aap\rut o nou\ op]iune Class, cu ajutorul c\reia pute]i introduce propriet\]i [i metode noi.

Fig. 12. Op]iunile meniului Class

Page 16: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

15lec]ie demonstrativ\Ini]iere `n programare

Ad\ugarea propriet\]ilor [i metodelor unei clase

Pentru a introduce o proprietate nou\:

• Din meniul Class, alege]i New Property. Va ap\rea urm\toarea fereastr\ dedialog:

Fig. 13. Introducerea unei propriet\]i noi pentru o clas\

• În câmpul Name tasta]i numele noii propriet\]i.

• Din lista Visibility selecta]i vizibilitatea propriet\]ii. Op]iunile posibile sunt:Public, Protected, Hidden. Propriet\]ile protejate nu pot fi accesate deinstan]ele clasei, dar pot fi accesate de subclase. Propriet\]ile ascunse nu potfi accesate nici de subclase.

• Prin op]iunea Access Method specifica]i dac\ exist\ o metod\ pentru aceast\proprietate. Instruc]iunile din aceast\ metod\ sunt executate de fiecare dat\când proprietatea este apelat\. Dac\ a]i selectat aceast\ op]iune, va fi creat\[i o metod\ cu numele propriet\]ii [i termina]ia _access.

• Op]iunea Assign Method este asem\n\toare cu Access Method, numai c\metoda creat\ va fi executat\ când se încearc\ modificarea valorii propriet\]ii.Termina]ia metodei create va fi _assign.

• Pute]i s\ include]i [i o descriere a propriet\]ii, care, atunci când proprietateaeste selectat\, va fi afi[at\ în partea de jos a ferestrei Properties în Class

Designer.

Fig. 14. Introducerea unei metode noi pentru o clas\

Page 17: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\16

Tab-ul Class

Tab-ul Class con]ine informa]ii generale despre clas\.

Fig. 16. Tab-ul Class

• Toolbar Icon specific\ icoana care va reprezenta clasa pe bara de instrumentea controalelor.

• Container Icon reprezint\ icoana care va fi afi[at\ în Class Browser careprezentare grafic\ a clasei.

• Scale Units poate fie Pixels sau Foxels [i reprezint\ unitatea de m\sur\ pentruclas\. Foxels este echivalentul în\l]imii [i l\]imii medii a unui caracter bazatpe fontul curent al formei în care este con]inut un obiect. Foxels este folositorcând se dezvolt\ aplica]ii pentru platforme grafice sau caracter diferite.

• Descrierea unei clase poate fi modificat\ ̀ n Description.

• Informa]iile Class Name, Parent Class [i Class Library sunt read-only.Acestea arat\ numele clasei pe care clasa este bazat\ [i fi[ierul .VCX în carese afl\.

Page 18: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

17lec]ie demonstrativ\Ini]iere `n programare

La finalul fiec\rui modul ve]i ̀ ntâlni câte o recapitulare, ̀ n care suntprezentate succint [i schematic cele mai importante informa]ii expuse pe

parcurs. V\ prezent\m ̀ n continuare recapitularea modului 10, ̀ n care sunttratate modalit\]ile de utilizare a controalelor.

Recapitularea modulului 10

10.1 Controalele grup de butoane de op]iuni (Option Buttons) sunt controalecare con]in un num\r de op]iuni din care nu poate fi selectat\ la un momentdat decât o op]iune. Din aceast\ cauz\ mai sunt numite [i butoane radio.

10.2 Controalele grup de butoane de comand\ (Option Groups) sunt controalecare con]in un num\r de butoane de comand\ care pot s\ fie tratate ca ounitate.

10.3 Controalele Grid (grile) sunt controale container sub form\ de grile ce v\permit s\ prezenta]i datele în format tabelar. Controalele componente ale uneigrile sunt coloanele, header-ele [i controalele con]inute de coloane.

10.4 Controalele Page Frame sunt containere folosite pentru crearea de paginialternante. Fiecare pagin\ poate con]ine un set de controale grupate dup\anumite criterii. O singur\ pagin\ a controlului poate fi activ\ la un momentdat în form\.

10.5 Controalele Timer sunt utilizate pentru lansarea periodic\ a unor evenimenteîntr-o aplica]ie. Aceste controale nu sunt vizibile în program.

10.6 Mediul de date (Data environment) reprezint\ toate tabelele, vederile [irela]iile care trebuie s\ fie deschise când rula]i sau modifica]i o form\. Mediulde date este salvat cu forma [i poate fi modificat în Data EnvironmentDesigner.

10.7 Sesiunea de date (Data session) este o reprezentare a mediului curent delucru utilizat de o form\ sau set de forme. Fiecare sesiune de date con]inepropriul set de zone de lucru. Aceste zone de lucru con]in tabelele deschise,indec[ii [i rela]iile lor.

10.8 Obiectele Form au o proprietate foarte important\, numit\ WindowType,prin care se poate stabili comportamentul general al unei forme. Aceasta poateavea valorile:

Page 19: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\18

• Modal – forma de]ine controlul permanent;

• Modeless – se poate comuta la o alt\ form\ sau se poate lansa o alt\op]iune dintr-un meniu.

10.9 Ordinea controalelor (tab order) reprezint\ ordinea în care controalele dintr-o form\ sunt parcurse atunci când ap\sa]i tasta TAB.

10.10 Variabila _SCREEN este o variabil\ sistem (este creat\ automat la lansareasistemului) [i cu ajutorul ei se poate manipula fereastra principal\ a VisualFoxPro ca orice obiect. Prin variabila _SCREEN se pot specifica propriet\]ile[i metodele ferestrei principale Visual FoxPro dup\ aceea[i sintax\ demanipulare a obiectelor dintr-o form\.

10.11 Meniurile sunt liste de elemente care declan[eaz\ comenzi atunci când sealege una dintre op]iuni. Generatorul de meniuri (Menu Designer) permiteintroducerea sau [tergerea op]iunilor din meniuri sau submeniuri. De asemenea,pentru fiecare meniu sau op]iune ata[eaz\ proceduri [i comenzi ce vor fi lansateîn execu]ie în momentul select\rii meniului / op]iunii.

Elementele care definesc un meniu sunt:

• bara de meniu – o fâ[ie orizontal\ care apare de-a lungul p\r]ii de sus aecranului [i con]ine numele meniurilor;

• articolul de meniu – o comand\ de meniu sau nume de fi[ier listate într-un meniu. Pute]i s\ crea]i [i s\ defini]i elemente de meniu pentruaplica]iile dumneavoastr\ utilizând Menu Designer;

• textul meniului – un cuvânt, expresie, sau icoan\ de pe bara de meniucare desemneaz\ un meniu. Selectând textul meniului se va produceextinderea meniului în jos. Este adesea referit ca un nume de meniu;

• meniul sistem – combina]ia dintre bara de meniu, meniuri [i articole demeniu;

• meniu generat – este un program generat cu ajutorul generatorului demeniuri. Programele de meniu generate au extensia .MPR.

Page 20: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

19lec]ie demonstrativ\Ini]iere `n programare

Toate lec]iile au la final o tem\ pentru acas\, care are rolulde a v\ testa cuno[tin]ele ̀ nsu[ite.

Tema pentru acas\ 11

Alege]i r\spunsurile corecte. Facem men]iunea c\ întreb\rile pot avea mai

multe r\spunsuri corecte.

1. Alege]i comanda prin care pute]i trimite rezultatul rul\rii raportului Raport1.frxîntr-un fi[ier text.

a) REPORT FORM Test.FRX TO FILE xxx.txt ASCII

b) REPORT FORM Test.FRX TO FILE xxx.txt

c) REPORT FORM Test.FRX TO xxx.txt ASCII

2. Într-un raport, toate rândurile afi[ate trebuie separate de o linie orizontal\pentru a-l face mai u[or de urm\rit. În ce band\ trebuie introdus un controlgrafic de tip linie?

a) banda Page Header;

b) banda Page Footer;

c) banda DETAIL.

3. Într-un raport, pe prima pagin\ trebuie afi[at un titlu, iar pe toate paginiletip\rite trebuie s\ apar\ capul de tabel. Unde trebuie introduse cele dou\elemente?

a) ambele în banda de titlu TITLE;

b) ambele în banda PAGE HEADER;

c) titlul se afi[eaz\ în banda de titlu TITLE, iar capul de tabel în banda PAGEHEADER.

4. Dori]i s\ grupa]i datele dup\ un câmp, iar la sfâr[itul grupului s\ afi[a]i totaluriale grupului curent. Cum pute]i afi[a totaluri pe grupuri?

a) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iartotalul se va afi[a în GROUP HEADER.

b) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iartotalul se va afi[a în GROUP FOOTER.

c) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iartotalul se va afi[a în PAGE FOOTER.

Page 21: Fox Pro TL - eurocor.ro · date folosind acest sistem, despre principalele comenzi [i func]ii specifice Visual FoxPro. În ultima parte a cursului, accentul se va pune pe construirea

Ini]iere `n programarelec]ie demonstrativ\20

Cu aceasta se ̀ ncheie lec]ia demonstrativ\ a cursului deIni]iere ̀ n programare. ~n speran]a c\ materialul prezentat v-a convins de

accesibilitatea [i atractivitatea cursuluiv\ a[tept\m s\ deveni]i cursant al Institutului Eurocor ̀ nscriindu-v\ la

cursul de Ini]iere ̀ n programare.

tel. 021/33.225.33; www.eurocor.ro

Temele se rezolv\ pe formulare speciale, dispuse la sfâr[itul fiec\rui caiet.