Lectie Demo Initiere in Programare
-
Upload
chiba-nicolae-florin -
Category
Documents
-
view
258 -
download
0
description
Transcript of Lectie Demo Initiere in Programare
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 1/21
Iniþiere în programareIniþiere în programareVisual FoxProVisual FoxPro
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 2/21
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 anume
Visual FoxPro. Cursul se adreseaz\ tuturor celor interesa]i s\ se ini]ieze în lucrul cu bazele 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 sare
peste 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 a
particularit\]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 executarea
programelor [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 aici
fragmente din caietele de curs, exemple, exerci]ii, precum [i un model de rezumat[i de tem\ pentru acas\.
V\ dorim mult succes!
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 3/21
Ini]iere `n programarelec]ie demonstrativ\2
e
i
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 prezentarea 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]iile practice, 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, pemarginea 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).
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 4/21
3lec]ie demonstrativ\Ini]iere `n programare
Programa cursului de Ini]iere în programare – Visual FoxPro
MODULUL 1 Baze de date. Elemente introductiveConceptul de baze de date. Tipuri de baze de date. Obiectivele
bazelor 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 FoxProDescrierea 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 bazelor de date – elemente introductive
MODULUL 3 Exploatarea bazelor de datePrelucrarea 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 dateCrearea 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 utilizatoriVariabile. 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 dateCâmpurile memo. Legare [i încorporare de obiecte. Lucrul cu
bazele 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
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 5/21
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 evenimenteCrearea 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 programelorModul 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 ManagerFereastra Project Manager. Interogarea (Query Designer).Vederi. View Designer. Vederile locale [i la distan]\. Tehnologiaclient/server
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 6/21
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 generale
privind sistemul de gestiune a bazelor de date rela]ionale Visual FoxPro
Sistemul de gestiune a bazelor de date rela]ionale Visual FoxProIntroducere
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 prim
pas este reprezentat de g\sirea unei modalit\]i de transpunere a informa]iilor din
lumea 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 de programare [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 necesar
pentru 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 generaleFoxPro 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.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 7/21
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.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 8/21
7lec]ie demonstrativ\Ini]iere `n programare
Pentru a v\ facilita re]inerea defini]iilor [i a exemplelor , acestea au fost marcate prin semne grafice. Acest tip de eviden]iere se reg\se[te pe
parcursul ̀ ntregului curs [i pentru exemplificare v\ prezent\m câteva
fragmente 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 se
pot ad\uga înregistr\ri în tabel\ cu ajutorul comanzii APPEND. Dac\ tabela r\mâne
vid\ 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.
TastaPgUp permite deplasarea la înregistr\rile anterioare, iar tastaPgDn 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 lucru
ecran. 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
ExempluPentru 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 o fereastr\ pentru selectarea tabelei.
i
i
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 9/21
Ini]iere `n programarelec]ie demonstrativ\8
Comenzile FIND [i SEEK
Caut\ direct într-o tabel\ indexat\ prima înregistrare cu cheia specificat\.
Comanda FINDSintaxa 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 obiect nu 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. În
acest caz, este bine s\ se utilizeze func]iile UPPER( ) de transformare a literelor mici în litere mari [i LOWER( ) de transformare a literelor mari în litere mici.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 10/21
9lec]ie demonstrativ\Ini]iere `n programare
Tabelele au rolul de a completa ̀ ntr-un mod adecvat informa]iile prezentate. 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]acif inmeS
),( eliiser pxe\zae pur g
^,** er etu paler acidir
%,/,* )iir i]r \ pmîlutser (oludom,er i]r \ pmî,er i]lumnî
-,+ er ed\cs,er anuda
Prioritatea operatorilor din acest tabel scade de sus în jos, iar pe acela[i nivel de prioritate 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:
r otar e pO ei]acif inmeS
< tâcedcimiam
> tâceder amiam
= uclage
== ir ur i[ur tne petatilage
=!,#,>< edtir ef id
=< uclageuascimiam
=> uclageuaser amiam
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 11/21
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
ESABATADETAER C r eniatnocetaded\za b\uono\zaeer C
ESABATAD NEPO \tnetsixer eniatnocetaded\za boedihcseD
OTESABATADTES \sihcsedetaded\za bour culed\tner ucanoznîecudA
ESABATADYFIDOM etaded\za boacif idomaur tne pr engiseDesa bataDedihcseD
ER UDECOR PYFIDOM \tner ucetadedaza bnîetacotsir udecor p\cif idom/\zaeer C
SER UDECOR PD NEPPA nr etxer ei[if nu-r tnidetacotsir udecor p\guadA
SER UDECOR PYPOC nr etxer ei[if nu-r tnîetacotselir udecor p\zai poC
ESABATADELIPMOC \tner ucetadedaza bnidetacotselir udecor p\zaeli pmoC
ESABATADYALPSID/TSIL \tner ucetadedaza ber psedii]amr of ni\zae[if AYALPSID/TSILSER UDECOR P
edaza bnîetacotselir udecor per psedii]amr of ni\zae[if A\tner ucetad
ESABATADK CAP aza bnîer egr et[ur tne petacr amelir \r tsiger nîvitinif edegr et{\tner ucetaded
ESABATADETADILAV \zaer e pucer o,lanoi] po,i[etadedieza baetatidilav\cif ir eV\tar oir etedetse\cad
)(CBD \tner ucetadedaza ber t\caelaci[elemun\zaenr uteR
)(DESUBD \sihcsedetseetaded\za b\timunao\cad\cif ir eV
)(SESABATADA esihcsedetadedeleza betaotucr otcevnu\zaeer C
)(STCEJBOBDA \tner ucetadedaza bnideletcei boetaotucr otcevnu\zaeer C
)(POR PTEGBD etadedeza bienuaetateir por poeni] bO
)(POR PTESBD etadedieza baetateir por po\zaeteS
ESABATADESOLC etaoti[elaselele batetaot,\tner ucetadedaza bedihcnÎer e bilelele bat
ESABATADETELED uasegr et[,lanoi] po,i[cside pedetadedaza begr et{elaselele bat\zaer e bile
Lucrul cu tabelele din bazele de date
O tabel\ Visual FoxPro (fi[ier .dbf) poate exista în unul dintre cele dou\ moduri: ca
tabel\ 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.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 12/21
11lec]ie demonstrativ\Ini]iere `n programare
Fiecare lec]ie a acestui curs con]ine o serie deexemple [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 exemple
asem\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]
ENDDOSe 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 se
pozi]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.
Exemplua=1DO WHILE a<=100
IF a>50a=a+2
ELSEa=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.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 13/21
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 EVENTSnu 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 FormADD 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 formaCLEAR 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\.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 14/21
13lec]ie demonstrativ\Ini]iere `n programare
e
e Exerci]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 doi parametri la evenimentul Init al butonului de comand\ Buton1.
Forma1=CREATEOBJECT(“FormaTest”)
Forma1.SHOW
READ EVENTS
DEFINE CLASS FormaTest AS Form
* Proprietatile formeiAutoCenter = .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.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 15/21
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
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 16/21
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\ de
dialog:
Fig. 13. Introducerea unei propriet\]i noi pentru o clas\
• În câmpul Name tasta]i numele noii propriet\]i.
• Din lista Visibilityselecta]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\
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 17/21
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 Unitspoate fie Pixels sau Foxels [i reprezint\ unitatea de m\sur\ pentruclas\. Foxels este echivalentul în\l]imii [i l\]imii medii a unui caracter bazat
pe fontul curent al formei în care este con]inut un obiect.Foxels este folositor câ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\.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 18/21
17lec]ie demonstrativ\Ini]iere `n programare
La finalul fiec\rui modul ve]i ̀ ntâlni câte o recapitulare , ̀ n care sunt prezentate succint [i schematic cele mai importante informa]ii expuse pe
parcurs. V\ prezent\m ̀ n continuare recapitularea modului 10, ̀ n care sunt
tratate 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 Timersunt 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 [i
rela]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]ine
propriul 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:
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 19/21
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 a
ecranului [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.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 20/21
19lec]ie demonstrativ\Ini]iere `n programare
Toate lec]iile au la final o tem\ pentru acas\ , care are rolul de 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 maimulte 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 control
grafic 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 paginile
tip\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 PAGE
HEADER.
4. Dori]i s\ grupa]i datele dup\ un câmp, iar la sfâr[itul grupului s\ afi[a]i totaluri
ale 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, iar
totalul se va afi[a în GROUP HEADER.
b) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iar
totalul se va afi[a în GROUP FOOTER.
c) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iar totalul se va afi[a în PAGE FOOTER.
5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com
http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 21/21
Ini]iere `n programarelec]ie demonstrativ\20
Cu aceasta se ̀ ncheie lec]ia demonstrativ\ a cursului de Ini]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.