You are on page 1of 95

UNIVERSITATEA BABE-BOLYAI, CLUJ-NAPOCA Centrul de Formare Continu i nvmnt la Distan Facultatea de tiine Economice i Gestiunea Afacerilor Specializarea: Toate

specializrile Disciplina: Baze de date i programe

SUPORT DE CURS
ANUL II Semestrul 3

ClujNapoca

2012

CUPRINS I. INFORMAII GENERALE


I.1. Date de identificare ale cursului I.1.1. Date de identificare despre titularul de curs I.1.2. Date de identificare curs i contact tutori I.2. Condiionri i cunotine prerechizite I.3. Descrierea cursului I.4. Organizarea temelor din cadrul cursului I.5. Materiale bibliografice obligatorii I.6. Materiale i instrumente necesare pentru curs I.7. Calendar al cursului I.8. Politica de evaluare i notare I.9. Elemente de deontologie academic I.10. Studeni cu dizabiliti I.11. Strategii de studiu recomandate

II.

SUPORTUL DE CURS PROPRIU-ZIS

MODULUL NUMRUL 1 10 BAZE DE DATE BAZE DE DATE RELAIONALE 10 MODULUL NUMRUL 2 20 ELEMENTE DE LIMBAJ 20 MODULUL NUMRUL 3 30 CREAREA I GESTIUNEA TABELELOR LIBERE 30 MODULUL NUMRUL 4 44 CREAREA I GESTIUNEA BAZELOR DE DATE 44 MODULUL NUMRUL 5 51 GESTIUNEA PROIECTELOR 51 MODULUL NUMRUL 6 55

PROGRAMAREA N VISUAL FOXPRO 55 MODULUL NUMRUL 7 65 FORMULARE N VISUAL FOXPRO 65 MODULUL NUMRUL 8 80 RAPOARTE I MENIURI 80

INFORMAII GENERALE I.1. Date de identificare ale cursului I.1.1. Date de identificare despre titularul de curs i tutori
Numele cursului: Baze de date i Programe Codul cursului: EBI0016 Anul, Semestrul: Anul II, Semestrul 3 Tipul cursului: Obligatoriu Titulari de curs i tutori: prof.dr. Tomai Nicolae nicolae.tomai@econ.ubbcluj.ro conf. dr. Lacurezeanu Ramona - ramona.lacurezeanu@econ.ubbcluj.ro lect.dr. Mocean Loredana loredana.mocean@econ.ubbcluj.ro lect.dr. Sitar Taut Dan - dan.sitar@econ.ubbcluj.ro lect.dr. Brefelean Paul - paul.bresfelean@econ.ubbcluj.ro lect.dr. Ghiran Anamaria - anamaria.ghiran@econ.ubbcluj.ro lect.dr. Jecan Sergiu- sergiu.jecan@econ.ubbcluj.ro lect.dr. Popa Silviu- silviu.popa@econ.ubbcluj.ro asis.drd. Mican Daniel- daniel.mican@econ.ubbcluj.ro Consultaii: conform orarului afiat la nceputul semestrului.

I.2. Condiionri i cunotine prerechizite


Pentru participarea la acest curs studenii trebuie s participe la cursul de Informatic Economic anul I, semestrul 1.

I.3. Descrierea cursului


Cursul urmrete crearea unor abiliti de utilizare a bazelor de date i de creare a unor aplicaii economice specifice utilizrii acestora. Acest curs este important pentru orice economist avnd n vedere ca bazele de date sunt utilizate extensiv i obligatoriu n domeniul economic din Romnia. Cursul se mparte n 2 pri eseniale i anume: Bazele teoretice o elemente referitoare la baze de date i aplicaii economice o probleme specifice gestiunii bazelor de date n Access i Visual FoxPro o probleme referitoare la utilizarea formelor, rapoartelor i proiectelor Aplicaii practice pentru o Visual FoxPro o Access

I.4. Organizarea temelor din cadrul cursului

Cursul, conform normelor metodologice are 2 componente: componenta teoretic; componenta practic. Parcurgerea componentei teoretice se realizeaz de ctre cursani. Elementele principale sunt organizate pe 3 nivele: elemente de teorie a bazelor de date; elemente referitoare la utilizarea Visual FoxPro i Access; elemente de programare vizual i obiectual a aplicaiilor economice. Referitor la elementele de teorie cursanii pot apela, pentru problemele de baz, la suportul de curs elaborat de membrii catedrei de Informatic Economica prezentat la Bibliografie obligatorie. Pentru bibliografie mai detaliat pot recurge la bibliografia din literatura n limba romn, care este accesibil la biblioteca catedrei de Informatic Economic dar i la majoritatea bibliotecilor din ar, iar pentru cea n limba englez la biblioteca Catedrei de Informatic Economic. Informaii suplimentare se pot obine i din site-urile amintite n material. Pentru partea practic, n cadrul suportului de curs sunt date exemple. De asemenea, cursanii pot participa la pregtiri periodice unde se discut aspectele referitoare la elementele practice, dar i probleme de teorie cu un grad mai ridicat de dificultate.

I.5. Materiale bibliografice obligatorii


1. Sitar- Taut D., Elemente de baze de date pentru economiti, Ed. Risoprint, Cluj-Napoca, 2010 2. Colectiv departament Informatic Economica, Baze de date. Aplicaii economice. Culegere de probleme, Ed. Risoprint, Cluj-Napoca, 2009 Bibliografie suplimentar 3. S.I.Nichi i alii, Aplicarea Bazelor de date n economie , 2009, Risoprint 4. S.I.Nichi i alii, Baze de date i programare aplicate n economie, Ediia 2a, 2008, Risoprint 5. L. Mocean, Sitar-Tut Dan i alii, Baze de date. Aplicaii Economice. Culegere de probleme, Risoprint, 2009 6. L. Mocean, Sitar-Tut Dan i alii, Baze de date i Programare, Culegere de probleme, Risoprint, 2008

I.6. Materiale i instrumente necesare pentru curs


Pentru curs este necesar conectarea cursanilor la Internet i participarea la leciile de sintez. n privina soft-urilor, n general cursul este proiectat pe soft-uri uzual folosite

n economia romneasc i care pot fi utilizate i n slile de exerciiu ale FSEGA. n acest sens: Pentru FoxPro exist Visual FoxPro, versiunile 8 i 9. Pentru Access exist Microsoft Office 2007. Toate produsele sunt nsoite de teste, tutoriale, etc.

I.7. Calendar al cursului


Activiti ntlnire I: Activiti didactice Tematica abordat Responsabilitile studenilor Parcurgerea bibliografiei. Rezolvarea de teme practice. Locul de desfurare Va fi comunicat ulterior

Modulul 1 Baze de date Baze de date relaionale Modulul 2 Elemente de limbaj Visual FoxPro i de Access Modulul 3 Crearea i gestiunea tabelelor libere n Visual FoxPro i a tabelelor n Access ntlnire II: Modulul 4 Crearea i Activiti didactice gestiunea bazelor de date n Visual FoxPro i Access Modulul 5 Gestiunea proiectelor Modulul 6 - Programarea n Visual FoxPro ntlnire III: Modulul 7 Formulare n Activiti didactice VFP i Access Modulul 8 - Rapoarte i Meniuri n VFP i Access
Examen final

Parcurgerea Rezolvarea practice.

bibliografiei. de teme

Va fi comunicat ulterior

Parcurgerea Rezolvarea practice.

bibliografiei. de teme

Va fi comunicat ulterior

Prezentarea temelor de control. Susinerea probei practice ntr-un interval dat de timp i susinerea unui test grila (cu un singur rspuns corect)

Va fi comunicat ulterior

Calendarul activitilor este unul orientativ, fiind susceptibil unor modificri ulterioare, acestea urmnd s fie comunicate studenilor.

I.8. Politica de evaluare i notare


Modul de evaluare a cursului: 40% din not reprezint rspunsurile la problemele teoretice (test gril, nota minim de trecere 5); 40% din not reprezint partea practic final (bilet de examen cu ntrebri ce trebuie realizate ntr-un timp dat - o jumtate de or, nota minim de trecere 5); 20% prezentarea temelor de control la o data fixata de tutori i comunicat studenilor la a doua ntlnire ( evideniat i pe pagina de web a disciplinei)

I.9. Elemente de deontologie academic


Se aplic regulile generale de deontologie academic din UBB.

I.10. Studeni cu dizabiliti


n principiu pentru cursanii cu dizabiliti care nu se pot deplasa la sediul facultii se aplic urmtoarele soluii: utilizarea Internet-ului i a portalului dup aceleai reguli ca la ceilali cursani; utilizarea la nevoie a unui sistem webcam i skype n cazul evalurilor.

I.11. Strategii de studiu recomandate


n principiu n medie pentru nelegerea coninutului unui modul sunt necesare minim 3 ore. Prezentul curs fiind unul fundamental pentru orice economist este necesar ca el s fie studiat cu mare atenie i deci numrul de ore de studiu ar putea fi n funcie de particularitile cursanilor, mai mare sau mai mic. Pentru realizarea temelor de control timpul afectat ar putea fi substanial mai mare.

II. SUPORTUL DE CURS PROPRIU-ZIS MODULUL NUMRUL 1 BAZE DE DATE BAZE DE DATE RELAIONALE
CONCEPTE DE BAZ: Fiier, Baz de date Sistem de gestiune a bazelor de date (SGBD), dicionar de date Model entitate-relaie, atribut, constrngere Model intern, extern i conceptual i tipurile de independen Relaie i tabel. Crearea unei perspective clare asupra bazelor de date. Familiarizarea cu elementele legate de baze de date i modelele bazelor de date. Crearea unor deprinderi referitoare la proiectarea bazelor de date. Pentru parcurgerea prezentului material se recomand parcurgerea atent a bibliografiei, precum i studierea atent a materialului aferent n cadrul Activitilor Asistate (AA). Clarificarea noiunilor legate de baze de date i modele de date. Clarificarea noiunilor legate de proiectarea i normalizarea bazelor de date.

OBIECTIVE:

RECOMANDRI PRIVIND STUDIUL: REZULTATE ATEPTATE:

UNITATEA 1. CONCEPTE GENERALE REFERITOARE LA BAZE DE DATE OBIECTIVE Clarificarea noiunilor referitoare la conceptele generale legate de baze de date i nivelele de organizare ale acestora. Clarificarea elementelor referitoare la modelele de date i tipurile de independen. Fiiere, baze de date, arhitectura unei baze de date, nivele de organizare, entitate relaie, atribut, nivel conceptual, intern sau extern.

NOIUNI CHEIE

1.1. Conceptul de "Baz de date" Dup cum s-a menionat n capitolul precedent, la baza prelucrrii datelor stau fiierele. Odat cu dezvoltarea informaticii, numrul acestora a crescut, ajungndu-se ca ntr-o firm s existe mai multe zeci sau sute de fiiere permanente i temporare legate de gestiunea personalului, materialelor, produciei, vnzrilor etc. Aceast cretere a avut o serie de dezavantaje, dintre care amintim [Nichi90]: redundana este proprietatea unei informaii de a se repeta nejustificat; de exemplu codul materialelor, care poate ajunge la 20-30 de cifre, se repet n majoritatea acestor fiiere, mrind nejustificat spaiul fizic ocupat;

10

inconsistena este legat de apariia distorsionat a unor informaii n diferite contexte; una dintre cauzele inconsistenei este redundana deoarece este suficient ca la o apariie (copie) a informaiei redundante, aceasta s fie introdus greit i informaia poate deveni inconsistent; validarea datelor este clar c diferite aplicaii care gestioneaz fiiere disparate pot valida datele diferit; nevalidarea uniform a datelor poate duce la compromiterea ntregului sistem de fiiere; disponibilitatea i securitatea datelor reprezint o problem de asemenea foarte spinoas. Datele aflndu-se n fiiere disparate, acestea pot fi reinute de proprietari nefiind disponibile i comunitii utilizatorilor. De asemenea, neexistnd un control centralizat asupra lor nu se poate asigura securitatea acestora. O prim definiie a bazelor de date este [Nichi&Racovian96]: baza de date este un sistem integrat, coerent i partajat de fiiere. Pentru a asigura folosirea n comun a acelorai date de ctre mai muli utilizatori era necesar asigurarea independenei aplicaiilor fa de structura logic a datelor. Din acest motiv, era necesar desprinderea din cadrul programelor de aplicaie a descrierii structurii datelor. Acest lucru a fost posibil prin definirea unui fiier de descriere global a bazei de date, denumit dicionar de date. Bazele de date au aprut n anii 60, odat cu lansarea programului Apollo, n 1964, pornind de la ceea ce formau sistemele de fiiere nlnuite, introduse de IBM pentru gestionarea lansrii i urmririi produciei. Astfel au aprut aa zisele baze de date arborescente sau de generaia 1-a. Conceptul de baz de date, sub aceast denumire, a aprut pentru prima dat n anul 1969, an n care CODASYL a publicat, n cadrul unei conferine dedicate limbajelor de gestiune a datelor, un raport tehnic despre acest concept. Fa de modelul bazat pe fiiere clasice (file-based), noul model de organizare a datelor n baze de date include un fiier de descriere global a bazei de date (dicionar de date) care s poat asigura independena programelor fa de structura datelor. Pornind de la aceste considerente, se pot da i alte definiii bazelor de date, cum ar fi [Fotache01]: O baz de date reprezint o colecie de date, organizate ntr-o structur descris printr-un model conceptual sau colecie de date aflate n interdependen, mpreun cu descrierea datelor i a relaiilor dintre ele. Totalitatea informaiilor stocate n baza de date la un moment dat reprezint coninutul bazei de date. Coninutul are un caracter volatil, n sensul c se modific permanent n funcie de volumul i complexitatea proceselor i fenomenelor economice la care se refer. Structura datelor mpreun cu legturile dintre entiti i restriciile de integritate formeaz schema bazei de date, care, de obicei, rmne constant pe durata utilizrii bazei de date. Gestionarea datelor dintr-o baz de date este asigurat de un sistem de gestiune a bazelor de date sau SGBD (n limba englez DBMS - Data Base Management System). Un SGBD reprezint un ansamblu de programe pentru gestiunea datelor sau un mediu de programare destinat gestiunii datelor din baza de date. Prin urmare, el este cel care asigur ncrcarea bazei de date, actualizarea i interogarea acesteia, ct i interfaa cu sistemul de operare n vederea simplificrii accesului la date.

11

n general SGBD-urile au implementate limbaje gazd, care conin att instruciuni specifice exploatrii datelor din bazele de date, ct i unele instruciuni din limbajele de programare clasice. Un SGBD include, n general, o serie de componente [Date2000] grupate n jurul dicionarului de date, dintre care amintim: sistemul de gestiune a fiierelor i suporturilor la nivel fizic; sistemul de gestiune a fiierelor la nivel logic; limbajul de manipulare a datelor (LMD) i translatorul aferent; limbajul de descriere a datelor (LDD) i translatorul aferent; limbajul de consultare sau interogare (Query Language) i procesorul aferent, care traduce instruciunile limbajului de consultare n instruciuni inteligibile pentru sistemul de gestiune la nivel logic; componente de interfa cu programele de aplicaii; componente de serviciu, legate de jurnalizri, securitate etc. Trebuie s specificm, ns, c n majoritatea SGBD-urilor, cum este i cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de exemplu cele trei limbaje i translatoarele lor, sunt integrate, formnd o singur component. Principalele funcii ale unui SGBD sunt urmtoarele: Funcia de descriere date Funcia de manipulare date Funcia de utilizare 1.2. Arhitectura unei baze de date Asigurarea independenei logice i fizice a datelor impune adoptarea unei arhitecturi a bazei de date pe trei nivele astfel: 1. nivelul intern 2. nivelul conceptual 3. nivelul extern Nivelul intern (baza de date fizic), definete baza de date ca fiind o colecie de fiiere, coninnd datele din cadrul bazei de date, la care se adaug i alte structuri auxiliare de date i un set de programe, care interacioneaz cu sistemul de operare pentru mbuntirea managementului bazei de date. La acest nivel structura bazei de date se concretizeaz n schema intern. Aici apare independena fa de cile de acces, adic utilizatorul nu trebuie s fie preocupat de organizarea i modul de acces la date la nivel fizic. Nivelul conceptual, este nivelul imediat superior celui fizic, datele fiind privite prin prisma semanticii lor, respectiv a coninutului i relaiilor cu alte date. Acesta este i primul nivel de abstractizare a lumii reale, avnd ca obiectiv principal modelarea realitii existente prin definirea i descrierea unitilor logice cu care se lucreaz i a legturilor dintre acestea. Aceast schem este descris n general de administratorul bazei de date, el fiind singurul care cunoate i manipuleaz schema conceptual a bazei de date, degrevnd utilizatorii de cunoaterea ntregii structuri a bazei de date. Nivelul conceptual se definete cu ajutorul schemei entitate-relaie (E-R)[Gardarin86] sau obiect-entitate-relaie (OLE) [Miranda&Busta86]. Prin entiti se neleg concepte cu care opereaz utilizatorii i prin care acetia i modeleaz aplicaiile, cum ar fi: PRODUSE, BENEFICIARI, FACTURI (n cazul unei

12

firme productive) sau PROFESORI, STUDENTI, SALI, MATERII (n cadrul unei faculti). Fiecare entitate poate avea una sau mai multe atribute. De exemplu, un STUDENT are MATRICOLA, NUME, DATA-NATERII, etc. Constrngerile reprezint proprieti ale datelor i se refer la restricii privind valorile pe care le pot lua aceste date sau la restricii privind legturile dintre diferite entiti. n cadrul oricrei operaii de actualizare a datelor din baza de date sau de ncrcare a acesteia cu date, se verific aceste constrngeri, pentru a asigura integritatea bazei de date. Ca urmare, orice modificare n structura de memorare a datelor sau schimbarea suportului magnetic, va afecta doar interfaa dintre nivelul conceptual i cel fizic fr a modifica nivelul conceptual. Rezultatul imediat al independenei fizice a datelor l reprezint imunitatea aplicaiilor fa de structura fizic de memorare a datelor. La acest nivel structura bazei de date se concretizeaz n schema conceptual. Nivelul extern este ultimul nivel de abstractizare la care se poate descrie o baz de date. Nivelul extern conine, deci, o parte din unitile logice descrise la nivel conceptual, dar poate include i uniti logice care nu apar la nivel conceptual i care nu au corespondent direct n baza de date fizic, obinute de exemplu prin calcule. Ca urmare, nivelul extern este derivat din nivelul conceptual i reprezint ceea ce vede utilizatorul din baza de date. Fiecrui utilizator i va corespunde un model extern propriu, n funcie de cerinele informaionale ale acestuia. Unitile logice folosite la nivel extern se numesc numite uniti logice virtuale, imagini sau vederi i formeaz o baz de date virtual. Aceste vederi se pot obine n unul din urmtoarele moduri: 1. prin modificarea unor uniti logice reale; 2. prin combinarea a dou sau mai multe uniti logice reale. Vederile asigur, printre altele, urmtoarele funcii n cadrul unei baze de date: 1. securitatea bazei de date 2. definirea modului de acces la date; 3. ofer utilizatorului o viziune simplificat i personalizat asupra bazei de date. Prin nivelul extern se realizeaz independena logic a datelor din baza de date. Interfaa dintre utilizator i SGBD se poate realiza n mai multe moduri, dintre care amintim : - printr-un mecanism de apel (cuvnt cheie urmat eventual de parametrii) inserat n programele scrise ntr-un limbaj tradiional (C, COBOL, etc.), numit limbaj gazd; - prin comenzi speciale utilizate autonom (specifice SGBD-urilor, n afara limbajelor tradiionale), n cazul SGBD-urilor autonome. 1.3. Modele de organizare a datelor Analiza, proiectarea i implementarea structurii bazei de date se realizeaz utiliznd un anumit model de date. Un asemenea model reprezint un ansamblu de instrumente conceptuale, care permit descrierea datelor, a relaiilor dintre ele, a semanticii lor, ct i a restriciilor la care sunt supuse aceste date [Fotache02, Popescu02]. Un model de date reprezint, deci, un instrument teoretic care ne ajut s identificm semnificaia sau coninutul unei

13

colecii de date (structura de organizare a acestora) ct i modul de utilizare a acestora, prin intermediul operaiilor permise asupra datelor respective. Modelul de organizare a datelor este deci o reprezentare a obiectelor lumii reale i a evenimentelor asociate lor, avnd rolul de a pune la dispoziia utilizatorilor conceptele de baz i notaiile, care s le permit acestora s comunice clar i rapid informaiile despre datele firmei [Selinger98]. Ca urmare, un model de date include urmtoarele componente [Selinger98]: 1. un set de reguli de structurare a datelor prin limbajul de descriere date (LDD). 2. un set de reguli de manipulare a datelor prin limbajul de manipulare date (LMD). Modelele utilizate de bazele de date se pot grupa n trei categorii [Fotache98]: modele bazate pe obiect, modele bazate pe nregistrare i modele fizice. Modelele bazate pe obiect permit descrierea datelor la nivel conceptual i extern. Din aceast categorie fac parte: a) modelele entitate-asociaii (E-A), entitate-relaie (E-R) sau obiect-entitaterelaie (OLE) b) modelul semantic c) modelul funcional d) modelul orientat pe obiecte. Din categoria modelelor orientate pe nregistrri fac parte: a) modelul ierarhic b) modelul reea c) modelul relaional. 1.4. Entiti i tipuri de entiti O entitate este o realitate obiectiv care exist prin ea nsi. Orice entitate, aa dup cum s-a mai artat, se caracterizeaz prin anumite proprieti, care n cadrul modelului de date sunt reprezentate prin atribute. Entitile la rndul lor sunt reprezentate prin tipuri de entiti. Mulimea entitilor descrise prin tipul de entitate dat reprezint extensiunea tipului de entitate respectiv, atributele unei instane ale entitii fiind proprietile particulare sau extensionale ale acesteia. REZUMAT O prim definiie a bazelor de date este [Nichi&Racovian96]: baza de date este un sistem integrat, coerent i partajat de fiiere. O baz de date reprezint o colecie de date, organizate ntr-o structur descris printr-un model conceptual sau colecie de date aflate n interdependen, mpreun cu descrierea datelor i a relaiilor dintre ele. Un SGBD reprezint un ansamblu de programe pentru gestiunea datelor sau un mediu de programare destinat gestiunii datelor din baza de date. Principalele funcii ale unui SGBD sunt urmtoarele: Funcia de descriere date Funcia de manipulare date Funcia de utilizare Asigurarea independenei logice i fizice a datelor impune adoptarea unei arhitecturi a bazei de date pe trei nivele astfel:

14

Teste de autoevaluare Bibliografie

1. nivelul intern 2. nivelul conceptual 3. nivelul extern Din categoria modelelor orientate pe nregistrri fac parte: d) modelul ierarhic e) modelul reea f) modelul relaional. Recomandm parcurgerea testelor de la AA. [Sitar_2010]

UNITATEA 2. MODELUL RELAIONAL OBIECTIVE Clarificarea noiunilor referitoare la conceptele generale legate de relaie, atribut, domeniu Clarificarea elementelor referitoare la chei i legturi ntre tabele. Familiarizarea cu formele normale i normalizarea relaiilor. Atribut, tabel, domeniu, relaie, cheie candidat, cheie primar, cheie strin, cele trei forme normale de baz

NOIUNI CHEIE

2.1. Modelul de date relaional 2.1.1. Caracteristici generale Primul model de date relaional, aa dup cum s-a amintit, a fost propus de ctre cercettorul american E.F. Codd de la laboratorul din Palo Alto, al IBM. Principiile matematice care stau la baza acestui model pornesc de la teoria matematic a relaiilor, extins la cerinele de gestiune a datelor. O baz de date relaional este definit ca fiind un ansamblu de tabele sau relaii ntre care exist anumite legturi, fiecare tabel fiind alctuit din coloane, denumite atribute i linii, denumite i tuple. Definirea entitilor i structurii acestora Conceptele cu care se opereaz n cadrul modelului relaional n vederea definirii entitilor i structurii acestora sunt urmtoarele: 1. linia sau tuplul 2. atributul sau caracteristica 3. domeniul 4. nregistrarea logic 5. cardinalitatea relaiei 6. rangul relaiei 7. cheia relaiei

15

Pentru exemplificarea conceptelor anterior prezentate se consider relaia sau tabelul FACULTI avnd urmtoarea structur: Atribut FACULTI Cod facultate STE FIL BIO MED linie (tuplu) Denumire facultate T. ECONOMICE FILOLOGIE BIOLOGIE MEDICIN domeniu Adres MIHALI FN HOREA 5 HAJDEU 10 E. ISAC 20 nregistrare logic (antet relaie)

Putem considera c un atribut reprezint o utilizare sub un anumit nume a unui domeniu. Din acelai domeniu pot deriva mai multe atribute, fiecare cu nume diferite la nivelul unui tabel. Astfel, dac considerm domeniul numerelor ntregi sau reale, din acest domeniu pot deriva atribute cum ar fi: SALAR, IMPOZIT, VALOARE, PRET, CANTITATE etc. 2.2. Legturi ntre relaii

Definirea cheilor unei relaii Dac ntr-o relaie exist mai multe atribute sau combinaii de atribute care permit identificarea unic a tuplelor, acestea sunt denumite chei candidat. O astfel de cheie reprezint un atribut sau o mulime de atribute (K) cu urmtoarele proprieti [Gardarin86] : 1. identificare unic; 2. ireductibilitate; 3. valorile atributului. O entitate poate conine mai multe chei candidat, dar numai una dintre ele se alege pentru a fi folosit la identificarea tuplelor. Aceast cheie se numete cheie primar. O cheie candidat care nu este desemnat ca i cheie primar se numete cheie alternativ. Pe lng noiunile de cheie candidat i cheie primar, n cadrul modelului relaional se mai folosete i noiunea de cheie strin. Ea se utilizeaz la stabilirea legturilor dintre dou tabele, numite tabela principal sau printe i tabela secundar sau copil. Prin definiie, valoarea cheii strine trebuie s se regseasc n mulimea cheilor primare ale tabelei principale. Ea reprezint deci o referin ctre un tuplu din tabela printe care are aceeai valoare a cheii primare. Tipuri de legturi ntre relaii Una din componentele modelului relaional se refer la legturile dintre relaii sau tabele. O legtur (relaie dinamic) se definete ca fiind o asociere ntre mai multe tipuri sau clase de entiti. Cea mai frecvent legtur ntlnit n practic este cea dintre dou tipuri de entiti, numit i legtur binar. Legturile binare, aa cum s-a amintit, dup cardinalitatea lor (numrul entitilor din fiecare clas de entiti care intr n cadrul legturii) se pot clasifica astfel:

16

1. legturi de tip 1-1, prin care unei entiti din mulimea sau clasa M1 i corespunde o singur entitate n mulimea sau clasa M2; 2. legturi de tip 1-n, prin care unei entiti din mulimea M1 sau din tabelul M1 i corespund mai multe entiti n mulimea sau tabelul M2, iar unei entiti din M2 i corespunde o singur entitate n M1; 3. legturi de tip m-n, prin care unei entiti din M1 i corespund mai multe entiti n M2 i reciproc. Definirea restriciilor pentru datele dintr-o baz de date Pentru datele dintr-o baz de date pot fi definite mai multe tipuri de restricii, cum ar fi: restricia de domeniu, de atomicitate, referenial i restricii utilizator. Dintre acestea, ne vom referi n continuare la restricia referenial sau integritatea referenial, pe care se bazeaz stabilirea legturilor dintre dou tabele. Integritatea referenial, denumit n unele sisteme (ca de exemplu n SQL Server), integritate referenial static deoarece se pstreaz n dicionarul de date, se definete ca fiind un ansamblu de reguli impuse tabelelor ntre care s-au stabilit anumite legturi. Astfel, pentru a asigura integritatea referenial trebuie ca atunci cnd se fac modificri ale valorii unui cmp de tip cheie primar sau strin dintr-un tabel, s nu fie afectat relaia dintre cele dou tabele, adic s se modifice automat valorile cheii n toate tuplele corespunztoare. Integritatea referenial cere ca valorile cheii strine s se regseasc printre valorile cheii primare. Aceast condiie introduce n baza de date constrngeri numite constrngeri refereniale. Operaiile de adugare, modificare i tergere pot afecta integritatea referenial astfel: 1) In tabela principal (tabela referit sau printe): a. operaia de adugare se va face fr nici un fel de restricii din punct de vedere al condiiilor de integritate referenial; b. operaia de tergere - deoarece prin tergerea unui tuplu din relaia sau tabela principal, n relaia secundar pot rmne tuple care fac referire la tuplul ters, pentru a menine integritatea referenial se poate introduce tergerea restricionat sau n cascad; n primul caz, nu se poate terge un tuplu din tabela principal dac acesta are corespondent tuple n tabela secundar, deoarece tuplele din tabela secundar rmn orfane, adic vor avea referine nesatisfcute; n al doilea caz, tergerea unui tuplu din tabela principal va fi urmat de tergerea tuturor tuplelor din relaia secundar care fac referire la tuplul ters; c. operaia de modificare poate fi privit ca i n cazul operaiei de tergere, iar restriciile refereniale sunt cele folosite la operaia de tergere; 2) In tabela secundar (de referin sau tabela copil): a. operaia de adugare se poate face numai dac valorile cheii strine pentru articolele adugate se regsesc printre valorile cheii primare din tabela principal, altfel operaia de adugare este interzis; b. operaia de tergere se poate realiza fr nici o restricie din punct de vedere al condiiilor de integritate referenial;

17

c. operaia de modificare se poate realiza cu condiia s nu apar nregistrri fr corespondent n tabela principal. Schema i coninutul unei baze de date relaionale Exist dou modaliti de abordare a bazelor de date relaionale i anume [Fotache2001]: - schema relaional (intensia sau structura bazei de date); - coninutul unei relaii (extensia bazei de date). Schema relaional sau intensia unei baze de date poate fi definit ca un ansamblu de relaii asociate semantic prin domeniul de definiie i prin restricii de integritate. Ea conine: a. una sau mai multe scheme de relaie, unde fiecare schem de relaie include numele relaiei i atributele aferente; b. restricii de integritate, care pot fi: - restricia cheilor primare, adic fiecare cheie primar trebuie s fie unic, nenul i cu compoziie minimal; - restricii refereniale, care decurg din existena cheilor strine; - alte restricii, cum ar fi cele definite de utilizator (dependene ntre atribute, valori limit, unicitate, caracter nenul, etc.). Schema relaional descrie ntotdeauna modelul conceptual din cadrul unei baze de date. Relaiile dintre relaie i tabel sunt date de urmtoarele: 1. n timp ce relaia este o mulime teoretic, tabela este un obiect concret cu o anumit reprezentare (tablou bidimensional); 2. n timp ce ntr-o relaie ordinea atributelor sau tuplelor nu este semnificativ, ntr-o tabel exist o ordonare att a coloanelor, dat de ordinea acestora la creare, ct i a nregistrrilor, dat de ordinea n care au fost introduse n tabel sau ca urmare a indexrii tabelei; 3. n timp ce o relaie teoretic este format ntotdeauna din tuple distincte, n practic o tabel poate conine i linii duplicat, aa dup cum s-a mai menionat n cazul SQL Server. n acest context, noiunea de relaie se identific cu cea de tabel sau fiier, atributele cu denumirea coloanelor unei tabele sau cu cmpurile unui fiier, iar tuplele cu liniile tabelei sau cu articolele (respectiv nregistrrile) unui fiier. Cele de mai sus justific faptul subliniat la definiia bazelor de date, c baza de date este o colecie de fiiere. n unele SGBD-uri, cum este cazul Visual FoxPro, fiecare fiier are articole de lungime fix, n timp ce la altele, cum este cazul SQL Server, articolele pot fi de lungime variabil. Spre deosebire ns de fiierele obinuite, fiierele bazei de date prezint o serie de particulariti, dintre care amintim: 1. fiecare fiier are asociat o nregistrare de structur sau un antet, care include informaii despre coninutul fiierului i se memoreaz n dicionarul de date; 2. dac fiierul are articole de lungime fix, articolele sau nregistrrile de date conin un numr de ordine, folosit la identificarea unei nregistrri n baza de date, numit i indicatorul sau pointer-ul articolului respectiv; n Visual FoxPro acest pointer poate fi obinut prin funcia RECNO(); 3. de regul unul dintre articolele bazei de date este cel tratat curent; pointer-ul acestui articol se numete pointer-ul sau indicatorul bazei de date;

18

4. fiierele din baza de date sunt interconectate ntre ele prin legturi de tip 1-1, 1-n sau m-n. REZUMAT O baz de date relaional este definit ca fiind un ansamblu de tabele sau relaii ntre care exist anumite legturi, fiecare tabel fiind alctuit din coloane, denumite atribute i linii, denumite i tuple. Din punct de vedere matematic, prin relaie se nelege o submulime a produsului cartezian al domeniilor. Dac ntr-o relaie exist mai multe atribute sau combinaii de atribute care permit identificarea unic a tuplelor, acestea sunt denumite chei candidat Recomandm parcurgerea testelor de la AA. [Sitar-2010]

TESTE DE AUTOEVALUARE Bibliografie Exemple de teste gril:

1. Baza de date este: a) un sistem integrat, coerent i nepartajat de fiiere; b) un sistem integrat, coerent i partajat de fiiere; c) un sistem integrat, necoerent i nepartajat de fiiere. Rspuns: b . 2. Sistemul de gestiune a bazelor de date (SGBD) este: a) o baz de date; b) o component hardware; c) o component software; d) niciuna. Rspuns: c .

19

MODULUL NUMRUL 2 ELEMENTE DE LIMBAJ


CONCEPTE DE BAZA Obiecte cu care opereaz VFP Metalimbajul utilizat Sintaxa comenzilor VFP Familiarizarea cu mediul Visual FoxPro OBIECTIVE Cunoaterea elementelor lexicale i sintactice ale limbajului VFP. Prezentarea obiectivelor de date i a tipurilor de date utilizate n cadrul programelor Fox. Prezentarea sintaxei comenzilor FoxPro i a elementelor de metalimbaj. Descrierea principalelor caracteristici ale Visual FoxPro, ca mediu integrat, obiectual i vizual de dezvoltare de aplicaii. Familiarizarea cu mediul Visual FoxPro, precum i a primelor operaii cu mediul. Familiarizarea cu opiunile din meniul principal, caseta de control, opiunile acestora, precum i cu gestiunea ferestrelor i a obiectelor de control. RECOMANDRI Se va studia mai nti modul de form i utilizare a construciilor PRIVIND STUDIUL simple ale limbajului (cuvinte, literale, simboluri speciale) i apoi a celor compuse (instruciuni, funcii i expresii). Se va pune n continuare accent pe formarea i utilizarea obiectivelor date folosite n cadrul limbajului: constante, cmpuri, variabile. Se va studia tipurile de date utilizate n cadrul limbajului i conversia ntre tipuri. n finalul studiului privind elementele limbajului se pune accent pe modul de definire a sintaxei unei comenzi n Visual FoxPro. REZULTATE Dup parcurgerea acestui modul utilizatorul trebuie s fie n ATEPTATE msur s defineasc i foloseasc corect construciile limbajului la nivelul unui program i s neleag modul de utilizare al clauzelor din sintaxa comenzilor FoxPro. Se ateapt. De asemenea: 1. Familiarizarea cu mediul de dezvoltare Visual FoxPro. 2. Crearea unor deprinderi de utilizare a mediului; UNITATEA 1. ELEMENTELE LEXICALE I SINTACTICE ALE LIMBAJULUI VISUAL FOXPRO OBIECTIVE NOIUNI CHEIE Cunoaterea modului de formare i utilizare a construciilor simple i compuse ale limbajului Cuvinte, Literale, Instruciuni, Funcii, Expresii

20

Setul de caractere Foxpro Majoritatea limbajelor de programare, printre care i limbajul FoxPro, au alfabetul format din urmtoarele caractere: - literele alfabetului limbii engleze; - cifrele arabe (0-9); - caractere speciale; Elementele lexicale i sintactice ale limbajului FoxPro Un program FoxPro este alctuit din iruri de caractere sau construcii i separatori. Construciile limbajului se pot mpri n dou categorii: - construcii simple; - construcii compuse. Construciile simple, reprezint cea mai mic unitate lexical cu neles de sine stttor, numite i atomi lexicale. Exist urmtoarele categorii de atomi lexicali sau de construcii simple: 1. identificatori (cuvinte); 2. literali; 3. simboluri speciale. care formeaz mpreun vocabularul sau lexicul limbajului. 1. Identificatorii, reprezint o secven arbitrar de caractere alfabetice, cifre sau liniua de subliniere, din care primul caracter este o liter sau liniua de subliniere. Exist dou categorii de identificatori sau cuvinte: a) cuvinte predefinite; b) cuvinte utilizator. Cuvinte predefinite; sunt precizate la definirea limbajului. Cu ajutorul lor se construiesc instruciunile limbajului. Ele se mpart la rndul lor n: - cuvinte cheie; - cuvinte rezervate. Cuvintele utilizator; sunt cuvinte definite de utilizator, fiind folosite n diferite contexte. 2. Literali; reprezint o valoare constant, de tip numeric sau caracter. Termenul de literal provine de la cuvntul "ad-literam" i are semnificaia unei valori precizate explicit. 3. Simboluri speciale; la fel ca i cuvintele rezervate, simbolurile speciale numite i semne de punctuaie, operatori, delimitatori, au o semnificaie bine definit fiind utilizate conform destinaiei lor. Construcii compuse A doua grup de construcii, alturi de construciile simple, o reprezint construciile compuse, numite i categorii sintactice de baz obinute prin agregarea succesiv a construciilor simple conform unor reguli sintactice. La nivelul limbajului FoxPro din aceast grup fac parte urmtoarele categorii sintactice: 1. instruciuni; 2. funcii; 3. expresii.

21

1. Instruciunile limbajului FoxPro se numesc comenzi i constituie ca n orice limbaj de programare categoria sintactic fundamental. 2. Funciile; reprezint a doua categorie sintactic de baz, utilizate n majoritatea prelucrrilor asupra datelor din baza de date. Spre deosebire de comenzi, funciile returneaz o valoare. Expresii FoxPro - reprezint elemente sintactice de baz prin care se evalueaz rezultatul unor operaii. Ele conin iruri de operanzi legate ntre ele prin intermediul unor operatori. Expresiile rezultate n funcie de tipul operanzilor pot fi de tip: numeric, caracter, dat calendaristic, logic, relaional. Operanzii din cadrul unei expresii pot fi: variabile (cmpuri, variabile de memorie), constante i funcii. Operatorii sunt caractere speciale (+, -, *, /, >, < ) sau cuvinte cheie rezervate (AND, OR, NOT) prin care se specific aciunile ce trebuie executate asupra operanzilor (obiectelor de date). Operatorii utilizai n cadrul expresiilor FoxPro, se pot grupa dup tipul acestora astfel: - operatori aritmetici; - operatori relaionali (de comparaie); - operatori logici; - operatori de concatenare; - operatori pentru date de tip gestiune timp. Separatori: acetia se mpart n dou categorii distincte astfel: 1) separatori uzuali; care servesc la separarea a doi atomi lexicali i pot fi: spaiu, tab, retur de car i avans de rnd. 2) comentariile; acetia nu influeneaz execuia programului i permit o nelegere mai bun a textului surs. Structura unui program FoxPro Structura unui program FoxPro se poate descrie astfel: PROGRAM::=<text ASCII> ( 0 sau mai multe linii logice sau fizice) LINIE LOGIC::={linie fizic} (dou sau mai multe)

UNITATEA 2. OBIECTE DE DATE I TIPURI DE DATE FOLOSITE IN VFP OBIECTIVE NOIUNI CHEIE Cunoaterea principalelor obiecte de date oferite utilizatorilor de limbaj (constante, cmpuri, variabile de memorie); Cunoaterea tipurilor de date folosite n cadrul limbajului constante cmpuri variabile de memorie tip numeric, alfanumeric, logic, gestiune timp, special

Obiecte de date Limbajul FoxPro pune la dispoziia utilizatorilor urmtoarele obiecte de date: constante, variabile i matrice de variabile. a) Constante; sunt date definite de utilizator care nu-i schimb valoarea n timpul execuiei comenzilor.

22

b) Cmpuri; reprezint componentele principale ale nregistrrilor de date sau blocurile constructive ale fiierelor .DBF. Ele stocheaz datele de prelucrat i au caracter de permanen, deci supravieuiesc pe durata execuiei oricrui program care se refer la fiierul respectiv. Acest obiect de date se caracterizeaz prin urmtoarele atribute: - Nume (identificatorul obiectului). - Tip; - Valoare; - Lungime; c) Variabile de memorie. se caracterizeaz prin urmtoarele atribute: - Nume; - Tip; - Lungimea; - Durata de via; - Domeniul de vizibilitate; n raport cu acest atribut variabilele de memorie pot fi de dou feluri: 1. publice sau globale; 2. private sau locale. Tipuri de date folosite n Visual FoxPro n Visual FoxPro sunt implementate urmtoarele tipuri de date: a. tipul numeric; b. tipul alfanumeric; c. tipul logic; d. tipul pentru gestiune timp; e. tipul special. UNITATEA 3. SINTAXA COMENZILOR VISUAL FOXPRO OBIECTIVE Inserarea modului de folosire a clauzelor de domeniu i a opiunilor de tip filtru din structura comenzilor FoxPro Cunoaterea metalimbajului folosit la definiia formatului general al unei comenzi clauze domeniu, filtru global, filtru local

NOIUNI CHEIE

Elemente de metalimbaj Regulile sintactice prin care se stabilete dac o anumit construcie este corect alctuit se descriu printr-un limbaj mai simplificat numit metalimbaj. Acest limbaj apare n teoria limbajelor de programare sub denumirea de BNF (Bakus-Naum Form) respectiv EBNF reprezentnd o form extins a limbajului BNF. Metalimbajul conine un ansamblu de simboluri (metasimboluri) i de reguli de descriere. Forma n care se prezint o construcie de baz (instruciune), utiliznd metasimboluri, elemente terminale i neterminale, reprezint formatul general sau sintaxa general a construciei respective.

23

Sintaxa comenzilor Visual FoxPro Structura i caracteristicile comenzilor Visual FoxPro Comenzile FoxPro au ca rezultat imediat o aciune. Ele pot aciona asupra: unui fiier sau unui cmp dintr-un fiier al bazei de date, asupra unei variabile de memorie sau element dintr-un masiv, asupra unei ferestre sau meniu, etc. Cele patru clauze-domeniu din sintaxa unei comenzi au urmtoarea semnificaie: 1. RECORD<expN>; indic faptul c respectiva comand acioneaz asupra articolului (nregistrrii) cu numrul de secven definit de valoarea lui <expN>. 2. NEXT<expN>; indic faptul c respectiva comand acioneaz asupra urmtoarelor articole ncepnd cu articolul curent, n ordinea dat de index i respectnd filtrul curent, pn la un numr total de nregistrri egal cu valoarea <expN>. 3. ALL; indic faptul c respectiva comand acioneaz asupra tuturor nregistrrilor din fiierul curent, respectnd filtrele n curs. Ea reprezint pentru majoritatea comenzilor clauza implicit. 4. REST; indic faptul c respectiva comand acioneaz asupra nregistrrilor cuprinse ntre nregistrarea curent i sfritul fiierului activ. Opiunile FOR i WHILE au urmtoarea semnificaie: FOR<expL>; este un filtru global, adic se aplic tuturor articolelor din domeniul selectat, tratndu-le pe cele pentru care condiia specificat prin <expL> este adevrat. WHILE<expL>; este un filtru local, adic se aplic numai articolelor succesive din domeniul selectat, ncepnd cu articolul curent, ct timp condiia specificat prin <expL> este adevrat. REZUMAT Un program FoxPro este alctuit din iruri de caractere sau construcii i separatori. Construciile limbajului se pot mpri n dou categorii: - construcii simple; - construcii compuse. Construciile simple, reprezint cea mai mic unitate lexical cu neles de sine stttor, numite i atomi lexicale. Exist urmtoarele categorii de atomi lexicali sau de construcii simple: 1. identificatori (cuvinte); 2. literali; 3. simboluri speciale. care formeaz mpreun vocabularul sau lexicul limbajului. A doua grup de construcii, alturi de construciile simple, o reprezint construciile compuse, numite i categorii sintactice de baz obinute prin agregarea succesiv a construciilor simple conform unor reguli sintactice. La nivelul limbajului FoxPro din aceast grup fac parte urmtoarele categorii sintactice: 1. instruciuni; 2. funcii; 3. expresii.

24

TEME DE CONTROL
Bibliografie

Limbajul FoxPro pune la dispoziia utilizatorilor urmtoarele obiecte de date: constante, variabile i matrice de variabile. Variabilele la rndul lor sunt de dou tipuri i anume: cmpuri din fiiere .DBF i variabile de memorie (memory variables sau memvars). d) tipul special. Cele patru clauze-domeniu au urmtoarea semnificaie: RECORD<expN>; indic faptul c respectiva comand acioneaz asupra articolului (nregistrrii) cu numrul de secven definit de valoarea lui <expN>. NEXT<expN>; indic faptul c respectiva comand acioneaz asupra urmtoarelor articole ncepnd cu articolul curent, n ordinea dat de index i respectnd filtrul curent, pn la un numr total de nregistrri egal cu valoarea <expN>. ALL; indic faptul c respectiva comand acioneaz asupra tuturor nregistrrilor din fiierul curent, respectnd filtrele n curs. Ea reprezint pentru majoritatea comenzilor clauza implicit. REST; indic faptul c respectiva comand acioneaz asupra nregistrrilor cuprinse ntre nregistrarea curent i sfritul fiierului activ. S se dea exemplu de: cuvinte utilizator i literale numerice i alfanumerice S se construiasc expresii FoxPro folosind toate tipurile de operatori (aritmetici, relaionali i logici) [Sitar_2010] UNITATEA 4. INTRODUCERE N VISUAL FOX PRO

OBIECTIVE

NOIUNI CHEIE

Descrierea principalelor caracteristici ale Visual FoxPro, ca mediu integrat, obiectual i vizual de dezvoltare de aplicaii; nsuirea lansrii i terminrii unei sesiuni Visual FoxPro; Familiarizarea cu mediul FoxPro; Principalele moduri de lucru n Visual FoxPro; Familiarizarea cu opiunile din meniul principal sau caseta de control i rolurile acestor opiuni Familiarizarea cu gestiunea ferestrelor i a obiectelor de control; Visual FoxPro, mediu de dezvoltare; Sesiune Visual FoxPro; moduri de lansare i terminare; Componentele mediului; Modurile de lucru n mediu; Opiunile meniului principal; Opiunile casetei de control; Tipuri de ferestre i caracteristicile lor; Obiecte de control

Lansarea n execuie i terminarea unei sesiuni Visual FoxPro

25

Lansarea sistemului Visual FoxPro din acest director se poate face analog cu lansarea oricrui program n Windows, n unul dintre urmtoarele moduri: 1. prin selectarea opiunii PROGRAMS din meniul START i apoi a opiunii Microsoft Visual FoxPro 9.0; 2. prin efectuarea unui dublu clic pe pictograma aferent programului Visual FoxPro 9.0, dac pictograma este vizibil pe ecran; 3. prin selectarea din fereastra Explorer a directorului care conine Microsoft Visual FoxPro 8 (de regul Program Files) i apoi, din lista aprut sau din fereastr se selecteaz opiunea sau pictograma Launch Microsoft Visual Foxpro 9.0; 4. prin introducerea n caseta de dialog Run din meniul Start a cii complete a programului Visual FoxPro 9. Terminarea unei sesiuni de lucru n Visual FoxPro se poate realiza n unul din urmtoarele moduri: prin tastarea comenzii QUIT n fereastra de comand; prin selectarea opiunii EXIT (ALT+F4) din meniul FILE; prin selectarea opiunii CLOSE din caseta meniului de control a ferestrei principale Visual FoxPro 8; prin folosirea butonului CLOSE din meniul principal. Fereastra principal (iniial) Dup lansarea Visual FoxPro, pe ecran este afiat fereastra principal. 1. Bara de titlu (Title Bar); conine numele aplicaiei, respectiv Microsoft Visual FoxPro, aliniat la stnga, avnd n fa un buton cu pictograma FoxPro (cap de vulpe). Aceasta este caseta de control a ferestrei principale. Dac se execut pe ea un click cu unul dintre butoanele mouse, sau se tasteaz Alt+Bara Spaiu, apare meniul de control vertical, uzual pentru aplicaiile Windows. De asemenea, n dreapta apar cele 3 butoane uzuale (de minimizare, zoom i nchidere a ferestrei). Bara meniului principal (Menu bar), include la lansare urmtoarele opiuni: File, Edit, View, Format, Tools, Program, Window i Help. Fiecare opiune din bara meniului principal (sistem) afieaz un submeniu vertical atunci cnd se execut un click pe opiunea respectiv Bara cu instrumente standard (Standard Toolbar). Ea conine 20 butoane (casete cu pictograme) i o caset derulant. Trebuie s subliniem c ultimele dou butoane au fost introduse n versiunea 9.0 i nu existau n 7.0. Prin poziionarea mouse-ului pe orice pictogram din bara cu instrumente, sub pictograma selectat apare afiat (ntr-o caset) numele opiunii aferente pictogramei respective. Dup cum este cunoscut n Windows pot fi folosite meniuri rapide. Meniul rapid pentru Visual FoxPro 9.0 se poate lansa simplu prin executarea unui click cu butonul din dreapta pe bara de instrumente. Va apare meniul n care se regsesc cte o opiune pentru principalele programe de proiectare automat a tabelelor, formelor, rapoartelor etc., dar i alte opiuni. Fereastra de comand - este poriunea de pe ecran ncadrat de un dreptunghi, avnd numele COMMAND i permite introducerea direct de

2.

3.

4.

26

5. 6. 7.

comenzi prin tastare. Este prevzut cu butonul de close cu barele de derulare orizontal i vertical. Suprafaa de lucru - reprezint zona din cadrul ferestrei principale n care se afieaz rezultatul execuiei comenzilor introduse de utilizator. O parte din ea este acoperit de fereastra de comand. Cursorul este un simbol grafic, care plpie i indic poziia de pe ecran n care se poate introduce urmtorul caracter. La lansarea sistemului, cursorul apare n fereastra de comand, pe prima linie. Bara de stare (Status Bar) - indic contextul n care ne gsim la un moment dat, afind o serie de informaii utile. Zona de mesaje din bara de stare este vid dac nu este deschis nici o tabel n zona de lucru curent. In schimb, dac este deschis o tabel, n cadrul zonei se afieaz urmtoarele informaii: numele tabelei; numele bazei de date din care face parte tabela, inclus n paranteze; numrul nregistrrii curente a tabelei; numrul total de nregistrri a tabelei; starea curent de partajare a fiierului deschis (a tabelei), prin una din urmtoarele opiuni: Exclusive, Record Unlocked, Record Locked, File Locked. Zona casetelor indicatoare conine trei sau patru casete indicatoare cu urmtoarea semnificaie: prima caset indic starea tastei INS. Ea este goal, atunci cnd editorul Fox se afl n mod inserare, sau conine literele OVR, indicnd modul de suprascriere; urmtoarea caset afieaz NUM dac tasta NumLock este activ; a treia caset afieaz CAPS dac tasta CapsLock este activ; ultima caset (opional) conine ora curent.

Moduri de lucru Utilizatorul are la dispoziie mai multe moduri de lucru, n funcie de nivelul su, scopul urmrit etc. 1. Modul de lucru interactiv prin comenzi (imediat, conversaional sau direct); 2. Modul de lucru asistat (interactiv pe baz de meniuri i butoane). 3. Modul de lucru programat. Dup intrarea n mediul Visual FoxPro, este selectat implicit primul mod de lucru, fapt semnalat prin prezena cursorului n fereastra de comand, ceea ce nseamn c utilizatorul poate introduce comanda dorit. Trecerea la modul de lucru asistat se face fie printr-un click cu mouse-ul pe una dintre opiunile meniului principal, fie cu tastatura, prin acionarea tastei F10 sau ALT prin care se selecteaz prima opiune din meniul sistem (File). Revenirea n fereastra de comand se face prin acionarea tastelor F10, ALT sau ESC, avnd ca efect deselectarea opiunii active din meniul sistem i apariia cursorului n fereastra de comand. Dac se utilizeaz mouse-ul, se poziioneaz cursorul acestuia n fereastra de comand i se execut un click.

27

Meniul sistem i submeniuri Meniul sistem sau bara meniului principal se afieaz n fereastra principal a mediului Visual FoxPro, sub bara de titlu i se compune din urmtoarele elemente: 1. bara de meniuri (menu bar); 2. opiuni din bar (menu pads); 3. meniuri derulante (submeniuri verticale - menu popups); 4. opiuni din meniu (menu options). Caseta de control a ferestrelor n Visual FoxPro Dat fiind importana ferestrelor n FoxPro, acestea sunt gestionate prin intermediul opiunilor din caseta de control a ferestrei sau al opiunilor din meniul Window. Caseta sau meniul de control al unei ferestre conine comenzi (opiuni) pentru mutarea, redimensionarea sau nchiderea unei ferestre. Executarea unui dublu click pe acest obiect al ferestrei principale Visual FoxPro reprezint cea mai rapid cale de ieire din mediul FoxPro. Aspecte privind gestiunea ferestrelor n Visual FoxPro O alt component a interfeei Visual FoxPro, alturi de meniuri, este reprezentat de ferestre. O fereastr este o poriune dreptunghiular a ecranului cu proprieti specifice (coordonate, caracteristici grafice, de colorare, etc.), prin care FoxPro comunic cu utilizatorul. Pe ecran se pot afia sau deschide simultan mai multe ferestre, care se acoper sau nu ntre ele, dup cum s-a vzut n cazul opiunii Window. Dintre acestea, la un moment dat una singur este activ, cea care conine cursorul sau ultima deschis. Chenarul ei are de regul o culoare mai pronunat. Prin activare, o fereastr este adus n prim plan, i toate ieirile sunt dirijate spre fereastra respectiv. Ea rmne activ pn cnd este dezactivat sau este activat o alt fereastr. Ieirea dintr-o fereastr sistem se poate realiza prin: acionarea butonului de nchidere, a tastei ESC, a unui obiect de control din cadrul ferestrei sau prin selectarea comenzii CLOSE din meniul FILE. Ca urmare, fereastra respectiv este eliminat de pe ecran, structura ei de control este tears din memoria operativ iar ieirile sunt dirijate spre o alt fereastr sau pe ecran. Sistemul Visual FoxPro permite lucrul cu dou tipuri de ferestre i anume: 1) ferestre sistem; 2) ferestre utilizator. O fereastr cu statut special n cadrul mediului Visual FoxPro o reprezint fereastra de comenzi (Command Window). Afiarea acestei ferestre se poate realiza n mai multe moduri: prin selectarea opiunii Command Window din meniul Window, prin acionarea tastelor CTRL+F2, sau prin acionarea butonului aferent de pe bara cu instrumente standard.

28

REZUMAT

TEME CONTROL

Bibliografie

Modulul are n componen dou uniti. Prima unitate este destinat studiului mediului Visual FoxPro, ca mediu integrat, obiectual i vizual de dezvoltare de aplicaii. Dintre problemele tratate amintim: - lansarea i terminarea unei sesiuni; - componena mediului Visual FoxPro; - moduri de lucru n Visual FoxPro; - opiunile din meniul principal i din caseta de control; - gestiunea ferestrelor i a obiectelor de control. Efectuarea unor operaii uzuale cu mediul Visual FoxPro; Elaborarea unui memento recapitulative; Cunoaterea elementelor lexicale i sintactice ale limbajului VFP. Prezentarea obiectivelor de date i a tipurilor de date utilizate n cadrul programelor Fox. Prezentarea sintaxei comenzilor FoxPro i a elementelor de metalimbaj 1. [Sitar_2010]

Exemple de teste gril: 1. Cuvintele predefinite cuprind: a) cuvinte cheie i cuvinte rezervate; b) chei primare i chei candidat; c) nici unul din rspunsuri . Rspuns: a . 2. Metalimbajul este: a) un limbaj de programare; b) un ansamblu de simboluri i reguli de descriere; c) un ansamblu de instruciuni . Rspuns: b .

29

MODULUL NUMRUL 3 CREAREA I GESTIUNEA TABELELOR LIBERE


CONCEPTE DE BAZ Crearea, modificarea i listarea structurii tabelelor; Validarea datelor din cadrul unui tabel la nivel de cmp i nregistrare; Deschiderea i nchiderea tabelelor; ncrcarea tabelelor cu date i listarea coninutului acestora; Modificarea coninutului unui tabel; tergerea nregistrrilor din cadrul unui tabel OBIECTIVE Cunoaterea modului de creare i modificare a structurii tabelelor n Visual FoxPro ; Asimilarea tehnicilor de ncrcare a tabelelor cu date i de actualizare a datelor din tabelele respective; RECOMANDRI Se vor studia n continuare operaiile de gestiune cu tabele libere: PRIVIND creare, deschidere, nchidere, adugarea sau eliminarea unei baze STUDIUL de date din proiect, adugare, eliminare tabele din baza de date, indexarea nregistrrilor unui tabel; Pentru nsuirea lucrului cu tabelele se vor studia tehnicile de creare a structurii tabelelor i de ncrcare a tabelelor cu date, de actualizare a datelor i de definire a relaiilor dintre tabele. REZULTATE nsuirea tehnicilor de creare a structurii tabelelor, de ncrcare a ATEPTATE acestora cu date i de actualizare a datelor din tabel; Cunoaterea procedurilor de indexare a tabelelor i a tipurilor de indeci utilizai n Visual FoxPro. UNITATEA 1. LUCRUL CU TABELELE LIBERE N VISUAL FOXPRO OBIECTIVE Crearea, modificarea i listarea structurii tabelelor n Visual FoxPro; Deschiderea i nchiderea tabelelor; ncrcarea tabelelor cu date i listarea coninutului acestora; Modificarea coninutului unui tabel; tergerea nregistrrilor din cadrul unui tabel; Accesul la nregistrrile unui tabel; Ordonarea nregistrrilor unui tabel. Structur tabel, Zone de lucru, Alias tabel, Indicatori de nregistrri, Indexare, Sortare.

CUVINTE CHEIE

Crearea, modificarea i listarea structurii tabelelor n Visual FoxPro Crearea unui nou tabel Tabelele reprezint componentele de baz din cadrul aplicaiilor n Visual FoxPro. O tabel sau fiier .dbf n Visual FoxPro, poate exista fie ca tabel inclus ntr-o baz de date, fie ca o tabel liber, care nu este asociat nici unei baze de date.

30

Pentru a folosi o tabel, ea trebuie, mai nti, creat, aceasta nsemnnd definirea structurii acesteia i apoi ncrcarea cu date. Crearea unei noi tabele n Visual FoxPro se poate realiza n unul din urmtoarele moduri: a. n mod interactiv, folosind generatorul de tabele Table Designer sau Table Wizard; b. Prin comenzi ale limbajului Visual FoxPro. Crearea unui nou tabel prin folosirea generatorului de tabele (Table Designer) Lansarea generatorului sau proiectantului de tabele se poate realiza n unul din urmtoarele moduri: 1) Prin intermediul ferestrei Project Manager. 2) Prin selectarea opiunii New din meniul File sau a pictogramei New de pe bara de instrumente standard. 3) Prin utilizarea asistentului Wizard Crearea unui nou tabel prin selectarea opiunii New din meniul File La selectarea opiunii New din meniul File sau de pe bara de instrumente standard pe ecran se deschide fereastra New din care se selecteaz butonul de opiuni Table indicndu-se astfel c se dorete crearea unui nou tabel, dup care se acioneaz butonul New File avnd ca efect afiarea pe ecran a ferestrei Create. n continuare se parcurg aceleai etape ca i n cazul folosirii constructorului de proiecte (Project Manager). Crearea unei noi tabele prin comenzi ale limbajului Visual FoxPro Pentru crearea structurii unei tabele prin comenzi ale limbajului Visual FoxPro se folosesc n principiu 2 comenzi i anume: CREATE i CREATE TABLE. De asemeni, se mai pot folosi i alte comenzi indirecte care n final permit obinerea structurii unui nou tabel. 1. Comanda CREATE; aceasta este o comand meninut din versiunea clasic i permite crearea n mod conversaional a structurii unui tabel i eventual ncrcarea acestuia cu date. 2. Comanda CREATE TABLE Aceast comand este preluat din limbajul SQL i permite crearea structurii unui tabel n mod direct, pe baza opiunilor cuprinse n comand. Dac noul tabel a crui structur se creeaz va fi asociat unei baze de date, se deschide mai nti baza de date respectiv i apoi se creeaz tabelul. Dac dorim n schimb s creem un tabel liber va trebui s menionm n comanda CREATE opiunea FREE. Dac nu este deschis nici o baz de date, comanda va crea automat un tabel liber, fr s mai menionm n cadrul comenzii opiunea FREE. 3. Alte comenzi utilizate la crearea structurii tabelelor din baze de date Un tabel din cadrul unei baze de date sau liber se poate crea prin copierea structurii sale dintr-un tabel existent, dintr-un fiier intermediar sau dintr-un masiv. In acest sens se folosesc urmtoarele comenzi: a. Comanda COPY STRUCTURE

31

Execuia acestei comenzi permite copierea parial sau total a structurii unui tabel de date activ ntr-un nou tabel. Sintaxa comenzii este urmtoarea: COPY STRUCTURE TO <nume-fiier> [FIELDS<list-de-cmpuri>| FIELDS LIKEMablon1>| FIELDS EXCEPT<ablon2>| [[WITH] CDX | [WITH] PRODUCTION] b. Comanda CREATE FROM Execuia acestei comenzi permite crearea unui nou fiier, prin copierea structurii sale dintr-un fiier intermediar n care se ncarc structura de copiat. Comanda permite n acelai timp i editarea structurii existente nainte de obinerea noii structuri. Formatul general al comenzii este urmtorul: CREATE[<fiier 1>] FROM [<fiier 2>] unde: <fiier 1> este numele fiierului care va fi creat. Acesta preia nregistrrile de date din <fiier 2> pentru crearea structurii sale. Dup execuia comenzii CREATE noua baz de date devine activ. <fiier 2> este numele fiierului intermediar sau surs, numit i fiier cu structur extins. Dac nu se specific nici unul din cele dou fiiere se va deschide o fereastr de dialog din care se selecteaz fiierele folosite n comand. Fiierul cu structur extins se obine prin utilizarea comenzii COPY STRUCTURE EXTENDED cu urmtoarea sintax: COPY STRUCTURE EXTENDED TO <nume-fiier> [FILEDS<list-de-cmpuri>| FILEDS LIKE <ablon 1>| FILEDS EXCEPT<ablon 2>] Modificarea i vizualizarea structurii unui tabel Dup crearea unui tabel, utilizatorul poate modifica structura i proprietile acestora prin: adugarea, modificarea sau tergerea numelui i caracteristicilor unui cmp sau proprietilor acestuia: valori implicite, chei, reguli de validare, etc. Modificarea structurii unui tabel se poate realiza n unul din urmtoarele moduri: - prin folosirea constructorului de tabele (Table Designer); - prin comenzi introduse n fereastra de comand sau la nivel de program. 1. Modificarea structurii unui tabel prin utilizarea constructorului de tabele Din fereastra Project Manager se selecteaz tabelul a crei structur se modific i apoi se acioneaz butonul Modify . Ca efect pe ecran apare fereastra Tabel Designer n care se pot face modificrile dorite. Constructorul de tabele se mai poate lansa i prin selectarea opiunii Modify din meniul Database. In acest scop se deschide mai nti fereastra Database Designer i din fereastra respectiv se va selecta tabelul a crui structur se modific, dup care se selecteaz opiunea Modify din Database. Ca i n

32

primul caz, pe ecran apare fereastra Table Designer coninnd structura tabelului selectat anterior. Modificrile care se pot face referitor la stsructura tabelului activ se refer la: - adugarea sau eliminarea unor cmpuri (linii) din structura existent; - redenumirea unor cmpuri (schimbarea numelui acestora); - schimbarea ordinii cmpurilor n structur; - schimbarea dimensiunii sau tipului unor cmpuri; - schimbarea proprietilor unui cmp (valori implicite, reguli de validare, comentarii etc.). - adgarea, modificarea sau tergerea unui index (tag). Dup efectuarea modificrilor se acioneaz butonul OK prin care se solicit sistemului salvarea modificrilor efectuate. Sistemul Visual FoxPro afieaz pe ecran o caset de mesaj prin care se cere confirmarea modificrilor efectuate. 2. Modificarea structurii unui tabel prin comenzi Pentru modificarea structurii unui tabel se mai pot folosi comanda MODIFY STRUCTURE i funcia DBSETPROP ( ). Comanda MODIFY STRUCTURE Prin execuia acestei comenzi pe ecran se va afia fereastra TABLE DESIGNER aferent tabelului curent, n care se pot opera modificrile dorite. Dup efectuarea modificrilor se va afia pe ecran caseta de mesaj cu confirmarea modificrilor efectuate i apoi se revine n fereastra de comenzi sau n programul care a lansat comanda MODIFY STRUCTURE. 3. Listarea structurii unui tabel Pentru a vizualiza structura unui tabel din baza de date, se folosesc comenzile LIST sau DISPLAY cu urmtoarea sintax: DISPLAY STRUCTURE [IN <zon-lucru>] [TO PRINTER] [TO FILE<fiier>] [NOCONSOLE] LIST STRUCTURE [IN <zon-lucru>] [TO PRINTER] [TO FILE<fiier>] [NOCONSOLE] Cele dou comenzi afieaz structura tabelului deschis n zona de lucru curent numele tabelului, numrul de nregistrri din tabel i data ultimei actualizri. Structura include numele fiecrui cmp, tipul i lungimea acestora i numrul de zecimale pentru cmpurile numerice. Comanda DISPLAY este similar cu LIST cu deosebirea c aceasta afieaz doar informaiile care ncap pe un ecran sau ntr-o fereastr, dup care se ntrerupe afiarea

33

iar ntr-o caset apare mesajul "Press any key to continue". In cazul comenzii LIST, informaiile privind structura tabelului specificat sunt afiate fr nici o pauz. Meninerea integritii datelor prin reguli de validare Integritatea datelor dintr-o baz de date se poate realiza prin intermediul de validare a datelor pe de-o parte i prin integritatea referenial pe de alt parte. Regulile de validare permit verificarea prelurii datelor de intrare. Cu ajutorul lor se compar dac valorile introduse n cmpurile unei nregistrri corespund cerinelor din cadrul expresiei de validare. Conceptul de integritate a datelor depete sfera integritii la nivel de cmp i nregistrare i se extinde la nivelul relaiilor dintre tabele prin intermediul integritii refereniale. Integritatea referenial are ca obiectiv meninerea legturilor dintre tabele i permite efectuarea operaiilor de ncrcare i actualizare a datelor din baza de date astfel nct aceste legturi s nu fie afectate. Bazele de date suport reguli de validare la dou niveluri: la nivel de cmp i la nivel de nregistrare. Pentru a menine integritatea datelor din baza de date, regulile de validare se pot introduce att la nivelul aplicaiilor (programelor) sau chiar n cadrul bazei de date prin intermediul procedurilor stocate. Deschiderea i nchiderea tabelelor din baza de date Zone de lucru Pentru a folosi un tabel al bazei de date, acesta trebuie mai nti deschis sau activat. Aceast operaie se realizeaz ntr-o zon, rezervat n memoria intern, n care se memoreaz informaii privind folosirea fiierului respectiv, numit zon de lucru. Astfel n zona de lucru n care s-a deschis un fiier se memoreaz: - nregistrarea de structur (antetul fiierului); - numrul nregistrrii curente; - formatul fiierului; - relaiile dintre fiierele .DBF. Tot n zona de lucru se creeaz zona tampon aferent fiierului deschis n care se memoreaz prima nregistrare din fiier. FoxPro asigur 32767 de zone de lucru numerotate de la 1 la 32767, n care se pot deschide diferite fiiere. In fiecare zon de lucru se poate deschide ns, un singur fiier. Identificarea zonelor de lucru se poate realiza: - cu ajutorul cifrelor de la 1 la 10 sau cu ajutorul literelor de la A la J pentru primele 10 zone de lucru. - cu ajutorul cifrelor de la 11 - 32767 pentru celelalte zone de lucru; - cu ajutorul aliasului fiierului deschis ntr-o anumit zon de lucru. Deschiderea tabelelor Pentru deschiderea unui tabel liber sau asociat unei baze de date se pot folosi urmtoarele variante: 1. Din fereastra Project Manager se selecteaz baza de date din care face parte tabelul i se acioneaz butonul OPEN avnd ca efect deschiderea bazei de date respective. 2. De pe bara de instrumente standard se selecteaz pictograma care determin deschiderea unui obiect avnd ca efect apariia pe ecran a ferestrei OPEN. In

34

cadrul ferestrei se selecteaz tipul de fiier (DBF) i apoi din lista aprut numele fiierului. Numele fiierului se poate introduce i direct n caseta NAME. 3. Prin utilizarea comenzii USE, n fereastra de comand sau n program Comanda USE Comanda USE permite deschiderea sau activarea unui fiier DBF n zona de lucru curent sau specificat n clauza IN. De asemenea, comanda poate ndeplini n acelai timp i alte funcii cum ar fi: deschiderea fiierelor index i stabilirea fiierului index principal sau atribuirea unui alias fiierului deschis etc. USE{{<nume-baz-date>.]<nume-tabel> |SQL<nume-view>|?] [IN <zon-lucru>|0] [ONLINE][ADMIN]{AGAIN] [NOREQUERY[<nr.sesiune-deschis>]] [NODATA][ALIAS<nume-alias>] [INDEX<list-fis.-index>|? ORDER<expN>|<fis.IDX>| TAG<etichet>[OF<fis.CDX>] [ASCENDING|DESCENDING}}} [EXCLUSIVE][SHARED][NOUPDATE] nchiderea tabelelor Pentru nchiderea fiierelor asociate unei baze de date n fereastra Proiect Manager se selecteaz baza de date aferent i se acioneaz butonul Cose . Prin nchiderea bazei de date se nchid automat i fiierele asociate. Dac dorim s nchidem numai o parte din fiierele deschise asociate unei baze de date sau libere, se va folosi i fereastra Data Session. Din aceast fereastr se selecteaz fiierul ce urmeaz a fi nchis i se acioneaz butonul Close. Operaia se repet pentru fiecare fiier ce urmeaz a fi nchis. Inchiderea unui tabel se poate face i prin folosirea comenzii USE f nici un parametru, pentru a nchide fiierul din zona curent, sau cu parametrul IN <zona-lucru>, pentru a nchide fiierul deschis n zona de lucru precizat n clauza IN. ncrcarea tabelelor cu date i listarea coninutului acestora ncrcarea unui tabel cu date const n adugarea n cadrul fiierului aferent de nregistrri coninnd datele necesare unei aplicaii. Aceast operaie se poate realiza imediat dup crearea structurii unui tabel, n mod interactiv, prin preluarea datelor de la tastatur sau ulterior n funcie de necesiti. In general se prefer a doua variant de ncrcare a tabelelor din baza de date, deoarece n acest caz, datele se pot ncrca fie prin preluare dintr-un alt tabel fie prin folosirea unui formular. De asemenea n funcie de poziia pe care o nregistrare o va ocupa n fiier, adugarea se poate face la sfritul fiierului sau n interiorul acestuia, printre nregistrrile existente. Adugarea de noi nregistrri la sfritul unui tabel prin meniul sistem Principalul instrument folosit de Visual FoxPro pentru adugarea de noi nregistrri n cadrul unui tabel, l reprezint fereastra Browse. Prin intermediul acestei ferestre se pot

35

de asemenea modifica sau marca/demararea pentru tergere anumite nregistrri sau se pot vizualiza nregistrrile unui tabel. Pentru deschiderea ferestrei Browse i adugarea de noi nregistrri se pot folosi urmtoarele variante: Din fereastra Project Manager se selecteaz baza de date care conine tabelul sau tabelele ce urmeaz a fi ncrcate. Se selecteaz apoi din seciunea Tables, tabelul n care se fac adugrile i se acioneaz butonul Browse. Ca efect pe ecran apare fereastra Browse cu coninutul fiierului Pentru a aduga o singur nregistrare vid la sfritul ferestrei se selecteaz din meniul Table opiunea Append New Record sau se acioneaz tastele CTRL+Y. Datele aferente nregistrrii vide se introduc n fiecare cmp prin tastare, trecerea la cmpul urmtor realizndu-se cu ENTER. Pentru a aduga un numr mare de nregistrri se va selecta opiunea Append Mode din meniul View, prin care se adaug cte o nregistrare vid dup ultima nregistrare din fereastr. Dup introducerea unei nregistrri se poate aciona tasta cu sgeata n jos (n modul Browse) sau Enter (n modul Edit) pentru a aduga o nou nregistrare. Dup ncrcarea acesteia cu date Visual FoxPro va aduga o nou nregistrare vid pe ultima poziie din cadrul ferestrei i va plasa cursorul pe nregistrarea respectiv. La terminarea operaiei de ncrcare, datele introduse vor fi salvate pe disc n fiierul aferent. Dac deschidem din nou fereastra Browse vom vedea nregistrrile anterior adugate. Adugarea de noi nregistrri prin comenzi ale limbajului Visual Foxpro; comanda APPEND Pentru adugarea de noi nregistrri n cadrul unui tabel prin intermediul limbajului Visual FoxPro se folosesc comenzile: APPEND, care determin adugarea de nregistrri la sfritul fiierului. Comanda APPEND Executarea acestei comenzi determin adugarea de noi nregistrri la sfritul tabelului activ, deschis n zona de lucru curent. Dac nu este deschis nici un tabel n zona de lucru curent pe ecran se afieaz fereastra OPEN pentru a selecta i deschide tabelul n care se vor face adugri. Prin folosirea comenzii n formatul: APPEND adic fr opiunea BLANK se adaug nregistrri la sfritul tabelului, prin prelucrarea datelor de la tastatur. Ca urmare pe ecran se afieaz fereastra de editare APPEND care conine cmpurile tabelului activ ordonate pe vertical. Valorile aferente fiecrui cmp se tasteaz n dreptul cmpului respectiv. Dup introducerea datelor aferente unei nregistrri, pe ecran se afieaz macheta de preluare date pentru urmtorul articol. Vizualizarea coninutului unui tabel; comenzile LIST i DISPLAY La nivel de program listarea coninutului unui tabel se poate realiza cu ajutorul comenzilor DISPLAY i LIST. Cele dou comenzi permit afiarea coninutului unui tabel al bazei d date pe ecran, la imprimant sau ntr-un fiier pe disc. Modificarea coninutului unui tabel

36

Modificarea valorii unor cmpuri din cadrul nregistrrilor unui fiier al bazei de date se poate realiza prin meniul sistem sau cu ajutorul comenzilor EDIT, CHANGE, BROWSE, REPLACE, BLANK, UPDATE. Modificarea coninutului unui tabel prin meniul sistem n majoritatea cazurilor se prefer modul de lucru Browse, prin intermediul ferestrei Browse, dat fiind multitudinea de faciliti oferite de acest instrument al mediului Visual FoxPro. Interfaa prietenoas a ferestrei de calcul tabelar, permite navigarea rapid prin tabel n timp ce sistemul Visual FoxPro asigur o vitez superioar i caracteristici performante de cutare. de aceea, ea reprezint modul ideal pentru afiarea i modificarea nregistrrilor unui tabel. Dup deschiderea unei ferestre Browse n vederea modificrii unuia sau mai multor cmpuri dintr-o nregistrare, trebuie realizat poziionarea pe nregistrarea respectiv. In cazul care n fereastra Browse sunt afiate mai puine nregistrri, deplasarea la o anumit nregistrare se poate realiza cu ajutorul tastelor cu sgei sau mouse-ului. Modificarea coninutului unui tabel prin comenzi ale limbajului Visual FoxPro Comanda BROWSE Execuia acestei comenzi permite afiarea nregistrrilor din fiierul curent, sub form de tabel ntr-o fereastr de editare. nregistrrile astfel afiate pot fi editate (modificate) sau pot fi marcate sau demarcate pentru tergere. De asemenea, dup afiarea nregistrrilor n fereastra de editare se pot aduga nregistrri vide ale cror cmpuri se vor edita imediat sau ulterior. Inregistrrile sunt afiate pe ecran n ordinea lor natural sau ntr-o ordine alfabetic definit de fiierul index activ asociat fiierului de date. Comanda REPLACE Execuia acestei comenzi permite nlocuirea coninutului unuia sau mai multor cmpuri din cadrul nregistrrilor fiierului activ, cu anumite valori. Execuia acestei comenzi permite nlocuirea coninutului unuia sau mai multor cmpuri din cadrul nregistrrilor fiierului activ, cu anumite valori. Spre deosebire de comenzile precedente, execuia acestei comenzi nu determin deschiderea pe ecran a unei ferestre de editare n care utilizatorul introduce noile valori ale cmpurilor, ci realizeaz actualizarea pe baza datelor incluse n comand. tergerea nregistrrilor din cadrul unui tabel prin meniul sistem tergerea unor nregistrri dintr-un tabel al bazei de date se realizeaz n dou etape i anume: 1) tergerea logic; 2) tergerea fizic. tergerea nregistrrilor din cadrul unui tabel prin comenzi ale limbajului Visual FoxPro 1. tergerea logic Inregistrrile din cadrul unui tabel pot fi marcate pentru tergere folosind comanda DELETE. DELETE[<domeniu>][FOR<expL>] [WHILE<expI> [NOOPTIMIZE]

37

Cele trei opiuni<domeniu>, FOR<expL> i WHILE <expL> permit selectarea nregistrrilor ce urmeaz a fi marcate pentru tergere. Domeniul implicit al comenzii este nregistrarea curent. Accesul la nregistrrile marcate pentru tergere se pot controla cu comanda SET DELETIND ON/OFF astfel: a) la folosirea opiunii ON, articolele marcate pentru tergere sunt ignorate de comenzile FOX; b) la folosirea opiunii OFF, comenzile FOX pot avea acces la toate nregistrrile, chiar dac o parte dintre acestea sunt marcate pentru tergere; c) opiunea implicit este OFF. 2. tergerea fizic Aceast operaie const n eliminarea din fiierul curent a tuturor nregistrrilor marcate pentru tergere i se realizeaz cu ajutorul comenzii PACK cu sintaxa: PACK[MEMO][DBF] Dac nu se folosete nici una din clauze, comanda PACK se refer att la fiierul .DBF ct i la fiierul memo asociat. Accesul la nregistrrile unui fiier Accesul la o singur nregistrare ; Indicatorul de nregistrri Din punct de vedere fizic, fiierele din baza de date sunt de tip secvenial, nregistrrile acestora fiind identificate printr-un numr de secven. Acest numr se atribuie nregistrrilor din cadrul unui fiier n ordine cresctoare ncepnd cu 1. Prin operaiile efectuate asupra unor nregistrri, acest numr nu se modific (valoarea maxim). n schimb acesta se poate modifica prin inserarea de noi nregistrri sau tergerea unor nregistrri din baza de date. Pentru a permite accesul la o anumit nregistrare, dintr-un fiier al bazei de date, FoxPro folosete o locaie de memorie din zona de lucru n care memoreaz numrul de secven al nregistrrii curente. Aceast locaie poart denumirea de indicator de nregistrri. El poate fi considerat ca o variabil de memorie care exist ct timp fiierul este deschis. Modificarea indicatorului de nregistrri n vederea precizrii nregistrrii curente se realizeaz prin meniul sistem sau prin comenzi ale limbajului Visual FoxPro, folosind doua metode: 1. selectarea poziiei unei nregistrri n fiier, metod prin care numrul nregistrrii curente se stabilete direct prin evaluarea unor expresii; 2. specificarea unor condiii logice, metod prin care numrul nregistrrii curente se stabilete ca urmare a unui proces de cutare. Modificarea indicatorului de nregistrri prin meniul sistem Pentru a avea acces la o anumit nregistrare din cadrul unui tabel, se va selecta opiunea Go to Record din meniul Table. Ca efect pe ecran se va afia un submeniu care conine urmtoarele opiuni: Top, Bottom, Next, Previous, Record , Locate astfel:

38

Modificarea indicatorului de nregistrri prin comenzi ale limbajului Visual FoxPro Pentru modificarea indicatorului de nregistrri din cadrul limbajului Visual FoxPro se folosesc cele dou metode, ca i n cazul meniului sistem i anume: - Selectarea poziiei nregistrrii n fiier, folosind n acest scop comenzile GO TO i SKIP; - Specificarea unor condiii logice la nivelul unor comenzi, metod prin care indicatorul de nregistrri se modific ca urmare a unui proces de cutare. n momentul n care se gsete prima nregistrare care satisface condiia, aceasta devine nregistrare curent. n acest caz se folosesc comenzile LOCATE, FIND i SEEK. Precizarea nregistrrii curente prin specificarea poziiei acesteia; comenzile GOTO i SKIP 1. Comanda GOTO Execuia acestei comenzi realizeaz poziionarea indicatorului de nregistrri pe nregistrarea cu numrul de secven rezultat din evaluarea expresiei din cadrul comenzii. Prin execuia comenzii GOTO n primul format, are loc poziionarea indicatorului de nregistrri pe nregistrarea cu numrul de secven rezultat din evaluarea expresiei specificat prin <expN1>, n fiierul deschis n zona de lucru curent sau specificat prin clauza IN. n cazul formatului 2, are loc poziionarea indicatorului de nregistrri la extremele fiierului, adic pe prima nregistrare (opiunea TOP) sau pe ultima nregistrare (opiunea BOTTOM). 2. Comanda SKIP Utilizarea acestei comenzi determin modificarea indicatorului de nregistrri prin efectuarea unui salt peste anumite nregistrri pornind de la nregistrarea curent. Cutarea nregistrrilor n tabelele bazei de date 1. Cutarea secvenial; comenzile LOCATE i CONTINUE Pentru cutarea ntr-un fiier secvenial a unor nregistrri care satisfac anumite condiii se folosesc comenzile LOCATE i CONTINUE. Comanda LOCATE permite cutarea n fiierul curent a nregistrrii care satisface condiia specificat n comand. 2. Cutarea direct; comenzile FIND i SEEK Aceste comenzi se folosesc dac fiierul la care se refer este indexat i permit cutarea direct i poziionarea indicatorului de nregistrri pe prima nregistrare la care valoarea cheii de indexare este egal cu irul de caractere sau valoarea expresiei din cele dou comenzi. Modaliti de folosire a celor dou comenzi: 1) comanda SEEK sau FIND acioneaz doar asupra fiierului indexat, considernd parametrii comenzii ca o valoare a cheii de indexare; 2) cele dou comenzi gsesc doar primul articol care satisface criteriul de cutare; 3) operaia de cutare se desfoar astfel: a.n cazul cheii de tip ir de caractere este suficient specificarea doar a primelor caractere din ir, iar comanda FIND sau SEEK gsete nregistrarea a crei cheie de indexare ncepe cu irul specificat;

39

b.n cazul cutrii dup valoarea unei chei numerice, se gsete nregistrarea a crei cheie de indexare este egal cu valoarea specificat n cele dou comenzi; c.la cutarea dup coninutul unei variabile de memorie, numele acesteia se specific n comanda FIND dup procedeul macrosubstituiei, adic precedat de caracterul & (ampersand). Dac valoarea variabilei ncepe cu spaii se introduce ntre ghilimele. Ordonarea nregistrrilor din cadrul unui tabel Prelucrarea datelor financiar-contabile presupune de cele mai multe ori ordonarea acestora dup anumite criterii. Un fiier al bazei de date este ordonat dup un anumit criteriu dac fiecare nregistrare a acestuia respect criteriul dat n raport cu nregistrrile anterioare i posterioare. n FoxPro se pot folosi dou metode de ordonare a datelor unui fiier al bazei de date: 1. ordonarea propriu-zis sau sortarea realizat prin schimbarea ntre ele a nregistrrilor, dup un anumit algoritm de sortare n funcie de cheia de sortare definit de utilizator. n acest caz se obine un nou fiier, care conine aceleai nregistrri cu cele din fiierul surs, dar ordonate dup un anumit criteriu. 2. indexarea, aceasta nsemnnd de asemenea crearea unui nou fiier care conine informaii cu privire la ordinea nregistrrilor din fiierul surs, numit fiier index. Spre deosebire de prima metod i n acest caz se obine un nou fiier, dar acesta nu conine nregistrrile de date din fiierul surs ci memoreaz numai ordinea acestora. Sortarea fiierelor din baza de date La sortarea unui fiier al bazei de date, sistemul FoxPro creeaz un nou fiier cu un nume diferit de cel al fiierului surs care conine articolele din fiierul surs ordonate dup un anumit criteriu. Structura sa este aceeai cu cea a fiierului iniial. Aceast operaie se realizeaz cu ajutorul comenzii SORT cu urmtoarea sintax: SORT TO <fiier> ON <cmp1> [/A | /D] [/C] [, <cmp2> [/A | /D] [/C] ] [ASCENDING | DESCENDING] [<domeniu>] [FOR <expL1>] [WHILE <expL2>] [FIELDS <list-cmpuri> | [FIELDS LIKE <ablon1> |FIELDS EXCEPT <ablon2>] [NOOPTIMIZE] Comanda, sorteaz articolele fiierului curent, crend un nou fiier, n care sunt depuse nregistrrile selectate din fiierul curent, n ordinea specificat prin comand. Indexarea nregistrrilor din cadrul unui table; Logica operaiei de indexare Cea de a doua metod de ordonare a datelor unui fiier o reprezint indexarea acestuia, metod prin care se creeaz un fiier index, asociat fiierului de date activ, n care se memoreaz cheia de indexare i ordinea nregistrrilor din fiierul activ. Ca urmare n fiierul index pentru fiecare nregistrare de date din fiierul activ se memoreaz un index format din perechea de informaii: cheia de indexare i numrul de secven a nregistrrii din fiierul de date. n acest fiier valorile cheii de indexare apar n ordine

40

cresctoare, iar fiierul de date activ nu este modificat. n acest fel accesul la o anumit nregistrare se va face prin intermediul fiierului index asociat, ordinea fizic a nregistrrilor din fiierul activ nefiind modificat. Tipuri de fiiere index n Visual FoxPro pot fi create trei tipuri de fiiere index i anume: fiiere index simple sau independente cu extensia .IDX; fiiere index compuse structurale cu extensia .CDX; fiiere index compuse nestructurale cu extensia .CDX. 1. Fiierele index simple sau independente conin cte o singur cheie de indexare de tip Unique (cheie unic). Ele se numesc independente deoarece numele lor nu are nici o legtur cu tabela la care sunt asociate. Aceste fiiere se pot crea n Visual FoxPro numai cu comanda INDEX. 2. Fiiere index compuse structurale; conin mai multe chei de indexare, fiecare cheie avnd asociat o etichet sau un tag. Pe baza indecilor definii n fereastra Table Designer, Visual FoxPro creeaz ntotdeauna un fiier index compus structural cu etichetele definite n caseta Table Designer.Dac dorim s crem un fiier index simplu sau un fiier compus nestructural va trebui s folosim comenzi ale limbajului Visual FoxPro (comanda INDEX). 3. Fiier index compus nestructural; conin de asemenea mai multe chei de indexare, fiecare cheie avnd asociat o etichet sau un tag. Spre deosebire de fiierele index structurale, aceste fiiere au nume diferit de cel al tabelei la care sunt asociate. Ca urmare ele trebuie deschise prin comenzi explicite. Crearea fiierelor index Indexarea reprezint modalitatea cea mai bun de a ordona datele unui tabel. n Visual FoxPro se pot crea urmtoarele categorii de indeci: 1. Normali (Regular); indic faptul c sistemul Visual FoxPro memoreaz n fiierul index valoarea aferent expresiei de indexare (cheia de indexare) pentru fiecare nregistrare din tabela de date, chiar dac n tabel exist mai multe nregistrri cu aceeai valoare a cheii de indexare. 2. Unici (Unique); permit memorarea n fiierul index a unei valori unice a cheii de indexare. Astfel, dac mai multe nregistrri din tabela surs au aceiai valoare a cheii de indexare se memoreaz numai cheia de indexare pentru prima nregistrare de acest gen. Celelalte nregistrri cu aceiai valoare a cheii de indexare nu vor putea fi accesate prin intermediul fiierului index, ele fiind ascunse utilizatorului. Acest tip de index asigur compatibilitatea cu versiunea FoxPro 2.6 sub Windows. Candidat (Candidate); este asemntor cu indexul unic, dar nu accept nici n tabelul surs nregistrri cu aceeai valoare a cheii de indexare. n cazul indecilor unici, puteau exista n tabela surs i nregistrri cu aceeai valoare a cheii de indexare dar se prelua n fiierul index numai valoarea cheii de indexare aferent primei nregistrri din aceast categorie, celelalte nregistrri nefiind asociate fiierului index. Primari (Primary); conin pentru fiecare nregistrare din tabelul surs o valoare unic a cheii de indexare. Acest tip de index este deci la fel ca si cel candidat i se utilizeaz n cadrul tabelei printe pentru a asigura integritatea referenial ntr-o relaie permanent. Pentru o tabel se accept numai un singur index primar, iar tabela respectiv trebuie s fie inclus n baza de date.

41

Crearea indecilor prin meniul sistem Un index aferent unei tabele apare n fereastra table Designer, n pagina Indexes, sub forma unei nregistrri care conine: ordinea de indexare (cresctoare sau descresctoare), numele etichetei din fiierul compus care se creeaz pe baza indexului, tipul indexului, cheia de indexare i un filtru pentru nregistrrile care vor fi asociate indexului creat. Pentru fiecare index aferent unui tabel vom crea cte o nregistrare de acest gen, reprezentnd un rnd n pagina Indexes. De fiecare dat cnd construim un index se creeaz de fapt un fiier care pstreaz pointeri la nregistrrile din fiierul .dbf. Indecii afereni unei tabele pot fi creai fie n momentul definirii structurii unui tabel, sau ulterior. Crearea fiierelor index prin comenzi ale limbajului Visual FoxPro Pentru crearea unui fiier index, prin comenzi ale limbajului Visual FoxPro se folosete comanda INDEX. Comanda INDEX Prin execuia acestei comenzi se creeaz un fiier index simplu sau un fiier index compus structural sau nestructural. Sintaxa acestei comenzi este urmtoarea:
REZUMAT

O baz de date n Visual FoxPro are ataat un fiier special cu extensia .DBC (DataBase Container) n care sunt memorate printre altele structura tabelelor componente, relaiile permanente dintre tabelele bazei de date, caracteristici suplimentare ale tabelelor din baza de date, caracteristici ale bazei de date n ansamblul su i proceduri ce urmeaz a fi executate la apariia unor evenimente. Construirea unei baze de date n Visual FoxPro se realizeaz n etapele: crearea bazei de date, n care se vor memora informaii privind tabelele i baza de date n ansamblul su; ncorporarea n noua baz de date a tabelelor simple anterior create i construirea noilor tabele ce vor fi ncorporate direct n baza de date; specificarea pentru tabelele simple incluse n baze de date a unor caracteristici ce nu se puteau declara n momentul construirii lor, ca tabele izolate; stabilirea legturilor permanente ntre tabelele bazei de date; precizarea unor caracteristici ale noii baze de date; includerea n baza de date a unor vederi, conexiuni cu date externe etc. Crearea fiierului bazei de date de poate realiza n unul din urmtoarele moduri: prin folosirea constructorului de baze de date (DataBase Designer) apelat din meniul sistem; prin folosirea ferestrei PROJECT MANAGER; prin folosirea comenzii CREATE DATABASE. Prin crearea unei baze de date cu ajutorul comenzii CREATE DATABASE, aceasta nu devine automat parte component a unui proiect, chiar dac pe ecran este deschis fereastra Project Manager. Avnd n vedere facilitile oferite de instrumentul Project Manager privind organizarea, vizualizarea i manipularea obiectelor sale prin intermediul interfeei
(fereastra Project Manager) se recomand ca bazele de date create independent s fie adugate n cadrul unui proiect existent sau nou creat. n acest scop, dup lansarea Gestionarului de proiecte i afiarea pe ecran a ferestrei

42

Project Manager se selecteaz seciunea DataBase i apoi se execut un clic pe butonul Add . Ca urmare se va afia pe ecran fereastra Open, din care se selecteaz baza de date ce urmeaz a fi inclus n proiect. O baz de date poate fi retras dintr-un proiect i inclus n altul sau tears fizic de pe disc, dac nu mai este necesar n cadrul sistemului. Pentru a elimina o baz de date dintr-un proiect, din fereastra Project Manager se activeaz butonul Remove iar din caseta care se afieaz dup activarea acestui buton, se alege opiunea Remove. Dac dorim ca baza de date s fie tears fizic de pe hard-disc se va alege opiunea Delete.

TEME DE CONTROL

Bibliografie

Pentru deschiderea uneia sau mai multor baze de date, din fereastra Project Manager se selecteaz baza de date ce urmeaz a fi deschis i se execut un clic pe butonul Open sau Modify. Operaia se repet apoi pentru fiecare baz de date ce urmeaz a fi deschis. De asemenea, pentru deschiderea unei baze de date din fereastra Project Manager, sau care nu este inclus ntr-un proiect se poate folosi comanda OPEN Pentru nchiderea unei baze de date, avnd pe ecran afiat fereastra Project Manager, se va selecta mai nti baza de date ce urmeaz a fi nchis i apoi se activeaz butonul Close. Operaia se repet pentru fiecare baz de date ce urmeaz a fi nchis. De asemenea pentru nchiderea bazei de date curente i a tabelelor aferente se poate folosi comanda CLOSE DATABASE. Se vor efectua lucrri practice de creare a unei baze de date folosind instrumentele de lucru prezentate anterior; Se vor efectua operaii de gestiune a unei baze de date ; Se vor crea mai multe tabele care se includ n baza de date anterior creat ; Se vor defini relaii permanente ntre tabelele create i se vizualizeaz schema bazei de date ; Se ncarc tabelele create cu date i se vizualizeaz coninutul acestora ; Se actualizeaz tabelele create prin modificare i tergere de nregistrri ; Se indexeaz tabelele create. [Sitar_2010]

Exemple de teste gril: 1. Care este domeniul implicit de aciune al comenzii REPLACE: a) articolul curent; b) baza de date curent; c) tabela curent. Rspuns: a . 2. Care este efectul execuiei comenzii DELETE n sintaxa creia nu apare niciun parametru? a) terge fizic articolul curent; b) marcheaz pentru tergere articolul curent; c) terge tabela curent; d) nu are niciun efect. Rspuns: b .

43

MODULUL NUMRUL 4 CREAREA I GESTIUNEA BAZELOR DE DATE


CONCEPTE DE BAZA Crearea bazei de date Deschiderea i nchiderea bazelor de date Adugarea tabelelor n baza de date Eliminarea unei tabele din baza de date Relationarea tabelelor din baza de date nuirea modului de creare i gestionare a bazei de date Studiul aspectelor specifice tabelelor din bazele de date Studiul relaionrilor dintre tabele Recomandm parcurgerea etapelor de creare a unei baze de date folosind: instrumentul DATABASE DESIGNER; comanda CREATE DATA BASE. Se vor studia n continuare operaiile de gestiune cu baze de date. Se vor studia relaiile dintre tabele nelegerea i nsuirea deprinderilor practice de creare i gestionare a bazelor de date n Visual FoxPro; nsuirea gestiunii tabelelor i a relaiilor dintre ele n cadrul unei baze de date.

OBIECTIVE RECOMANDRI PRIVIND STUDIUL

REZULTATE ATEPTATE

UNITATEA 1. CREAREA I GESTIUNEA BAZELOR DE DATE N VISUAL FOXPRO OBIECTIVE crearea bazelor de date gestiunea bazelor de date; deschidere, nchidere, adugare sau eliminare de tabele din baza de date; relaionarea tabelelor din baza de date; constructorul bazei de date; relaii persistente, relaii temporare; integritate referenial;

CUVINTE CHEIE

Caracteristici generale O baz de date n Visual FoxPro are ataat un fiier special cu extensia .DBC (DataBase Container) n care sunt memorate printre altele structura tabelelor componente, relaiile permanente dintre tabelele bazei de date, caracteristici suplimentare ale tabelelor din baza de date, caracteristici ale bazei de date n ansamblul su i proceduri ce urmeaz a fi executate la apariia unor evenimente. Visual FoxPro ncearc s corecteze utilizarea improprie a celor doi termeni, prin introducerea unui obiect distinct numit container de baze de date. Construirea unei baze de date n Visual FoxPro se realizeaz n urmtoarele etape: 1. crearea bazei de date, n care se vor memora informaii privind tabelele i baza de date n ansamblul su;

44

2. ncorporarea n noua baz de date a tabelelor simple anterior create i construirea noilor tabele ce vor fi ncorporate direct n baza de date; 3. specificarea pentru tabelele simple incluse n baze de date a unor caracteristici ce nu se puteau declara n momentul construirii lor, ca tabele izolate; 4. stabilirea legturilor permanente ntre tabelele bazei de date; 5. precizarea unor caracteristici ale noii baze de date; 6. includerea n baza de date a unor vederi, conexiuni cu date externe etc. Crearea bazei de date Crearea fiierului bazei de date de poate realiza n unul din urmtoarele moduri: a) prin folosirea constructorului de baze de date (DataBase Designer) apelat din meniul sistem; b) prin folosirea ferestrei PROJECT MANAGER; c) prin folosirea comenzii CREATE. Crearea bazei de date prin folosirea ferestrei PROJECT MANAGER Pentru a deschide fereastra PROJECT MANAGER exist dou posibiliti: 1. dac exist un proiect anterior creat se selecteaz numele proiectului din submeniul FILE, fapt care determin afiarea pe ecran a ferestrei PROJECT MANAGER aferent proiectului respectiv. In acest caz noua baz de date va fi creat n cadrul proiectului respectiv 2. dac nu exist nc nici un proiect definit se selecteaz opiunea PROJECT din fereastra New. Ca urmare pe ecran apare fereastra CREATE prin care se solicit numele noului proiect i directorul n care se memoreaz. Dup introducerea acestor informaii prin acionarea butonului SAVE se salveaz noul proiect i se deschide pe ecran fereastra PROJECT MANAGER aferent noului proiect. Crearea bazei de date prin comenzi Pentru crearea bazei de date prin comenzi se folosete comanda CREATE cu sintaxa: CREATE DATABASE [ <nume-baza-de-date>|? ] La execuia acestei comenzi are loc crearea unei baze de date i deschiderea acesteia n zona curent. Adugarea sau eliminarea unei baze de date la/din proiect Prin crearea unei baze de date cu ajutorul comenzii CREATE DATABASE, aceasta nu devine automat parte component a unui proiect, chiar dac pe ecran este deschis fereastra Project Manager. Avnd n vedere facilitile oferite de instrumentul Project Manager privind organizarea, vizualizarea i manipularea obiectelor sale prin intermediul interfeei (fereastra Project Manager) se recomand ca bazele de date create independent s fie adugate n cadrul unui proiect existent sau nou creat. In acest scop, dup lansarea Gestionarului de proiecte i afiarea pe ecran a ferestrei Project Manager se selecteaz seciunea DataBase i apoi se execut un clic pe butonul Add. Ca

45

urmare se va afia pe ecran fereastra Open, din care se selecteaz baza de date ce urmeaz a fi inclus n proiect. Deschiderea bazelor de date Bazele de date din cadrul unui proiect, pot fi deschise simultan pe ecran folosind butonul Open sau prin referine la tabelul unei baze de date nchis, prin folosirea comenzii USE cu simbolul "!". Prin deschiderea unei noi baze se date, nu are loc nchiderea bazei de date anterior deschise. Acestea rmn n continuare deschise, iar ultima baz de date deschis devine baza de date curent, numele ei fiind afiat n caseta de pe bara de instrumente standard a ferestrei Visual FoxPro. Dac baza de date nu este inclus n cadrul unui proiect pentru deschiderea acesteia n mod interactiv se poate folosi fereastra Data Session afiat pe ecran ca urmare a selectrii opiunii cu acelai nume din meniul Window. De asemenea, pentru deschiderea unei baze de date din fereastra Project Manager, sau care nu este inclus ntr-un proiect se poate folosi comanda OPEN n formatul: OPEN DATABASE [<nume-baza-date>|?] [EXCLUSIVE][SHARED] [NOUPDATE] [VALIDATE] nchiderea unei baze de date Pentru nchiderea unei baze de date, avnd pe ecran afiat fereastra Project Manager, se va selecta mai nti baza de date ce urmeaz a fi nchis i apoi se activeaz butonul Close. Operaia se repet pentru fiecare baz de date ce urmeaz a fi nchis. De asemenea pentru nchiderea bazei de date curente i a tabelelor aferente se poate folosi comanda CLOSE DATABASE. Adugarea tabelelor n baza de date Prin adugarea unei tabele n baza de date se creeaz o legtur ntre fiierul tabelei i containerul bazei de date. Informaia de legtur despre tabel stocat n fiierul bazei de date este o legtur nainte (), iar informaia de legtur despre baza de date n care se include o tabel, stocat n fiierul tabelei, este o legtur napoi () Orice tabel din Visual FoxPro poate exista n una din urmtoarele stri: - tabel liber; - tabel asociat; Tabelele asociate unei baze de date au o serie de proprieti specifice, care nu se ntlnesc n cadrul tabelelor libere sau externe, cum ar fi: relaii persistente ntre tabele, reguli de validare la nivel de cmp i nregistrare, etc. Ele pot fi asociate unei baze de date prin crearea lor direct n cadrul bazei de date existente sau prin adugarea acestora dup ce au fost create ca i tabele libere. Relaionarea tabelelor din baza de date

46

n Visual FoxPro relaiile pe care le crem ntre tabele cu ajutorul Constructorului bazei de date (Database Designer) se numesc relaii persistente. In afara acestora se pot defini i relaii temporare sau dinamice prin comenzi introduse n programele de prelucrare. Ca urmare relaiile temporare sunt disponibile numai n momentul rulrii programului n care au fost definite dup care ele nu mai exist. Tabelele ntre care se creeaz o relaie se numesc: tabel principal sau printe i respectiv tabel secundar sau fiu. ntre cele dou tabele se pot defini urmtoarele tipuri de relaii: 1. relaie una-la-una (1-1); 2. relai una-la-mai-multe (1-n); 3. relaie mai-multe la-una (n-1); 4. relaie mai-multe-la-mai-multe (m-n). n Visual FoxPro sunt implementate primele trei tipuri de relaii. Deoarece modelul relaional nu poate accepta direct o relaie Mai multe la mai multe acest tip de relaie se poate nlocui cu 2 relaii : mai multe la una i una la mai multe prin intermediul unei tabele suplimentare numit i tabel de jonciune. Pentru a realiza unul din tipurile de relaii amintite, ntre dou tabele, acestea trebuie s fie indexate dup coninutul aceluiai cmp. Cmpul din tabela printe dup care se face indexarea acesteia se numete cheie primar (primary key), iar cel din tabela fiu, dup care se face indexarea, se numete cheie extern (foreign key). Cheia primar se seteaz la indexarea tabelei ca i index primar sau candidat (primary index or candidate index), iar cheia extern se poate seta ca i index primar, candidat, unic sau normal. Relaii permanente Dup stabilirea cmpurilor cheie din cele dou tabele i a indecilor afereni se poate defini o relaie permanent ntre cele dou tabele. In acest scop se va afia pe ecran fereastra constructorului de baze de date (Database Designer) n care apar tabelele ce compun baza de date. In tabela printe se selecteaz indexul primar i se face drag-drop la indexul din tabela fiu, avnd ca efect crearea relaiei ntre cele dou tabele. Faptul c relaia ntre cele dou tabele a fost creat se indic prin afiarea unei linii care unete cei doi indeci. nceputul liniei de la tabela printe conine o cruce, iar sfritul liniei spre tabele fiu, conine o bifurcaie, indicnd o relaie de tip 1-n. Fiecare relaie permanent reprezint un obiect Visual, sub forma unei linii cu dou simboluri (cruce i bifurcaie). Ca urmare, ca orice obiect, poate fi modificat cu ajutorul unor comenzi specifice. Pentru tergerea unei relaii incorect definite sau care nu mai este necesar, se execut clic pe linie i apoi se apas tasta DELETE, sau din meniul shortcut al liniei se selecteaz opiunea Remove. Asigurarea integritii datelor din tabelele legate ntre ele prin relaii permanente Printre mecanismele care asigur integritatea bazei de date se numr i cele privind integritatea entitilor i integritatea referenial. Integritatea entitilor este implementat prin specificarea n cadrul unei tabele, a faptului c nu pot accepta valori nule cmpurile care reprezint chei primare. Integritatea referenial (referenial integrity-RI) definete un ansamblu de reguli, care permit menionarea integritii datelor din tabelele legate ntre ele, la operaiile de

47

modificare, adugare i tergerea datelor din tabelele respective, astfel nct s nu existe nregistrri neparticipante la relaie. Implementarea acestor reguli ntre tabele se realizeaz prin intermediul unor restricii numite restricii pentru integritate referenial (RI constraints). Prin definirea regulilor de integritate referenial, mediul Visual FoxPro va interzice: - adugarea de nregistrri n tabela fiu atunci cnd n tabela printe nu exist nici o nregistrare cu aceeai valoare a cheii de indexare; - modificarea valorii cheii de indexare n tabela principal care s duc la apariia de nregistrri orfane n tabela fiu; - tergerea de nregistrri n tabela printe, dac exist nregistrri asociate n tabela fiu. Specificarea restriciilor de integritate referenial i generarea automat a procedurilor aferente se realizeaz prin intermediul Generatorului de Integritate Referenial (Referential Integrity Builder). Relaii temporare Alturi de relaiile permanente se pot defini n Visual FoxPro i relaii sau legturi temporare, care sunt active atta timp ct dureaz o sesiune de lucru sau un program. Ele se pot crea prin meniul sistem sau prin program. Ca i n cazul relaiilor permanente, cele dou tabele, principal i secundar, trebuie s fie indexate pe baza unui cmp comun (cheia primar n tabela principal, cheia extern n cea secundar). REZUMAT O baz de date n Visual FoxPro are ataat un fiier special cu extensia .DBC (DataBase Container) n care sunt memorate printre altele structura tabelelor componente, relaiile permanente dintre tabelele bazei de date, caracteristici suplimentare ale tabelelor din baza de date, caracteristici ale bazei de date n ansamblul su i proceduri ce urmeaz a fi executate la apariia unor evenimente. Construirea unei baze de date n Visual FoxPro se realizeaz n urmtoarele etape: crearea bazei de date, n care se vor memora informaii privind tabelele i baza de date n ansamblul su; ncorporarea n noua baz de date a tabelelor simple anterior create i construirea noilor tabele ce vor fi ncorporate direct n baza de date; specificarea pentru tabelele simple incluse n baze de date a unor caracteristici ce nu se puteau declara n momentul construirii lor, ca tabele izolate; stabilirea legturilor permanente ntre tabelele bazei de date; precizarea unor caracteristici ale noii baze de date; includerea n baza de date a unor vederi, conexiuni cu date externe etc. Crearea fiierului bazei de date de poate realiza n unul din urmtoarele moduri: - prin folosirea constructorului de baze de date (DataBase Designer) apelat din meniul sistem; - prin folosirea ferestrei PROJECT MANAGER; - prin folosirea comenzii CREATE. Adugarea sau eliminarea unei baze de date la/din proiect

48

Pin crearea unei baze de date cu ajutorul comenzii CREATE DATABASE, aceasta nu devine automat parte component a unui proiect, chiar dac pe ecran este deschis fereastra Project Manager. Avnd n vedere facilitile oferite de instrumentul Project Manager privind organizarea, vizualizarea i manipularea obiectelor sale prin intermediul interfeei (fereastra Project Manager) se recomand ca bazele de date create independent s fie adugate n cadrul unui proiect existent sau nou creat. In acest scop, dup lansarea Gestionarului de proiecte i afiarea pe ecran a ferestrei Project Manager se selecteaz seciunea DataBase i apoi se execut un clic pe butonul Add . Ca urmare se va afia pe ecran fereastra Open, din care se selecteaz baza de date ce urmeaz a fi inclus n proiect. O baz de date poate fi retras dintr-unproiect i inclus ntr-un alt proiect sau tears fizic de pe disc, dac nu mai este necesar n cadrul sistemului. Pentru a elimina o baz de date dintr-un proiect, din fereastra Project Manager se activeaz butonul Remove iar din caseta care se afieaz dup activarea acestui buton, se alege opiunea Remove. Dac dorim ca baza de date respectiv s fie tears fizic de pe hard-disc se va alege opiunea Delete. Deschiderea bazelor de date Pentru deschiderea uneia sau mai multor baze de date, din fereastra Project Manager se selecteaz baza de date ce urmeaz a fi deschis i se execut un clic pe butonul Open sau Modify. Operaia se repet apoi pentru fiecare baz de date ce urmeaz a fi deschis. De asemenea, pentru deschiderea unei baze de date din fereastra Project Manager, sau care nu este inclus ntr-un proiect se poate folosi comanda OPEN nchiderea unei baze de date Pentru nchiderea unei baze de date, avnd pe ecran afiat fereastra Project Manager, se va selecta mai nti baza de date ce urmeaz a fi nchis i apoi se activeaz butonul Close. Operaia se repet pentru fiecare baz de date ce urmeaz a fi nchis. De asemenea pentru nchiderea bazei de date curente i a tabelelor aferente se poate folosi comanda CLOSE DATABASE. Relaionarea tabelelor din baza de date n Visual FoxPro relaiile pe care le crem ntre tabele cu ajutorul Constructorului bazei de date (Database Designer) se numesc relaii persistente. In afara acestora se pot defini i relaii temporare sau dinamice prin comenzi introduse n programele de prelucrare. Ca urmare relaiile temporare sunt disponibile numai n momentul rulrii programului n care au fost definite dup care ele nu mai exist. Tabelele ntre care se creeaz o relaie se numesc: tabel principal sau printe i respectiv tabel secundar sau fiu. ntre cele dou tabele se pot defini urmtoarele tipuri de relaii: - relaie una-la-una; prin care unei nregistrri din tabela printe i corespunde o singur nregistrare n tabela fiu (copil); - relaii una-la-mai-multe; prin care unei nregistrri din tabela printe i corespund mai multe nregistrri n tabela copil; - relaie mai-multe la-una; prin care pentru o nregistrare n tabela copil putem avea mai multe nregistrri n tabela printe;

49

TEME DE CONTROL

Bibliografie

relaie mai-multe-la-mai-multe; prin care unei nregistrri din tabela printe i pot corespunde mai multe nregistrri n tabela copil i invers adic unei nregistrri din tabela copil i pot corespunde mai multe nregistrri n tabela printe. Asigurarea integritii datelor din tabelele legate ntre ele prin relaii permanente Printre mecanismele care asigur integritatea bazei de date se numr i cele privind integritatea entitilor i integritatea referenial. Integritatea entitilor este implementat prin specificarea n cadrul unei tabele, a faptului c nu pot accepta valori nule cmpurile care reprezint chei primare. Integritatea referenial (referenial integrity-RI) definete un ansamblu de reguli, care permit menionarea integritii datelor din tabelele legate ntre ele, la operaiile de modificare, adugare i tergerea datelor din tabelele respective, astfel nct s nu existe nregistrri neparticipante la relaie. Implementarea acestor reguli ntre tabele se realizeaz prin intermediul unor restricii numite restricii pentru integritate referenial (RI constraints). Specificarea restriciilor de integritate referenial i generarea automat a procedurilor aferente se realizeaz prin intermediul Generatorului de Integritate Referenial (Referential Integrity Builder). Aceasta permite, de asemenea, precizarea tabelelor printe i fiu din cadrul unei relaii i a evenimentelor din sistem care impun mediului Visual FoxPro s verifice regulile definite. Se vor efectua lucrri practice de creare a unei baze de date folosind instrumentele de lucru prezentate anterior; Se vor efectua operaii de gestiune a unei baze de date ; Se vor crea mai multe tabele care se includ n baza de date anterior creat ; Se vor defini relaii permanente ntre tabelele create i se vizualizeaz schema bazei de date ; [Sitar_2010] -

Exemple de teste gril: 1. Cum se poate crea o baz de date n Visual FoxPro ? a) numai prin meniu; b) numai prin comand; c) n ambele moduri; d) prin niciunul. Rspuns: c . 2. Cheia primar n cazul unei tabele este: a) primul cmp din tabel; b) cmpul sau combinaia de cmpuri dup care se face indexarea tabelei; c) cmpul sau combinaia de cmpuri dup care se face sortarea tabelei. Rspuns: b .

50

MODULUL NUMRUL 5 GESTIUNEA PROIECTELOR


CONCEPTE DE BAZA OBIECTIVE Rolul proiectelor n dezvoltarea aplicaiilor; Project Manager, componenta Visual FoxPro pentru gestiunea proiectelor. Familiarizarea cu noiunea de proiect i rolul acestuia n dezvoltarea aplicaiilor cu particularitz n Visual FoxPro. Stabilirea modalitilor de gestiune a proiectelor; Personalizarea managerului ; Deprinderea utilizrii Wizard-ului. Studierea atent a bibliografiei; Studiu individual n laborator i exersarea opiunilor i componentelor mediului; Elaborarea unor schie referitoare la nlnuirea logic a operaiilor. Crearea unor deprinderi de utilizare a managerului de proiect.

RECOMANDRI PRIVIND STUDIUL

REZULTATE ATEPTATE

UNITATEA 1. GESTIUNEA PROIECTELOR OBIECTIVE Familiarizarea cu noiunea de proiect i rolul acestuia n dezvoltarea aplicaiilor ; Particularitile proiectelor n Visual FoxPro. Stabilirea modalitilor de creare, respective de modificare a proiectelor; Descrierea paginilor etichetate din Proiect Manager ; Gestiunea unor tipuri de fiiere prin Proiect Manager ; Familiarizarea cu meniul Proiect ; Personalizarea managerului ; Utilizarea Wizard-ului Proiect i componentele sale n Visual FoxPro ; Modaliti de creare/modificare a proiectelor; Tipuri de pagini etichetate n Project Manager; Opiunile meniului Project; Gestiunea fiierelor cu ajutorul Project Manager; Utilizarea Wizard-ului pentru managementul proiectelor i opiunile acestuia.

NOIUNI CHEIE

Caracteristici generale Elaborarea sistemelor informatice este o activitate laborioas i sistematic. De aceea orice astfel de activitate debuteaz cu elaborarea unui proiect. Proiectul nseamn un ansamblu de date, programe, formulare i rapoarte de diferite tipuri, organizate ntr-o anumit structur. Visual FoxPro pune la dispoziia utilizatorilor o modalitate sistematic de organizare i gestiune a elementelor necesare unui proiect, cu ajutorul utilitarului Project Manager.

51

Project Manager este o mbuntire a generatorului de proiecte din FoxPro 2.5, respectiv 2.6, uor de utilizat, avnd, n acelai timp, o interfa prietenoas, care permite utilizatorilor finali s-i gestioneze eficient proiectul. El funcioneaz n principiu n urmtorii pai: 1. Folosind interfee grafice, utilizatorul introduce i gestioneaz elementele componente ale proiectului. Sistemul realizeaz pe baza acestor elemente un tabel cu extensia .pjx, care este de fapt un container n care se memoreaz datele referitoare la componentele din proiect. 2. n a doua faz, dac utilizatorul dorete, poate transforma proiectul fie ntr-o aplicaie sub form de cod intermediar (cu extensia .app), fie ntr-o aplicaie executabil (cu extensia .exe). n cadrul ferestrei aferente acestui utilitar, datele sunt grupate pe categorii funcionale: baze de date, tabele, rapoarte, forme, etichete, pentru a avea o eviden mai clar a tuturor elementelor proiectului i, n acelai timp, o vedere de ansamblu asupra acestora. Utilizarea constructorului de proiecte (Project Manager) Crearea unui proiect nou Pentru a crea un proiect nou, din meniul File se selecteaz opiunea New, sau de pe bara de instrumente se selecteaz pictograma aferent crerii unui nou fiier. Din fereastra New, se alege butonul de selecie Project i apoi butonul de comand New File. Ca urmare, pe ecran apare caseta de dialog Create, n care se stabilete directorul i numele noului proiect (implicit acesta are numele Project 1 i, aa dup cum s-a vzut, extensia pjx). Dup introducerea acestor informaii se acioneaz butonul Save, avnd ca efect afiarea pe ecran a ferestrei Project Manager. Constructorul de proiecte poate fi lansat i n mod comand, tastnd o comand de forma: CREATE PROJECT [numeproiect | ?] dac n fereastra de comand se tasteaz CREATE PROJECT ? sau pur i simplu CREATE PROJECT, aciunea se va derula identic cu lansarea constructorului din meniu; dac se tasteaz ns comanda sub forma CREATE PROJECT numeproiect se trece peste faza de vizualizare a chenarului Create i apare direct chenarul constructorului de proiecte. Pentru a deschide un proiect deja existent, din meniul File, se selecteaz opiunea Open, sau se activeaz pictograma pentru deschidere fiiere (a doua) de pe bara de instrumente standard. n caseta de dialog Open se va selecta tipul de fiier ce urmeaz a fi deschis, adic Project i apoi denumirea proiectului, dup care se acioneaz butonul OK, avnd ca efect afiarea pe ecran a ferestrei Project Manager aferent proiectului selectat. Alt modalitate mai rapid de afiare a ferestrei Project Manager const, n selectarea numelui de proiect direct din meniul File, unde dup lista de opiuni apar i numele tuturor proiectelor existente.

52

n mod comand, un proiect poate fi deschis printr-o comand de forma: MODIFY PROJECT [numeproiect | ?] care va funciona asemntor cu cazul crerii proiectelor i anume: dac se utilizeaz forma MODIFY PROJECT ? sau MODIFY PROJECT, operaia se va derula ca i n cazul lansrii sale din meniu; dac se utilizeaz forma MODIFY PROJECT numeproiect apare direct chenarul constructorului de proiecte, fr a mai apare fereastra Open. Componentele utilitarului Project Manager Pentru a asigura o organizare ct mai clar a datelor necesare unui proiect, fereastra Project Manager conine ase pagini, fie etichetate sau foi de proprieti, fiecare dintre acestea fiind asociat unei anumite categorii de date. Fiecare pagin are o etichet cu numele categoriei de informaii pe care o reprezint. Principalele componente ale paginilor din fereastra Project Manager sunt urmtoarele: 1. Pagina Data - conine datele necesare unei aplicaii, fiind organizat la primul nivel, pe urmtoarele categorii: Database (baze de date) Free Tabels (tabele libere) Queries (interogri) Fiecare baz de date poate conine urmtoarele subcategorii : Tables (tabele) Local View (vederi locale) Remote View (vederi la distan) Conections (conexiuni) Stored Procedures (proceduri stocate) 2. Pagina Documents - include toate documentele utilizate n lucrul cu tabele, cum ar fi: formulare (Forms) pentru citirea datelor i vizualizarea lor, rapoarte (Reports), reprezentnd situaii de ieire i etichete potale (Labels), pentru tiprirea rezultatelor interogrilor. 3. Pagina Clases - Aceast pagin conine toate bibliotecile de clase definite sau adugate aplicaiei. Bibliotecile de clase n Visual FoxPro sunt memorate n fiiere cu extensia .vcx i pot conine oricte clase. Vizualizarea claselor dintr-o anumit bibliotec se face prin execuia unui click pe semnul "+" din faa numelui bibliotecii. 4. Pagina Code - include codul surs al programelor FoxPro precum i aplicaiile asociate. Programul principal este marcat prin litere ngroate. In cadrul paginii, pe lng toate programele surs avem posibilitatea de a include i alte aplicaii care pot fi asociate cu aplicaia cu care lucrm. Din cadrul ferestrei Project Manager putem crea, aduga sau terge fiiere program (cu extensia .prg) legate de aplicaia respectiv. 5. Pagina Other - n cadrul acestei pagini sunt stocate codurile surs pentru meniuri, sub form de fiiere cu extensia .mpr, ct i celelalte fiiere, cum ar fi: icon-uri, bitmap-uri, fiiere de text etc. 6. Pagina All - conine toate obiectele celorlalte pagini.

53

REZUMAT

TEME DE CONTROL, APLICAII

Bibliografie

Modulul are n componen o unitate destinat gestiunii proiectelor ca medii de dezvoltare de aplicaii cu particularizare n cazul Visual FoxPro. Dintre problemele studiate amintim: Particularitile proiectelor n Visual FoxPro. Stabilirea modalitilor de creare, respective de modificare a proiectelor; Utilizarea ferestrei Project Manager i a meniului vertical aferent; Personalizarea managerului de proiecte; Facilii oferite de Wizard. Elaborarea unui memento recapitulativ; Operaii de creare, modificare i tergere a unor proiecte, precum i a unor componente ale lor cu i fr Wizard. [Sitar_2010]

Exemple de teste gril: 1.Deschiderea proiectului cu numele Proiect1.pjx se poate face prin comanda: a) OPEN PROJECT Proiect1.pjx; b) USE PROJECT Proiect1.pjx; c) MODIFY PROJECT Proiect1.pjx; d) niciuna de mai sus. Rspuns: c . 2. Pagina Code din cadrul Project Manager include: a) bibliotecile de clase; b) datele necesare unei aplicaii; c) codul surs al programelor FoxPro i aplicaiile asociate; d) niciuna de mai sus. Rspuns: c.

54

MODULUL NUMRUL 6 PROGRAMAREA N VISUAL FOXPRO


CONCEPTE DE Implementarea structurilor de control n Visual FoxPro BAZ Gestiunea variabilelor de memorie, a cmpurilor memo i masivelor de date Comenzi de intrare/ieire Proceduri i funcii utilizator Obiecte i clase n Visual FoxPro OBIECTIVE Cunoaterea comenzilor de implementare a structurilor de control alternative i repetitive; Cunoaterea modului de definire a variabilelor de memorie, cmpurilor memo i a masivelor de date. RECOMANDRI Se recomand studierea principalelor comenzi de implementare a PRIVIND structurilor de control alternative i repetitive (IF, DO, CASE, DO STUDIUL WHILE, FOR, SCAN) n continuare se vor studia comenzile de intrare/ieire, prin n testarea pe calculator a modulului de utilizare a acestora; Se vor studia noiunile de clas i obiect, proprietile acestora. De asemeni se vor studia conceptele de metode i evenimente. REZULTATE La finele studiului acestui modul utilizatorul trebuie s cunoasc ATEPTATE modul de folosire al comenzilor de implementare al structurilor de control ct i al comenzilor de intrare/ieire; De asemenea utilizatorul trebuie s fie n msur s creeze obiecte i s ataeze acestora secvene de comenzi. UNITATEA 1. COMENZI DE IMPLEMENTARE A STRUCTURILOR DE CONTROL ALTERNATIVE I REPETITIVE OBIECTIVE Cunoaterea modului de funcionare i utilizare a comenzilor de implementare a structurii de control, alternative i repetitive. CUVINTE CHEIE IF, DO CASE, DO WHILE, FOR, SCAN Implementarea structurilor de control n Visual FoxPro Limbajul FoxPro conine comenzi pentru implementarea celor trei tipuri de structuri de control: secveniale, alternative i repetitive, cu urmtoarele precizri: - Comenzile pentru implementarea structurilor de control alternative i repetitive nu se pot folosi n mod interactiv numai la nivel de program. - Limbajul nu conine instruciuni de salt condiionat de tip GOTO n capitolul de fa urmeaz a fi prezentate comenzile pentru implementarea structurilor alternative i repetitive, respectiv: IF, DO CASE, DO WHILE, FOR i SCAN. Celelalte comenzi din cadrul limbajului sunt considerate ca i comenzi pentru realizarea structurilor secveniale, ele fiind prezentate n cadrul unor capitole distincte (crearea

55

structurii de date, deschiderea bazei de date, actualizarea bazei de date, intrri/ieiri de date etc.) Structuri alternative Aceste structuri realizeaz selectarea unei secvene de comenzi n funcie de ndeplinirea sau nendeplinirea unei condiii. Pentru implementarea acestor structuri se folosesc comenzile IF i DO CASE. Comanda IF Aceast comand permite execuia unei secvene de instruciuni pe baza evalurii unei expresii logice. Fiind cea mai simpl structur de control, poate fi considerat ca fiind printele familiei structurilor de programare. Sintaxa general a comenzii este urmtoarea: IF<expl> <secv-comenzi1> [ELSE <secv-comenzi2>] ENDIF La ntlnirea acestei comenzi se evalueaz <expL> i dac este adevrat se execut <secv-comenzi1>, dup care se trece la prima comand dup ENDIF. Dac condiia din <expL> nu este adevrat se execut <secv-comenzi2>, dup care se trece la prima comand dup ENDIF. In acest caz, dac opiunea ELSE lipsete, se trece direct la prima comand dup ENDIF. Comanda DO CASE n scopul creterii flexibilitii programului, limbajul Visual FoxPro permite implementarea structurilor de control generalizate sau multiple, fr folosirea de instruciuni IF incluse una n alta, folosind comanda DO CASE. Ea reprezint extinderea natural a principiului exclusivitii mutuale la dou sau mai multe situaii. Prin urmare, n loc s folosim expresii logice reciproc exclusive, Visual FoxPro, permite s includem orice expresie logic dorim pentru fiecare caz sau situaie n parte. Sintaxa general a comenzii este urmtoarea: DO CASE CASE <expL1> <secv-com1> CASE <expL2> <secv-com2> OTHER WISE <secv-comn> ENDCASE Execuia acestei comenzi are loc astfel: 1. Se evalueaz fiecare expresie logic n ordinea n care apare n comanda DO CASE, iar ntlnirea primei expresii logice adevrate se execut secvena de comenzi aferent, dup care se trece la prima comand dup ENDCASE.

56

2. Dac nici una din expresiile logice specificate n comanda DO CASE nu sunt adevrate, se execut grupul de comenzi din clauza OTHERWISE sau se trece la prima comand dup ENDCASE, dac clauza OTHERWISE lipsete. 3. Dac mai multe expresii logice din comanda DO CASE sunt adevrate, se execut numai secvena de comenzi aferent primei condiii logice adevrate, dup care se trece la prima comand dup ENDCASE. Structuri repetitive Structurile repetitive pot fi implementate n limbajul Visual FoxPro cu ajutorul comenzilor: DO WHILE, FOR i SCAN. Comanda DO WHILE Dac structura DO CASE ENDCASE este o copie aproape fidel a structurii IF ENDIF, structura DO WHILEENDDO este asemntoare i ea cu IFENDIF. Astfel, dac comanda IF execut secvena de instruciuni dac expresia logic este adevrat, comanda DO WHILE permite execuia repetat a secvenei de instruciuni ct timp expresia logic din cadrul comenzii este adevrat. Ea permite astfel implementarea structurilor de control repetitive cu condiionare anterioar. Formatul general al comenzii este urmtorul: DO WHILE <expL> <secv-comenzi> [LOOP] [EXIT] ENDDO Execuia comenzii ncepe cu evaluarea expresiei logice. Astfel, dac expresia logic este adevrat se execut secvena de comenzi pn la ENDDO, dup care se revine la evaluarea expresiei logice. Dac expresia logic este fals se trece la prima comand dup ENDDO. Instruciunea LOOP determin revenirea la evaluarea condiiei logice din DO WHILE., Comanda FOR Aceast comand se afl ntr-o relaie foarte strns cu comanda DO WHILE, fiind o variant asemntoare a comenzii DO WHILE. Ea permite execuia repetat a unei secvene de comenzi de un anumit numr de ori fiind utilizat pentru implementarea structurilor de control repetitive cu indici. Formatul general al comenzii este urmtorul: FOR <var> =<exp1> TO <exp2> [,STEP<exp3>] <secven de comenzi> [LOOP] [EXIT] ENDFOR/NEXT unde: <var>; este variabila de control care indic de cte ori se execut secvena de comenzi din instruciunea FOR <exp1>; reprezint valoarea iniial a variabilei de control <exp2>; definete valoarea final a variabilei de control

57

<exp3>; definete raia cu care se modific valoarea iniial a variabilei de control. Valoarea implicit pentru raie este 1 Comanda SCAN Aceast comand reprezint o alt modalitate de ciclare specializat, fiind proiectat pentru execuia de secvene de comenzi prin care se prelucreaz nregistrrile unui tabel din baza de date. Execuia comenzii determin parcurgerea tabelului curent i efectuarea pentru fiecare nregistrare selectat din tabel a secvenei de comenzi specificate n comand. Formatul general al comenzii este urmtorul: SCAN [<domeniu>] [FOR<expL1>] [WHILE <expL2>] [NOOPTIMIZE] [LOOP] [EXIT] <secvena-de-comenzi> ENDSCAN Semnificaia opiunilor din cadrul comenzii este urmtoarea: - <domeniu>, FOR<expL1>, WHILE <expL2>; permit selectarea din tabelul curent a nregistrrilor pentru care se va executa secvena de comenzi din comanda SCAN. - <secvena de comenzi>; conine comenzile ce urmeaz a fi executate pentru fiecare nregistrare selectat din tabel. Reluarea secvenei de comenzi pentru urmtoarea nregistrare se face automat la ntlnirea cuvintelor ENDSCN sau LOOP. UNITATEA 2. COMENZI DE INTRARE/IEIRE OBIETIVE CUVINTE CHEIE nsuirea modului de folosire al comenzilor de intrare/ieire n mod linie: INPUT, ACCEPT nsuirea de afiare, coduri de funcii.

Comenzi de intrare/ieire Aceste comenzi se pot mpri n dou categorii i anume: 1. Comenzi de intrare/ieire n mod linie. 2. Comenzi de intrare/ieire n mod ecran. Comenzile de intrare/ieire n mod linie permit afiarea, respectiv introducerea datelor din poziia curent a cursorului. Acestea sunt: ACCEPT, INPUT, WAIT (de intrare), ?,??,???, DISPLAY, LIST (de ieire). Comenzi de intrare n mod linie; Comenzile ACCEPT i INPUT Aceste comenzi permit introducerea de date de la tastatur i preluarea lor ntr-o variabil de memorie sau ntr-un element dintr-un masiv. Opional, se poate afia un mesaj, definit de utilizator, referitor la informaia de preluat. Sintaxa general a celor dou comenzi este urmtoarea: ACCEPT[<expC>]TO<var>|<element-masiv> INPUT[<expC>]TO<var>|<element-masiv> 58

Datele de intrare pentru comanda ACCEPT sunt considerate iruri de caractere, ca urmare variabila sau elementul de masiv n care se preiau aceste date vor fi de tip ir de caractere. n cazul comenzii INPUT, datele de intrare sunt interpretate ca o expresie care este evaluat, rezultatul evalurii, fiind de tip caracter, dat calendaristic, logic sau numeric. Ca urmare, variabila sau elementul masivului care memoreaz datele de intrare, vor avea tipul specificat anterior. Parametrul <expC> reprezint promptul sau mesajul care se afieaz naintea datei de preluat. Comenzi de ieire n mod linie; Formatul de afiare/citire La afiarea valorii unor date sau la citirea lor de pe un periferic se folosesc clauzele PICTURE i FUNCTION cu urmtoarea sintax: PICTURE <sir1> FUNCTION <sir2> Ele determin afiarea sau citirea datelor precizate ntr-o comand de intrare sau de ieire, ntr-un format specificat prin <sir1> respectiv <sir2> astfel: <sir1> conine ntre ghilimele diferite coduri de afiare, cte unul pentru fiecare caracter din date de afiat <sir2> conine tot ntre ghilimele coduri de funcie. Un cod de funcie acioneaz asupra tuturor caracterelor din data de afiat sau citit i definete o anumit caracteristic a textului de afiat sau citit. UNITATEA 3. OBIECTE I CLASE N VISUAL FOXPRO OBIECTIVE CUVINTE CHEIE nsuirea conceptelor de clas, obiect metode i evenimente; Cunoaterea modului de creare a claselor i obiectelor n Visual FoxPro i a modului de referire la obiectele unei clase. Clas, Obiect, Metode, Evenimente, Controale, Containere.

Crearea i execuia programelor n Visual FoxPro Crearea unui program n Visual FoxPro presupune parcurgerea urmtoarelor etape: 1. introducerea programului n fereastra de editare i salvarea acestuia pe disc; In acest scop se poate folosi fereastra Project Manager de unde se selecteaz pagina Code i apoi butonul New. Ca urmare, are loc lansarea editorului de text propriu sistemului Visual FoxPro, iar pe ecran se afieaz fereastra de editare n care se va introduce programul. Lansarea editorului se poate face i prin introducerea comenzii MODIFY COMMAND [<nume-program>] n fereastra de comenzi. Se recomand ns folosirea primei metode, prin care programul creat este inclus automat n proiect. Pentru salvarea programului se pot aciona tastele CTRL+W sau se selecteaz opiunea Save sau SAVE AS din meniul File. 2. lansarea n execuie; care se poate realiza n mai multe moduri; din fereastra Project Manager se selecteaz din pagina Code programul surs i apoi se execut un clic pe butonul Run.

59

- n fereastra de comenzi se introduce comanda DO <nume-program> [WITH <lista-parametru>]. - din meniul PROGRAM se selecteaz opiunea DO. Proceduri i funcii definite de utilizator Pentru a uura nelegerea, testarea i depanarea unui program, acesta se structureaz pe module, unde fiecare modul conine o secven de comenzi prin care se realizeaz o anumit prelucrare. Aceste module se pot defini fie ca module principale, fie ca proceduri sau funcii utilizator (UFD - User Defined Functions). Modulele organizate sub form de proceduri i funcii utilizator pot fi apelate n cadrul unui program, de mai multe ori, prin cte o comand de apel, fr a rescrie aceste module ori de cte ori sunt executate. Modul de definire i apelare a unei proceduri sau funcii utilizator, prezint urmtoarele particulariti: 1. o procedur conine o secven de comenzi grupate sub acelai nume care realizeaz o anumit prelucrare. Ea este apelat de alte module i poate primi de la acestea unul sau mai muli parametrii. Dup execuia comenzilor din cadrul procedurii, se red controlul programului apelant, fr a returna neaprat vreo valoare. 2. o funcie utilizator conine de asemenea o secven de comenzi. Ea primete de obicei un set de parametrii de la programul apelant i returneaz acestuia la terminarea prelucrrii o valoare ca rezultat al prelucrrilor efectuate asupra parametrilor primii. Definirea procedurii se realizeaz cu comanda PROCEDURE, iar a funciei cu comanda FUNCTION. Obiecte i clase n Visual FoxPro n Visual FoxPro, fa de versiunea clasic, s-au adugat o serie de faciliti, dintre care cea mai important o reprezint programarea orientat pe obiecte i condus de evenimente. Un obiect reprezint un ansamblu de date mpreun cu procedurile de prelucrare a acestora. Procedurile sau comportamentul, poart denumirea de metode, iar datele de atribute sau proprieti. Obiectele mai pot fi definite ca reprezentnd entiti din lumea real, care nglobeaz n ele stri (date) i comportamente (funciuni). Reprezentarea unei entiti se realizeaz printr-un ansamblu de proprieti comune (colecii de proprieti). Proprieti, metode i evenimente Fiecare obiect posed anumite proprieti i metode n funcie de clasa din care fac parte. Astfel, un buton de comand poate avea urmtoarele proprieti: - CAPTION - conine textul scris pe buton; - LEFT - conine distana fa de marginea din stnga ecranului; - RIGHT - conine distana fa de marginea din dreapta ecranului; - TOP, - conine distana fa de partea de sus a ecranului; - HIGHT - conine nlimea butonului;

60

VISIBLE - conine valorile .T. sau .F. prin care se indic dac obiectul este vizibil sau nu pe ecran. O proprietate este, prin urmare, un atribut al unui obiect (cmp, fereastr, control) pe care l folosim pentru a defini aspectul sau comportamentul obiectului respectiv. n Visual FoxPro, proprietatea se definete printr-o variabil de memorie n care se memoreaz valorile pentru proprietatea respectiv. Ea poate avea oricare din tipurile de date acceptate de Visual FoxPro. Aa cum rezult din exemplul dat, proprietile unui obiect, respectiv a unui buton, identific atributele fizice ale acestuia (lungime, nlime etc.). ns, obiectele nu sunt caracterizate numai prin atributele fizice, ci ele conin ceva n plus fa de aceste proprieti, respectiv metodele. Metodele sunt aciuni pe care le poate executa un obiect i includ cod (instruciuni) care indic modul de comportament al obiectului respectiv. Codul aferent obiectelor, se definete de ctre utilizator, n funcie de cerinele programului i se execut n momentul apelrii metodei respective. Unele dintre metode, posed cod ncorporat, care indic un anumit comportament al obiectului. Exemplu metode: SHOW - afieaz i activeaz o fereastr pe ecran; REFRESH - afieaz starea unui obiect, dup efectuarea unor modificri asupra obiectului respectiv. Deci, fa de instruciuni, unei metode utilizatorul i poate ataa o secven de cod specific unei anumite prelucrri, care se execut n momentul apelrii metodei respective. Fiecare obiect n Visual FoxPro, recunoate i rspunde la anumite evenimente. Acestea pot fi evenimente externe, iniiate de utilizator, sau interne, iniiale de ctre sistemul Visual FoxPro. Evenimentele externe sunt generate de anumite aciuni cum ar fi: efectuarea unui clic cu mouse-ul pe un obiect, apsarea unei taste etc. Setul de evenimente aferent unui tip de obiect este stabilit anterior. Prin urmare, utilizatorul nu poate crea noi evenimente care s le asocieze unui obiect. Spre deosebire de evenimente, setul de metode, este infinit extensibil. Ele exist independent de evenimente i se execut n momentul n care sunt apelate. Evenimentele au asociate metode. Astfel, dac scriem o metod cu numele click, care reprezint un eveniment i o asociem unui buton, sau unui alt obiect, codul metodei se va executa automat, ori de cte ori survine evenimentul click, adic facem un clic cu mouse-ul pe obiectul respectiv. Clase Prin proprieti, obiectele pot s difere ntre ele, sau s se asemene unul cu altul. De exemplu, dou calculatoare, unul de buzunar, altul de birou, se deosebesc ntre ele printr-o mulime de caracteristici (greutate, dimensiuni, culoare etc., numite proprieti), dar principiul de baz al funcionrii lor este acelai, conin piese electronice aproape identice, pot efectua aceleai calcule. Ca urmare, obiectele care au aceleai proprieti i acelai comportament (rspund la aceleai evenimente prin aceleai aciuni) aparin aceleai clase. Astfel, cele dou calculatoare (de birou i de buzunar), prin elementele lor comune (circuite, piese

61

electronice) i prin faptul c pot rspunde la aceleai evenimente interne sau externe, se consider c aparin aceleai clase, cea de calculatoare. Deci, o clas descrie o mulime de obiecte cu proprieti i comportament similar. Cele dou noiuni, clas i obiect, nu pot fi ns confundate pentru c nu reprezint acelai lucru. O clas conine informaii despre felul cum arat i se comport obiectele care-i aparin. Clasa reprezint deci o noiune abstract care definete structura i comportamentul obiectelor care-i aparin. Subclase n Visual FoxPro pot fi create clase derivate sau subclase pornind de la clasele de baz. Avnd o clas deja definit, putem genera, pornind de la aceast clas, o nou clas prin operaia de derivare. O clas derivat motenete automat proprietile i metodele clasei de baz, deci aceste proprieti nu mai trebuie definite n clasa derivat. In noua clas se vor include numai caracteristici noi, cele vechi considerndu-se implicit. Tipuri de clase i obiecte Visual FoxPro conine 28 de clase de baz predefinite cu ajutorul crora putem crea noi obiecte. Aceste clase se mpart la rndul lor n dou subcategorii: 1 - clase Container 2 - clase Control REZUMAT Implementarea structurilor de control n Visual FoxPro Limbajul Visual FoxPro conine comenzi pentru implementarea celor trei tipuri de structuri de control: secveniale, alternative i repetitive, cu urmtoarele precizri: - Comenzile pentru implementarea structurilor de control alternative i repetitive nu se pot folosi n mod interactiv numai la nivel de program. - Limbajul nu conine instruciuni de salt condiionat de tip GOTO n capitolul de fa sunt prezentate comenzile pentru implementarea structurilor alternative i repetitive, respectiv: IF, DO CASE, DO WHILE, FOR i SCAN. Comanda IF Aceast comand permite execuia unei secvene de instruciuni pe baza evalurii unei expresii logice. La ntlnirea acestei comenzi se evalueaz <expL> i dac este adevrat se execut <secv-comenzi1>, dup care se trece la prima comand dup ENDIF. Dac condiia din <expL> nu este adevrat se execut <secv-comenzi2>, dup care se trece la prima comand dup ENDIF. In acest caz, dac opiunea ELSE lipsete, se trece direct la prima comand dup ENDIF. Comanda DO CASE n scopul creterii flexibilitii programului, limbajul Visual FoxPro permite implementarea structurilor de control generalizate sau multiple, fr folosirea de instruciuni IF incluse una n alta, folosind comanda DO CASE. Comanda DO WHILE Astfel, dac comanda IF execut secvena de instruciuni dac expresia

62

logic este adevrat, comanda DO WHILE permite execuia repetat a secvenei de instruciuni ct timp expresia logic din cadrul comenzii este adevrat. Ea permite astfel implementarea structurilor de control repetitive cu condiionare anterioar. Execuia comenzii ncepe cu evaluarea expresiei logice. Astfel, dac expresia logic este adevrat se execut secvena de comenzi pn la ENDDO, dup care se revine la evaluarea expresiei logice. Dac expresia logic este fals se trece la prima comand dup ENDDO. Comanda FOR Aceast comand se afl ntr-o relaie foarte strns cu comanda DO WHILE, fiind o variant asemntoare a comenzii DO WHILE. Ea permite execuia repetat a unei secvene de comenzi de un anumit numr de ori fiind utilizat pentru implementarea structurilor de control repetitive cu indici. Comanda SCAN Aceast comand reprezint o alt modalitate de ciclare specializat, fiind proiectat pentru execuia de secvene de comenzi prin care se prelucreaz nregistrrile unui tabel din baza de date. Execuia comenzii determin parcurgerea tabelului curent i efectuarea pentru fiecare nregistrare selectat din tabel a secvenei de comenzi specificate n comand. Comenzi de intrare/ieire Aceste comenzi se pot mpri n dou categorii i anume: - Comenzi de intrare/ieire n mod linie. - Comenzi de intrare/ieire n mod ecran. Comenzile de intrare/ieire n mod linie permit afiarea, respectiv introducerea datelor din poziia curent a cursorului. Acestea sunt: ACCEPT, INPUT, WAIT (de intrare), ?,??,???, DISPLAY, LIST (de ieire). Obiecte i clase n Visual FoxPro Caracteristici generale Un obiect reprezint un ansamblu de date mpreun cu procedurile de prelucrare a acestora. Procedurile sau comportamentul, poart denumirea de metode, iar datele de atribute sau proprieti. O proprietate este, prin urmare, un atribut al unui obiect (cmp, fereastr, control) pe care l folosim pentru a defini aspectul sau comportamentul obiectului respectiv. Aa cum rezult din exemplul dat, proprietile unui obiect, respectiv a unui buton, identific atributele fizice ale acestuia (lungime, nlime etc.). ns, obiectele nu sunt caracterizate numai prin atributele fizice, ci ele conin ceva n plus fa de aceste proprieti, respectiv metodele. Metodele sunt aciuni pe care le poate executa un obiect i includ cod (instruciuni) care indic modul de comportament al obiectului respectiv. Codul aferent obiectelor, se definete de ctre utilizator, n funcie de cerinele programului i se execut n momentul apelrii metodei respective. Unele dintre metode, posed cod ncorporat, care indic un anumit comportament al obiectului. Fiecare obiect n Visual FoxPro, recunoate i rspunde la anumite evenimente. Acestea pot fi evenimente externe, iniiate de utilizator, sau interne, iniiale de ctre sistemul Visual FoxPro.

63

TEME CONTROL Bibliografie

Evenimentele externe sunt generate de anumite aciuni cum ar fi: efectuarea unui clic cu mouse-ul pe un obiect, apsarea unei taste etc. Setul de evenimente aferent unui tip de obiect este stabilit anterior. Prin urmare, utilizatorul nu poate crea noi evenimente care s le asocieze unui obiect. Spre deosebire de evenimente, setul de metode, este infinit extensibil. Ele exist independent de evenimente i se execut n momentul n care sunt apelate. Clase O clas conine informaii despre felul cum arat i se comport obiectele care-i aparin. Clasa reprezint deci o noiune abstract care definete structura i comportamentul obiectelor care-i aparin. Subclase n Visual FoxPro pot fi create clase derivate sau subclase pornind de la clasele de baz. Avnd o clas deja definit, putem genera, pornind de la aceast clas, o nou clas prin operaia de derivare. O clas derivat motenete automat proprietile i metodele clasei de baz, deci aceste proprieti nu mai trebuie definite n clasa derivat Tipuri de clase i obiecte Visual FoxPro conine 28 de clase de baz predefinite cu ajutorul crora putem crea noi obiecte. Aceste clase se mpart la rndul lor n dou subcategorii: clase Container i clase Control. Se vor elabora programe de folosire a comenzilor de implementare a structurilor de control i a comenzilor de intrare/ieire; Se vor elabora programe de creare i utilizare a clasei form i a obiectelor de tip buton de comand. [Sitar_2010]

Exemple de teste gril: 1.Proprietatea CAPTION a unui buton de comand conine: a) distana fa de partea de sus a ecranului; b) textul nscris pe buton; c) valorile .T. sau .F. care indic dac obiectul este vizibil sau nu pe ecran; d) niciuna de mai sus. Rspuns: b . 2. Diferena dintre comenzile INPUT i ACCEPT este: a) nicio diferen; b) comanda ACCEPT interpreteaz tipul datelor, iar INPUT nu; c) comanda INPUT interpreteaz tipul datelor, iar ACCEPT nu. Rspuns: c .

64

MODULUL NUMRUL 7 FORMULARE N VISUAL FOXPRO


CONCEPTE DE BAZ Caracteristici generale Crearea unui nou formular Proprieti i metode ale formularelor Mediu de date ale unui formular Scrierea codului pentru evenimentele i metodele unui formular Salvarea i rularea unui formular Descrierea i utilizarea obiectelor grafice OBIECTIVE nsuirea tehnicilor de creare a unui formular Visual FoxPro i de adugare de obiecte n cadrul formularului respectiv; Cunoaterea modului de asigurare a proprietilor i metodelor unui formular; Cunoaterea principalelor evenimente la nivel de format i a modului de scriere a codului pentru evenimentele respective; Cunoaterea obiectivelor grafice ce pot fi ntr-un formular (proprietate, evenimente): butoane radio, liste, casete de validare, casete de text, butoane de comand. RECOMANDRI n vederea cunoaterii modului de creare a unui formular, se PRIVIND recomand efectuarea de exerciii practice, folosind n acest scop STUDIUL Form Wizard i apoi Form Designer; Dup crearea formularului se vor studia proprietile aferente unui formular, urmrind aceste proprieti n fereastra Properties; Se vor introduce apoi n formularul creat o serie de obiecte de pe bara Form Controls i apoi se vor defini proprietile acestora din fereastra Properties; n etapa urmtoare se vor defini evenimentele aferente formularului i obiectelor incluse n formular i se va scrie secvena de comenzi pentru fiecare eveniment n funcie de programul pentru care s-a proiectat formularul; n ultima etap se salveaz i se lanseaz formularul n execuie. REZULTATE La ncheierea studiului acestui modul, utilizatorul trebuie s fie n ATEPTATE msur s creeze un formular cu diferite obiecte ncorporate n formular i s defineasc proprietile i evenimentele aferente formularului i obiectelor aferente. Formularul astfel creat s fie testat pe calculator i s permit executarea corect a programului pentru care a fost proiectat.

65

UNITATEA 1. CREAREA FORMULARELOR N VISUAL FOXPRO I ADUGAREA OBIECTELOR LA FORMUALR OBIECTIVE nsuirea modulelor de creare a unui formular: prin comenzi, cu utilitarele Form Designer sau Form Wizard; Cunoaterea tehnicilor de adugare a obiectelor n cadrul unui formular folosind bara de instrumente Form Controls i aplicaia Form Builder. FORM DESIGNER, FORM WIZARD, FORM BUILDER, FORM CONTROLS.

CUVINTE CHEIE

Citirea datelor; Formulare n versiunile precedente ale SGBD FoxPro, termenul utilizat pentru elementul de interfa la introducerea de date era cel de "ecran de introducere" sau de machet de introducere" construit i afiat pe ecran, sau n cadrul unei ferestre, prin intermediul unor comenzi specifice sau cu generatorul de ecrane. Odat cu apariia ns a limbajelor orientate pe obiect, ecranele de introducere date au fost nlocuite cu formulare. Formularul poate fi considerat ca o fereastr avnd toate atributele unei ferestre sub Windows: bara de titlu, caseta meniului de control, butoane de minimizare, maximizare, nchidere. In plus, acestea reprezint n Visual FoxPro un obiect avnd ca toate celelalte obiecte, proprieti, metode i evenimente asociate. Acestea definesc aspectul exterior al formularelor i determin n acelai timp comportamentul acestuia n diverse situaii. Dintre proprietile unui formular putem meniona: nume, dimensiuni, culoare fond, culoare scris. Pe lng proprieti o formular mai are ataate secvene de cod (metode) executabile n anumite situaii. Modelul programrii orientat pe obiecte, implementat n Visual FoxPro, este i unul condus de evenimente. Ca urmare, la specificarea unei secvene de cod ataat unui eveniment, acesta se execut automat ori de cte ori se produce evenimentul respectiv (de exemplu apsarea unei taste, execuia unui clic cu mouse-ul etc.) n cadrul unui formular se pot insera diferite obiecte grafice, care permit citirea i manipularea datelor de intrare. Aceste obiecte au i ele asociate anumite proprieti, metode i evenimente i permit astfel prelucrarea datelor de intrare sau afiarea unor date din tabelele bazei de date. Dup creare, formularul poate fi rulat imediat prin selectarea butonului (Run) de pe bara de instrumente standard. Crearea unui nou formular Crearea unui formular se poate realiza n unul din urmtoarele moduri: - prin intermediul comenzilor limbajului Visual FoxPro - prin intermediul utilitarului Form Designer - prin intermediul utilitarului Form Wizard n primul caz este necesar cunoaterea comenzilor de definire obiecte, clase i proprieti ale formularului i obiectelor incluse n formular ct i a comenzilor de definire a procedurilor asociate unor evenimente. Pentru a nltura inconvenientele definirii formularelor prin program, sistemul Visual FoxPro, dispune de un utilitar special cu ajutorul cruia utilizatorul poate crea mult mai

66

rapid diferite formulare numit Form Designer (constructor de formulare). Alturi de acest instrument se mai pot folosi utilitarele Formular Builder i Formular Wizard. Utilitarul Form Builder (opiunea Quik Form) a meniului Form, este utilizat pentru a popula rapid un formular cu cmpuri ale unei tabele. El nu se folosete, prin urmare, la crearea unui formular, ci numai pentru introducerea rapid a componentelor acestuia. Vom crea formularul n formula iniial cu Form Designer sau Form Wizard, adugndu-i apoi cmpurile dorite cu Form Builder. De altfel, i celelalte obiecte introduse ntr-un formular n meniul Shortcut opiunea Builder care permite specificarea rapid a caracteristicilor obiectului respectiv. Cu Form Wizard se poate crea un formular, pe etape, cu toate obiectele ncorporate, gata pentru a fi lansat n execuie i care poate fi folosit ntr-o aplicaie mai simpl . Dup creare, formularele sunt memorate n fereastra Project Manager, seciunea Documents, la pictograma cu textul Forms. Crearea unui nou formular prin utilizarea generatorului Form Designer Constructorul de formulare constituie cel mai folosit instrument de creare a unui formular, deoarece acesta ofer utilizatorului posibilitatea de a vedea aspectul formularului i a fiecrui obiect inclus n formular, pe msur ce acesta se construiete. Pe durata proiectrii formularului, acesta se poate lansa n execuie folosind butonul Run i apoi se poate reveni, din nou, n faza de creare, selectnd butonul Modify Form. Pentru crearea unui formular cu ajutorul utilitarului Formular Designer se folosesc urmtoarele variante: 1. Se selecteaz din fereastra Project Manager seciunea Documents, iconul sau pictograma cu textul Forms. In continuare, tot din cadrul ferestrei Project Manager se selecteaz butonul New sau opiunea New File din meniul Project. In ambele cazuri, pe ecran apare fereastra New Form, din care se va selecta opiunea cu acelai nume 2. Se selecteaz din meniul File, opiunea New, care determin afiarea, pe ecran, a ferestrei New. Din aceast fereastr se selecteaz butonul radio Form i apoi opiunea New File. Se introduce n fereastra de comenzi comanda: CREATE FORM <nume-formular> Crearea unui formular cu Form Wizard n cadrul unei aplicaii de tip Wizard, la crearea unui obiect aplicaia respectiv afieaz anumite ntrebri, urmnd ca pe baza rspunsului ales de proiectant s fie creat un anumit obiect. Form Wizard funcioneaz dup acelai principiu i ca atare va solicita din partea proiectantului informaii privind: tabelele utilizate, denumirea cmpurilor, modaliti de indexare, tipuri de obiecte ce urmeaz a fi incluse n formular, etc. Toate ntrebrile referitor la aceste informaii sunt concepute n cadrul a 4-6 etape dup care vom obine un formular care poate fi ulterior modificat. Pentru crearea unui formular cu Formular Wizard se parcurg urmtorii pai: - se selecteaz din fereastra Project Manager seciunea Forms i apoi butonul New care determin deschiderea ferestrei New Form din care se selecteaz butonul Form Wizard; - se selecteaz din meniul File, opiunea New care determin afiarea ferestrei New din care se selecteaz butonul radio Form i apoi butonul Wizard;

1.

67

n ambele cazuri prin selectarea butonului Form Wizard sau Wizard in al doilea caz, pe ecran se afieaz fereastra Wizard Selection cu dou opiuni: Form Wizard i One -To-Many Form Wizard. Dup selectarea tipului de formular dorit se acioneaz butonul OK iar pe ecran apare fereastra Form Wizard. Prin intermediul celor dou opiuni se indic tipul de formular ce poate fi creat cu Form Wizard i anume: a - Form Wizard; creeaz un formular simplu bazat pe un singur tabel n care se pot efectua operaii de afiare nregistrri, de modificare, adugare i tergere, prin intermediul unui set de butoane de comand . b - One-to-Many; creeaz un formular unu la mai multe, care se bazeaz pe dou tabele ntre care se definete o relaie de tip 1-n. Ca urmare se pot afia nregistrri din tabelul printe i cele aferente din tabelul fiu. Adugarea obiectelor la un formular Pentru ca un formular s poat fi rulat i s execute o anumit prelucrare (ncrcarea unui tabel cu date sau actualizarea unui tabel etc.) acesta trebuie s conin diferite controale sau obiecte de control cu proprietile configurate i codul surs asociat evenimentelor. La un formular se pot aduga: controale, containere, clase definite de utilizator i obiecte OLE. Containerele sunt obiecte care pot conine alte containere sau controale. Astfel, un formular ca i container poate conine diferite controale (butoane de comand, casete de validare etc.) Controalele pot face parte din containere, dar nu pot conine alte obiecte, adic nu pot fi printe pentru alte obiecte. Pentru a aduga un control ntr-un formular se folosete bara cu instrumente Form Controls. Dac acesta nu este deschis i afiat pe ecran, pentru a o deschide se selecteaz din meniul View opiunea Form Controls Toolbar. Aceast bar conine toate obiectele ce pot fi adugate n cadrul unui formular sub forma unor pictograme. Pentru a aduga orice control ntr-un formular se execut un clic pe pictograma acestuia de pe bara Form Controls, dup care se execut un clic pe formular n locul unde dorim s fie plasat obiectul respectiv. UNITATEA 2. PROPRIETI I METODE ALE FORMULARELOR OBIECTIVE cunoaterea principalelor proprieti i evenimente aferente unui formular i a modului de configurare a acestuia; cunoaterea structurii ferestrei PROPERTIES i a modului de selectare a proprietilor i metodelor aferente formularului i obiectelor incluse n formular; cunoaterea modului de scriere a codului (secvene de comenzi) pentru evenimentele unui formular; fereastra PROPERTIES, caseta OBJECT, pagina METODS, evenimentele INIT, LOAD, SHOW, CLICK.

CUVINTE CHEIE

Proprieti i metode ale formularelor; Fereastra Properties Fereastra Properties este comun formularului i tuturor obiectelor din formular creat cu Visual FoxPro. Cu ajutorul acestei ferestre vizualizm i configurm proprietile i metodele formularului i ale obiectelor din formular pe toat durata proiectrii acestuia. La deschiderea unui formular, fereastra Properties va afia proprietile i metode

68

aferente formularului. Pentru a edita sau modifica aceste proprieti ale formularului sau ale unui alt obiect inclus n formular se va selecta obiectul din caseta Object. Componentele ferestrei Properties Fereastra Properties conine urmtoarele componente: 1. Zona pentru proprieti i metode apare n partea stng de jos a ferestrei i conine proprietile i metodele pentru obiectul curent selectat (lista Properties and Events). 2. Zona de valori apare n partea dreapt de jos a ferestrei i conine valorile aferente proprietilor unui obiect. 3. Taburi (pagini)apar n partea superioar a ferestrei, n numr de cinci i permit vizualizarea proprietilor i metodelor obiectului curent selectat astfel: dac se selecteaz tabul All se afieaz toate proprietile i metodele obiectului curent, iar dac este selectat unul din celelalte taburi, se afieaz doar un subset de proprieti sau metode pentru obiectul curent, n funcie de denumirea tabului. 4. Caseta de configurare proprieti (Property setting)aceast component, numit i cutie de editare se afl deasupra zonei dreptunghiulare care conine proprietile i metodele pentru obiectul curent selectat i afieaz valoarea proprietii selectate. 5. Caseta de obiecte (Object) conine denumirea obiectului curent selectat, cu care lucrm la un moment dat. Prin execuia unui clic pe pictograma aferent formularului se afieaz ntr-o list toate obiectele incluse n formular sub forma unei ierarhii specifice platformei Windows. Configurarea proprietilor i metodelor unui formular n timpul proiectrii Fereastra Properties afieaz la deschidere proprietile i metodele obiectului curent selectat. Pentru a edita proprietile sau metodele altui obiect, mai nti se va selecta obiectul respectiv n caseta Object. In cadrul ferestrei Properties se va selecta apoi proprietatea sau metoda ce urmeaz a fi modificat din lista Property and Events i se tasteaz noua valoare n cutia de editare Property Setting n cazul unei proprieti. Dac modificm codul unei metode dup selectarea metodei se execut un dublu clic pe metoda respectiv avnd ca efect afiarea ferestrei aferent metodei n care se poate modifica codul existent sau introduce alt cod, dup care fereastra se nchide reveninduse n fereastra Properties. Fereastra aferent metodei de modificat se poate deschide i prin selectarea opiunii Code din meniul Window. Pentru a trece de la o procedur la alta, n cadrul ferestrei de editare, se pot folosi tastele PgUp sau PgDn. La selectarea i configurarea proprietilor sau metodelor unui obiect se au n vedere urmtoarele aspecte: 1. proprietile protejate la scriere (Read only) sunt scrise n zona Property and Events cu caractere italice n timp ce proprietile read-write sunt scrise cu caractere normale.valorile implicite ale proprietilor apar scrise cu litere normale (Regular) iar valorile modificate de utilizator cu litere ngroate (Bold). In cazul metodelor modificate, n dreptul acestora apare scris cu litere ngroate, expresia: [User Procedure]. 2. pentru a readuce o metod sau proprietate modificat la valoarea iniial, nainte de a aciona tasta Enter se va putea folosi opiunea Reset to Default din meniul Shortcut al obiectului respectiv.

69

4 - n cadrul ferestrei Properties putem atribui proprietilor valori rezultate n urma evalurii unor expresii sau funcii, prin introducerea, n caseta de editare, a semnului egal urmat de expresia sau funcia respectiv . Exemplu, pentru textul reprezentnd titlul unei ferestre (proprietatea Caption) putem introduce n caseta de editare expresia:= ALIAS() pentru a obine ca text numele fiierului curent selectat. Oroprietate se poate configura i n cadrul metodei aferente unui obiect. De exemplu: n metoda Init a formularului putem schimba textul formularului astfel: This. Caption=Proc1() 6 - dup definirea (modificarea) proprietilor unui formular, acestea devin efective, cu excepia cazului n care proprietatea Visible are valoarea .F. Definirea aspectului exterior al unui formular Principalele caracteristici ale unui formulae referitoare la aspectul exterior sunt cele privind poziia formularului pe ecran i dimensiunea acestuia. Definirea dimensiunii i poziiei unui formular se realizeaz prin intermediul urmtoarelor proprieti: 1.Top i Left - permit definirea poziiei pentru colul din stnga sus al ferestrei formularului. In mod implicit, Visual FoxPro plaseaz un formular nou n colul din stnga sus al ferestrei constructorului de formulare (Top=0, Left=0) 2.AutoCenter - determin poziionarea formularului n centrul ferestrei constructorului de formulare, dac proprietatea AutoCenter are valoarea .T., fr a ine cont de valorile proprietilor Left i Top. 3.Hight i Width - definesc dimensiunea unui formular, respectiv nlimea i lungimea acesteia, exprimate n pixeli. 4.AlwayOnTop - indic dac un formular este afiat deasupra celorlalte ferestre deschise. Valoarea implicit este .F. Alte proprieti referitoare la aspectul unui formular sunt urmtoarele: 1 - Caption - reprezint titlul formularului sau textul care apare pe bara de titlu i care implicit are aceeai valoare cu numele formularului definit prin proprietatea Name. 2 - Bordstyle - definete chenarul unui formular prin intermediul a patru valori astfel: 3 - BackColor i ForeColor - definesc culoarea pentru fond n cadrul formularului (BackColor) i respectiv pentru scris (ForeColor). Aceste proprieti pot fi modificate prin selectarea culorii dorite din fereastra Color Palette sau din fereastra Color care se afieaz pe ecran prin execuia unui dublu clic pe proprietatea BackColor sau ForeColor din fereastra Properties. Configurarea metodelor i proprietilor unui formular prin comenzi Pentru a configura proprietile sau metodele unui obiect prin comenzi, acesta trebuie mai nti identificat n raport cu iararhia containerului din care face parte. Acest lucru se realizeaz n cazul formularului, prin intermediul unei variabile, la care se va face referin pentru configurarea unei proprieti. Variabila obiect pentru formular este chiar numele fiierului .scx. Proprietile sau metodele pot fi configurate prin intermediul referinelor la obiect, i proprietate sau metod , separate prin punct, astfel: Container. obiect..proprietate = valoare variabil -obiect.control.metod Scrierea codului pentru evenimentele/metodele unui formular

70

Fiecare obiect se caracterizeaz prin atributele stare i comportament. Starea unui obiect se definete prin proprietile sale, iar comportamentul prin metodele pe care pe poate executa i evenimentele la care poate rspunde. n condiiile programrii orientate pe obiect i condus de evenimente, utilizatorul este cel care controleaz programul. Prin urmare, programul ateapt ca utilizatorul s fac ceva (apsarea unei taste, execuia unui clic cu mouse-ul) urmnd ca programul s rspund la evenimentul respectiv prin declanarea unor operaii de prelucrare. La apariia unui eveniment programul va executa codul metodei asociate evenimentului respectiv. Pentru fiecare obiect inclus ntr-un formular ct i pentru formularul respectiv, metodele i evenimentele aferente apar n fereastra Properties, pagina Methods. Pentru a ataa cod n cadrul unei metode aferent unui obiect, se selecteaz mai nti obiectul, iar n pagina Methods din fereastra Properties se vor afia toate metodele i secvenele asociate obiectului respectiv, fiecare cu valoarea [Default], ceea ce nseamn c fereastra de cod a metodei respective este vid . Pentru a deschide fereastra de cod a obiectului selectat se execut dublu clic pe metoda respectiv sau se selecteaz opiunea Code din meniul shortcut al formularului sau din submeniul View. Fereastra aferent codului unei metode are urmtoarea structur : n caseta Object va apare obiectul selectat. Prin acionarea butonului din dreapta casetei se va deschide o list derulant coninnd toate obiectele incluse n formular. n partea dreapt a ferestrei apare caseta Procedure care conine metoda pentru care se va scrie cod i n acest caz prin acionarea butonului cu sgeat n jos apar metodele i evenimentele asociate obiectului selectat. Principalele evenimente i metode la nivel de formular Pentru un formular exist anumite evenimente la care acesta poate rspunde i pentru care utilizatorul trebuie s introduc comenzi (secvene de cod) n cadrul metodelor asociate evenimentelor respective. Alegerea metodelor n care se va introduce cod, se face n funcie de tipul de obiect i de momentul n care se lanseaz (apeleaz ) metoda respectiv i presupune cunoaterea de ctre proiectant a evenimentelor la care formularul i obiectele incluse n formular poate rspunde. Principalele metode asociate comportamentului unui formular i obiectelor incluse n formular sunt urmtoarele: 1) Init; aceast metod este apelat la crearea formularului avnd rolul de iniializare a acesteia. In acelai timp fiecare obiect inclus n formular poate avea metoda sa Init proprie. Aceasta este apelat atunci cnd se creeaz obiectul la rularea formularului. 2) Load; este apelat imediat dup crearea unui formular, dar naintea metodei Init i altor metode. Ca urmare, n cadrul acestei metode se pot include comenzi de deschidere a bazei de date, a tabelelor i de iniializare a unor variabile de lucru. 3) Unload; este apelat la terminarea programului i permite transmiterea parametrilor din cadrul formularului ctre programul apelant prin comanda RETURN cu sintaxa RETURN <variabil >. 4) Show; permite afiarea pe ecran a unuei formular anterior creat. Dac pe ecran se afieaz mai multe formulare unul singur este activ , n sensul c reprezint pentru utilizator inta intrrilor. 5) GotFocus; trecerea controlului de la un formular la altul sau n cadrul aceluiai formular de la un obiect la altul, este controlat de evenimentele GotFocus (preluare control) i respectiv LostFocus (pierdere control).

71

6) SetFocus; permite transferul controlului de la un formular la altul sau de la un obiect la altul, n cadrul aceluiai formular, atunci cnd trecerea are loc prin comenzi introduse n cadrul altor metode. 7) Valid; este una din metodele frecvent utilizate i permite execuia unei secvene de comenzi la trecerea de la un obiect la altul n cadrul formularului. Metoda este deci apelat la prsirea unui obiect si n funcie de valoarea returnat de expresie logic din cadrul comenzilor din Valid, se permite sau nu trecerea la obiectul urmtor. 8) Refresh; conine comenzi pentru remprosptarea valorii obiectelor din cadrul formularului ca urmare a unor modificri efectuate cu aceste valori. Exemplu: la calculul stocului ca urmare a unor operaii de intrare/ieire n metoda Valid a cmpurilor Intrri i respectiv Ieiri se va introduce comanda. Refresh iar n cadrul metodei Refresh aferenta cmpului Stoc vom introduce comanda Stoc=Stoc+IntrriIeiri 9) Release; se apeleaz la terminarea programului i are rolul de a descrca (terge) formularul din memorie. Astfel dac avem n cadrul formularului un buton de ieire, n metoda Click aferent ,vom apela metoda Release, eventual dup nchiderea bazei de date, astfel: CLOSE DATABASES THISFORM.RELEASE 10) Click; este de asemenea una dintre metodele cel mai frecvent utilizate, fiind asociat att butoanelor de comand ct i cmpurilor de preluare date din cadrul unui formular. De exemplu la execuia unui clic pe un buton de ieire se va introduce n metoda Click aferent butonului comenzile de afiare mesaj terminare program i comanda de tergere a formularului (Release). Salvarea i rularea unui formular Dup construirea unui formular acesta se salveaz ca orice fiier, prin selectarea opiunii SAVE din File prin care se afieaz fereastra Save As n care se introduce numele fiierului reprezintnd formularul. De asemenea pentru salvarea formularului se poate selecta iconul aferent de pe bara de instrumente standard. Dac se nchide un formular nainte de salvare se va afia o caset de dialog n care se cere confirmarea modificrilor dup care pe ecran apare fereastra Save As. Dac se dorete salvarea formularului ca definiie de clas se va selecta opiunea Save as Class din File. Pentru lansarea n execuie a unui formular se pot folosi urmtoarele procedee: 1. n fereastra Project Manager se selecteaz pagina Documents i apoi opiunea Forms. Din cadrul seciunii respective se selecteaz denumirea formularului i se acioneaz butonul Run. 2. din submeniul Form (care apare la afiarea unui formular pe ecran) se selecteaz opiunea Run Form (CTRL+E). 3. de pe bara de instrumente standard se selecteaz pictograma de lansare formular (!) sau se tasteaz comanda: DO FORM <nume-formular> Pentru nchiderea formularului activ se pot folosi urmtoarele variante: se execut un clic pe butonul de nchidere al formularului; se selecteaz opiunea CLOSE din meniul de control al formularului; se introduce comanda RELEASE n fereastra de comenzi sau n program,

72

codul metodei sau evenimentului Click a unui buton de ieire astfel: Thisform.Release

UNITATEA 3. DESCRIEREA I UTILIZAREA OBIECTELOR GRAFICE OBIECTIVE Cunoaterea principalelor obiecte grafice folosite n cadrul unui formular i legtura lor cu sursa de date; Cunoaterea proprietilor i evenimentelor pentru principalele tipuri de obiecte ale unui formular i a modului de configurare a acestora. OPTION GRUP, LIST BOX, DROP DOWN, CHECK BOX, COMBO BOX, TEXT BOX, COMMAND BUTTON.

CUVINTE CHEIE

Descrierea i utilizarea obiectelor grafice Obiectele grafice folosite n Visual Fox pot fi clasificate dup mai multe criterii: 1- dup posibilitatea de a include alte obiecte: - obiecte container, - obiecte simple. 2- dup faptul dac sunt sau nu vizibile pe ecran la execuie: - obiecte vizuale, - obiecte non-vizuale. 3- dup posibilitatea de a avea legtur cu datele de prelucrat: - obiecte legate de date, - obiecte nelegate de date. 4- dup modul de utilizare: - formuri, - controale. Aceste clasificri de ordin general sunt aplicabile oricror obiecte grafice i implicit claselor din care fac parte. Pornind de la faptul c Visual Fox este un sistem de gestiune a datelor, un rol important l are clasificarea n obiecte legate sau nelegate de date. Prin acionarea asupra unui obiect legat de date, valoarea pe care acest tip de obiect o memoreaz este stocat n sursa de date (tabel, variabil de memorie, etc.). Legarea unui obiect de acest tip cu sursa de date se face setnd proprietatea: Control Source sau Record Source. Aceast proprietate memoreaz sursa de date la care este legat un obiect. Astfel, dac avem pe ecran un obiect de tip TextBox iar proprietatea ControlSource are valoarea Angajat. Salar, atunci valoarea afiat pe ecran pentru obiectul TextBox (cmp editare) va fi valoarea cmpului Salar din tabela Angajat. Orice modificare a valorii obiectului va determina automat i modificarea acesteia din sursa de date. Valoarea proprietii ControlSource poate fi i numele unei variabile de memorie, a crei valoare se va afia n cmpul de editare a obiectului. n acelai timp valoarea respectiv din sursa de date este memorat ntr-o zon aferent unei proprieti a obiectului numit Value. Aceasta se poate numi valoarea obiectului, ea fiind valoarea pe care obiectul o nmagazineaz. Atribuind o valoare acestei proprieti vom putea modifica valoarea cmpului din sursa de date. Dac acionm asupra unui obiect care nu este legat cu o surs de date, proprietatea Value este singura care se schimb. Dup execuia formularului din care face parte obiectul, valoarea respectiv se pierde. Legtura dintre obiectul i sursa de date se face n funcie de tipul de obiect. Ca urmare tipul de date din surs depinde de tipul de

73

obiect. Astfel un obiect de tip CheckBox nu poate fi pus n legtur cu o surs de date de tip caracter deoarece el accept valori logice. Punerea la dispoziia utilizatorului a unui set de opiuni predefinite n cazul introducerii de date ntr-o tabel printr-un formular, exist posibilitatea selectrii, pentru anumite cmpuri a valorii prestabilite a acestora dintr-o tabel de tip nomenclator. Astfel de date se pot referi la: nume client, adres client, adres furnizor etc. Aceste date, care sunt finite, deoarece i agenii comerciali ai unei firme sunt n numr finit, sunt memorate ntr-o tabel separat . La ncrcarea unei tabele care necesit astfel de date, n loc s introducem aceste date manual pentru fiecare agent comercial, vom folosi un obiect de tip ComboBox care conine anumite cmpuri din tabela secundar . Prin selectarea unor cmpuri din acest obiect, datele aferente sunt introduse automat n tabela care se ncarc. In felul acesta se ofer utilizatorului un set de opiuni predeterminate. Acest mod de lucru asigur un control automat al datelor de intrare, n sensul c n baza de date vor fi introduse numai date valide. Pentru acest tip de introducere de date, putem folosi urmtoarele obiecte: 1. Grup de butoane de opiuni (Option Group) 2. Casete cu list i liste derulante (ListBox, DropDown ListBox) 3. Casete de validare (CheckBox) Utilizarea grupurilor de butoane de opiuni (Option Group) Grupurile de butoane de opiuni, reprezint obiecte de tip container i conin butoane de opiuni sau butoane radio. Ele permit utilizatorului alegerea unei opiuni din mai multe variante posibile i nu introducere de date. Astfel, putem folosi un grup de butoane pentru a specifica modul de afiare a datelor unor prelucrri (la imprimant, pe ecran, ntr-un fiier) sau pentru a selecta anumite nregistrri dintr-un tabel (prima, ultima, urmtoarea, precedenta). Un grup de butoane de opiuni, se reprezint pe ecran sub forma unui dreptunghi care conine dou sau mai multe cerculee urmate fiecare de cte un text. Fiecare cercule poate conine punct sau spaiu n funcie de faptul dac butonul a fost sau nu selectat. Grupul de butoane de opiuni poate apare i sub forma unui grup de butoane de comand textul cu numele butonului fiind afiat pe butonul respectiv. Cea mai important dintre proprieti este ButtonCount, care se definete nainte de a eticheta butoanele individuale din cadrul grupului i reprezint numrul de butoane din grup. Prin modificarea acestei proprieti utilizatorul poate include n grup numrul de butoane dorit. O alt proprietate important este Value, care indic la nivelul grupului de butoane, numrul de ordine al butonului selectat. La afiarea pe ecran a grupului de butoane, dac proprietatea Value are valoarea 1, atunci primul buton apare selectat, dac are valoarea 2, al doilea buton apare selectat, etc. Proprietatea Value la nivelul unui buton, dac are valoarea 0 indic buton neselectat, iar 1 sau alt valoare indic buton selectat. Fiecare buton din grup poate avea una din cele dou valori. La rularea programului, n momentul selectrii unui buton celelalte se deselecteaz automat. O alt proprietate este Control Source prin care se face legtura cu o surs de date (cmp sau variabil ). La nivel de grup, cmpul sau variabila va conine fie numrul de

74

ordine al butonului selectat fie prompterul acestuia (textul aferent butonului selectat) n funcie de tipul cmpului sau variabilei. Textul aferent fiecrui buton din grupul de butoane este memorat de proprietatea Caption. Utilizarea casetelor de validare (CheckBox) Aceste obiecte se folosesc pentru a specifica o stare cum ar fi: adevrat sau fals, activat sau fals, activat sau dezactivat, deschis sau nchis, fiind reprezentate pe ecran printr-o caset care poate conine un simbol de bifare sau spaiu, n funcie de selectarea sau nu a obiectului, urmate de un text. n cadrul unui form putem defini mai multe obiecte de acest tip din care utilizatorul poate selecta la un moment dat unul, mai multe, toate sau niciunul. Atunci cnd utilizatorul selecteaz o caset de validare n interior apare semnul de bifare. Ca i n cazul butoanelor de opiuni, casetele de validare pot apare n form grafic, respectiv sub form de butoane avnd afiat pe buton titlul sau o imagine, prin setarea proprietii Style. Utilizarea casetelor cu list i list derulant (List Box i Dropdown ListBox) Casetele cu list (ListBox) i cele cu list derulant (Dropdown ListBox) conin elemente de un anumit tip, afiate parial sau total pe ecran, ntr-un dreptunghi. ntr-o caset cu list (ListBox) sunt vizibile toate sau o parte din elementele listei, n timp ce ntr-o list derulant (Dropdown List), n starea neactivat , este vizibil un singur element, cel curent selectat. Prin execuia unui clic pe butonul cu sgeat n jos din dreapta casetei, se afieaz o list derulant , cu toate elementele casetei. Lista derulant sau expandabil reprezint un obiect ComboBox i este de dou feluri n funcie de proprietatea Style a obiectului: - cu posibilitatea de completarea manual a elementului de selectat. Aceasta permite pe lng selectarea unui anumit element din list dup expandare, introducerea manual, prin tastare n cadrul casetei, n locul elementului curent selectat a valorii noului element care devine curent selectat (proprietatea Style=0 Dropdown Combo). - cu selectarea elementului dorit din lista expandat , fr posibilitatea de a introduce date. (Style=2 Dropdown ListBox). Casetele cu list (ListBox) se utilizeaz n cazul n care exist spaiu suficient pe form i dorim s mrim perspectiva utilizatorului asupra datelor din care trebuie s aleag, n caz contrar, pentru a face economie de spaiu se va folosi o list derulant (Dropdown ListBox). Caracteristica principal a celor dou tipuri de liste const n faptul c ele ofer utilizatorului un set de opiuni predefinite, din care acesta poate selecta opiunea sau opiunile dorite. n acest fel se simplific n mod considerabil proceduta de introducere date la ncrcarea tabelelor din baza de date, prin faptul c utilizatorul selecteaz din list datele necesare, n loc s introduc manual fiecare valoare. Introducerea manual a datelor, pe lng faptul c necesit timp, mrete probabilitatea de introducere a unor date eronate. Introducerea datelor ce nu pot fi predeterminate n cazul n care utilizatorul nu poate anticipa valorile ce urmeaz a fi preluate n cadrul unui obiect de control se pot folosi urmtoarele controale: casete de text, casete de editare, casete combinate.

75

Utilizarea casetelor de introducere text (TextBox) Casetele de text, reprezint unul din cele mai importante obiecte de interfa utilizate n cadrul programelor de introducere date, deoarece permit preluarea oricrui tip de date cu excepia celor de tip Memo i General. Prin intermediul lor utilizatorul poate aduga sau modifica datele unor cmpuri din nregistrrile unui tabel. Valoarea afiat n caset este stocat n variabila sau cmpul asociat casetei definit prin proprietatea Control Source, ct i n zona aferent proprietii Value aferent casetei. Crearea unei casete de text Crearea acestui obiect se face prin selectarea butonului aferent de pe bara cu instrumente standard i trasarea cu mouse-ul a zonei ocupate de obiect pe suprafaa formularului. Dup definirea obiectului se seteaz proprietile acestuia i se definete coninutul metodelor asociate evenimentelor pentru caseta de text. O modalitate mai simpl de creare i configurare a proprietilor unei casete de text o reprezint utilizarea instrumentului TextBox Builder. Lansarea acestuia se poate face prin selectarea de pe bara de instrumente standard a pictogramei aferente sau prin selectarea opiunii Builder din meniul Shortcut al obiectului. Preluarea datelor cuprinse ntr-un interval dat (casete cu butoane de incrementare-decrementare - Spinnere) Prin utilizarea acestui obiect, utilizatorul are posibilitatea controlului asupra datelor introduse n prelucrare, n sensul ncadrrii lor ntr-un anumit interval. Acest obiect se folosete, n special, n cazul datelor numerice. Utilizatorul poate alege valoarea de introdus, fie prin acionarea unor butoane, fie prin tastarea valorii datei respective. Obiectul de tip Spinner apare ca i un cmp de editare cu dou butoane, unul de incrementare, altul de decrementare, plasate n partea dreapt a cmpului de editare (casetei). Prin acionarea butonului de incrementare sau decrementare, cu ajutorul mouse-ului, are loc creterea sau descreterea valorii din cmpul de editare, cu o valoare fix stabilit de utilizator. Valoarea minim i respectiv maxim a cmpului de editare ct i cea cu care se modific cele dou valori se stabilesc la proiectarea formului care conine obiectul de tip Spinner. Acest obiect se poate utiliza pentru introducerea de date ntr-un cmp din cadrul unei tabele, sau ar putea reprezenta valoarea indicatorului de nregistrri dintr-o tabel, n vederea poziionrii pe nregistrarea respectiv, pentru modificare sau tergere. Butoane de comand (Command Button) Butoanele de comand constituie unul dintre cele mai frecvent utilizate obiecte de interfa care apar n cadrul unui form. Ele se afieaz pe ecran sub forma unui dreptunghi tridimensional, coninnd n interiorul su un text sau o imagine. Textul scris pe buton se definete prin proprietatea Caption ca la orice obiect de control, iar imaginea prin proprietatea Picture i reprezint un fiier .BMP sau .ICO. n cadrul unui formular se pot defini dou tipuri de butoane: simple i implicite. La nivelul unui formular se poate defini un singur buton implicit i unul sau mai multe butoane simple. Butonul implicit este activat automat la apsarea tastei Enter sau spaiu, indiferent de poziia cursorului. Pentru a defini un buton de tip implicit va trebui ca proprietatea Default s aib valoarea adevrat (.T.). Pe ecran, un astfel de buton apare cu marginea

76

din dreapta i de jos ngroate. Prin apsarea tastei Enter se va executa automat codul din cadrul metodei asociate evenimentului Click a butonului respectiv. Selectarea unui astfel de buton se realizeaz prin execuia unui clic pe butonul respectiv. Evenimentul cel mai frecvent aferent unui astfel de control este Click Event. Ca urmare, codul pentru aciunile de executat la activarea unui buton de comand se introduc n metoda Click asociat evenimentului Click Event.
REZUMAT

Formularul poate fi considerat ca o fereastr avnd toate atributele unei ferestre sub Windows: bara de titlu, caseta meniului de control, butoane de minimizare, maximizare, nchidere. In plus, acestea reprezint n Visual FoxPro un obiect avnd ca toate celelalte obiecte, proprieti, metode i evenimente asociate. Acestea definesc aspectul exterior al formulare i determin n acelai timp comportamentul acestuia n diverse situaii. Modaliti de creare a unui formular Crearea unui formular se poate realiza n unul din urmtoarele moduri: - prin intermediul comenzilor limbajului Visual FoxPro - prin intermediul utilitarului Form Designer - prin intermediul utilitarului Form Wizard Adugarea obiectelor la un formular Pentru ca un formular s poat fi rulat i s execute o anumit prelucrare (ncrcarea unui tabel cu date sau actualizarea unui tabel etc.) acesta trebuie s conin diferite controale sau obiecte de control cu proprietile configurate i codul surs asociat evenimentelor. La un formular se pot aduga: controale, containere, clase definite de utilizator i obiecte OLE. Containerele sunt obiecte care pot conine alte containere sau controale. Astfel, un formular ca i container poate conine diferite controale (butoane de comand, casete de validare etc.) Controalele pot face parte din containere, dar nu pot conine alte obiecte, adic nu pot fi printe pentru alte obiecte. Pentru a aduga un control ntr-un formular se folosete bara cu instrumente Form Controls. Dac acesta nu este deschis i afiat pe ecran, pentru a o deschide se selecteaz din meniul View opiunea Form Controls Toolbar. Bara Form Controls, ca de altfel toate barele de instrumente, este mobil ; prin urmare ea poate fi deplasat pe ecran n locul dorit. De obicei, aceasta se plaseaz n marginea ecranului pentru a rmne liber suprafaa formularului. Prin plasarea barei pe marginea ecranului aceasta se transform ntr-o linie vertical sau orizontal, operaia de mutare fiind numit ancorare. Fereastra Properties Fereastra Properties este comun formularului i tuturor obiectelor din formular creat cu Visual FoxPro. Cu ajutorul acestei ferestre vizualizm i configurm proprietile i metodele formularului i ale obiectelor din formular pe toat durata proiectrii acestuia. La deschiderea unui formular, fereastra Properties va afia proprietile i metode aferente formularului. Pentru a edita sau modifica aceste proprieti ale formularului sau ale unui alt obiect inclus n formular se va selecta obiectul din caseta Object. Configurarea proprietilor i metodelor unui formular Fereastra Properties afieaz la deschidere proprietile i metodele obiectului curent selectat. Pentru a edita proprietile sau metodele altui obiect, mai nti se

77

va selecta obiectul respectiv n caseta Object. In cadrul ferestrei Properties se va selecta apoi proprietatea sau metoda ce urmeaz a fi modificat din lista Property and Events i se tasteaz noua valoare n cutia de editare Property Setting n cazul unei proprieti. Scrierea codului pentru evenimentele/metodele unui formular Fiecare obiect se caracterizeaz prin atributele stare i comportament. Starea unui obiect se definete prin proprietile sale, iar comportamentul prin metodele pe care pe poate executa i evenimentele la care poate rspunde. Pentru a ataa cod n cadrul unei metode aferent unui obiect, se selecteaz mai nti obiectul, iar n pagina Methods din fereastra Properties se vor afia toate metodele i secvenele asociate obiectului respectiv, fiecare cu valoarea [Default], ceea ce nseamn c fereastra de cod a metodei respective este vid. Pentru a deschide fereastra de cod a obiectului selectat se execut dublu clic pe metoda respectiv sau se selecteaz opiunea Code din meniul shortcut al formularului sau din submeniul View. Principalele evenimente i metode la nivel de formular Principalele metode asociate comportamentului unui formular i obiectelor incluse n formular sunt urmtoarele: 1. Init; aceast metod este apelat la crearea formularului avnd rolul de iniializare a acesteia. 2. Load; este apelat imediat dup crearea unui formular, dar naintea metodei Init i altor metode. 3.Unload; este apelat la terminarea programului i permite transmiterea parametrilor din cadrul formularului ctre programul apelant prin comanda RETURN. 4. Show; permite afiarea pe ecran a unui formular anterior creat . 5. GotFocus; trecerea controlului de la un formular la altul. 6. SetFocus; permite transferul controlului de la un formular la altul. 7. Valid; este una din metodele frecvent utilizate i permite execuia unei secvene de comenzi la trecerea de la un obiect la altul n cadrul formularului. 8. Refresh; conine comenzi pentru remprosptarea valorii obiectelor din cadrul formularului ca urmare a unor modificri efectuate cu aceste valori. 9. Release; se apeleaz la terminarea programului i are rolul de a descrca (terge) formularul din memorie. 10. Click; este de asemenea una dintre metodele cel mai frecvent utilizate, fiind asociat att butoanelor de comand ct i cmpurilor de preluare date din cadrul unui formular Relaionarea tabelelor din baza de date n Visual FoxPro relaiile pe care le crem ntre tabele cu ajutorul Constructorului bazei de date (Database Designer) se numesc relaii persistente. n afara acestora se pot defini i relaii temporare sau dinamice prin comenzi introduse n programele de prelucrare. Ca urmare relaiile temporare sunt disponibile numai n momentul rulrii programului n care au fost definite dup care ele nu mai exist. Tabelele ntre care se creeaz o relaie se numesc: tabel principal sau printe i respectiv tabel secundar sau fiu. ntre cele dou tabele se pot defini urmtoarele tipuri de relaii: - relaie una-la-una; prin care unei nregistrri din tabela printe i corespunde

78

TEME CONTROL

Bibliografie

o singur nregistrare n tabela fiu (copil); relaii una-la-mai-multe; prin care unei nregistrri din tabela printe i corespund mai multe nregistrri n tabela copil; - relaie mai-multe la-una; prin care pentru o nregistrare n tabela copil putem avea mai multe nregistrri n tabela printe; - relaie mai-multe-la-mai-multe; prin care unei nregistrri din tabela printe i pot corespunde mai multe nregistrri n tabela copil i invers adic unei nregistrri din tabela copil i pot corespunde mai multe nregistrri n tabela printe. Asigurarea integritii datelor din tabelele legate ntre ele prin relaii permanente Printre mecanismele care asigur integritatea bazei de date se numr i cele privind integritatea entitilor i integritatea referenial. Integritatea entitilor este implementat prin specificarea n cadrul unei tabele, a faptului c nu pot accepta valori nule cmpurile care reprezint chei primare. Integritatea referenial (referenial integrity-RI) definete un ansamblu de reguli, care permit menionarea integritii datelor din tabelele legate ntre ele, la operaiile de modificare, adugare i tergerea datelor din tabelele respective, astfel nct s nu existe nregistrri neparticipante la relaie. Implementarea acestor reguli ntre tabele se realizeaz prin intermediul unor restricii numite restricii pentru integritate referenial (RI constraints). Specificarea restriciilor de integritate referenial i generarea automat a procedurilor aferente se realizeaz prin intermediul Generatorului de Integritate Referenial (Referential Integrity Builder). Aceasta permite, de asemenea, precizarea tabelelor printe i fiu din cadrul unei relaii i a evenimentelor din sistem care impun mediului Visual FoxPro s verifice regulile definite. Se vor elabora programe de folosire a comenzilor de implementare a structurilor de control i a comenzilor de intrare/ieire; Se vor elabora programe de creare i utilizare a clasei form i a obiectelor de tip buton de comand. [Sitar_2010] -

Exemple de teste gril: 1. nchiderea formularului activ se poate realiza prin: a) clic pe butonul de nchidere al formularului; b) opiunea CLOSE din meniul de control al formularului; b) comanda RELEASE n fereastra de comenzi sau n program; c) codul THISFORM.RELEASE n evenimentul Click al unui buton; d) toate de mai sus. Rspuns: d . 2. Metoda RELEASE asociat unui formular are rolul: a) de a realiza trecerea controlului de la un formular la altul; b) de a permite afiarea pe ecran a unei formular anterior creat; c) de a descrca formularul din memorie; Rspuns: c .

79

MODULUL NUMRUL 8 RAPOARTE I MENIURI


CONCEPTE DE BAZ Raport din punct de vedere conceptual Componentele unui raport n VFP Controalele raportului Constructorul de rapoarte Gestiunea rapoartelor (creare, modificare, exploatare i tergere) Asisteni pentru gestiunea rapoartelor i utilizarea lor; Meniuri i rolul lor; Fereastra constructorului de meniuri; Opiunile posibile la generarea meniurilor i submeniurilor; Crearea i modificarea meniurilor; Exploatarea meniurilor. Familiarizarea cu semantica general legat de rapoarte. Familiarizarea cu structura rapoartelor din Visual FoxPro. Formarea deprinderilor de creare i utilizare a rapoartelor. Familiarizarea cu noiunea de meniu i elementele sale componente Crearea abilitii de creare i utilizare meniurilor n Visual FoxPro. Se vor proiecta din punct de vedere conceptual machete de rapoarte i de meniuri. Se vor studia cu atenie constructorii celor dou categorii. Se vor crea diferite rapoarte i meniuri pentru aplicaii economice. Se vor testa operaiile i opiunile referitoare la managementul celor dou categorii. Dup parcurgerea acestui modul utilizatorul trebuie s fie n msur s defineasc i foloseasc corect rapoartele i meniurile i s implementeze pe baza lor aplicaii complexe din informatica economic i de afaceri. UNITATEA 1. RAPOARTE OBIECTIVE NOIUNI CHEIE Familiarizarea cu semantica general legat de rapoarte. Familiarizarea cu structura rapoartelor din Visual FoxPro. Formarea deprinderilor de creare i utilizare a rapoartelor Raport Componentele unui raport n VFP Controalele raportului Asisteni i utilizarea lor

OBIECTIVE

RECOMANDRI PRIVIND STUDIUL

REZULTATE ATEPTATE

n literatura de specialitate exist definiii mai mult sau mai puin formalizate ale acestui obiect. Raport prezentarea informaiilor referitoare la o anumit tem. efectuat obicei ntr-o form tiprit. Programele de baze de date pot oferi funcii speciale de creare i generare de rapoarte [Microsoft99].

80

Raportul este o extragere a datelor din baza de date. El poate fi tiprit pe ecranul calculatorului, sau pe orice alt dispozitiv de ieire [Kroenke92]. Orice raport are ataate 2 fiiere. O tabel sistem special cu extensia .FRX, n care sunt memorate specificaiile raportului, adic caracteristicile raportului i elementele sale componente. Acest fiier este interpretat de un modul al SGBD pentru afiarea raportului respectiv. Pentru orice raport avem dou momente im portante: crearea machetei raportului (simplist crearea raportului); exploatarea acestei machete (vizualizarea raportului). Structura unui raport Structura rapoartelor difer n principiu, n funcie de formatul de afiare al datelor i de complexitatea acestuia. Datele pot fi afiate n raport, pe linii, pe coloane sau combinat, n funcie de domeniul pentru care se elaboreaz raportul. In ceea ce privete complexitatea rapoartelor, unele pot afia date dintr-o singur tabel, altele din mai multe tabele. De asemenea, n cadrul unui raport, datele din tabele pot fi grupate pe niveluri, conform unor criterii de grupare definite de utilizator. In acest caz, pentru fiecare nivel de grupare se pot defini nregistrri totalizatoare ( totaluri pentru anumite coloane sau cmpuri) ct i un total general, la nivelul ntregului raport. n Visual FoxPro, rapoartele reprezint un obiect de tip Report. Din acest punct de vedere, el are o structur compus din dou pri: I. Structura de date ; include datele aferente raportului i este reprezentat prin mediul de date asociat raportului (Data Environment) unde se definesc datele aferente raportului sub form de tabele. II. Structura de afiare; conine benzile sau zonele care compun raportul i obiectele incluse n raport, prin care se realizeaz legtura cu sursa de date. Crearea unui raport Elaborarea unui raport se realizeaz pe etape, astfel: 1. Conceperea proiectului de raport. 2. Definirea structurii de date, respectiv precizarea tabelei sau tabelelor din care se preiau datele de afiat. 3. Lansarea generatorului de rapoarte (Report Designer) prin care se afieaz pe ecran macheta de raport. Raportul astfel obinut este vid. Crearea unui raport se poate realiza i cu instrumentul Report Wizard. 4. Definirea sursei de date a raportului. 5. Includerea n raport a obiectelor necesare, pentru a face legtura cu sursa de date. 6. Salvarea i previzualizarea raportului. Crearea unui raport cu utilitarul Report Designer Pentru a crea un raport vid (fr nici un obiect inclus n el) se pot folosi urmtoarele variante: 1. se selecteaz din meniul File opiunea New, iar din fereastra New, butonul radio Report i apoi butonul de comand NewFile. 2. din fereastra Project Manager se selecteaz pagina Documents i apoi seciunea Reports. Se selecteaz apoi butonul New, care determin afiarea pe ecran a

81

ferestrei New Report din care se selecteaz butonul cu acelai nume. Dac vrem s crem raportul cu utilitarul Wizard se va selecta butonul Report Wizard. 3. prin utilizarea comenzii CREATE REPORT <nume-raport> Sintaxa general a comenzii CREATE REPORT este: CREATE REPORT [nume_raport | ?] [NOWAIT] [SAVE] [WINDOW Fereastr1] [IN [WINDOW] Fereastr2 | IN SCREEN Fereastra constructorului de rapoarte Ca urmare a folosirii uneia din cele 3 modaliti de lansare a constructorului de rapoarte, pe ecran se va afia fereastra constructorului de rapoarte cu titlul Report DesignerReport1 i bara cu obiecte de control (ReportControl), iar la meniul sistem se adaug submeniul Report. Suprafaa ferestrei este mprit n zone sau benzi, al cror numr depinde de complexitatea raportului. Benzile raportului difer ntre ele, att din punct de vedere al semnificaiei acestora, ct i din punct de vedere al frecvenei cu care sunt afiate datele benzii respective. Astfel, va exista o band care va conine titlul raportului i care va apare o singur dat pe prima pagin, o band cu datele raportului, care va apare de attea ori cte nregistrri se vor afia n raport, o band de sfrit de pagin, etc. n mod implicit, la afiarea ferestrei Report Designer, aceasta conine 3 benzi, cu urmtoarele denumiri i semnificaii: Page Header; conine antetul de pagin, care se va afia la nceputul fiecrei pagini din raport. In cadrul antetului de pagin se include denumirea coloanelor raportului i eventual data curent. Detail; reprezint zona principal a raportului, n care se vor afia datele aferente raportului, respectiv nregistrrile din tabela folosit ca surs de date. Fiecare nregistrare din tabel va ocupa o linie n cadrul acestei zone. Page Footer; reprezint zon de sfrit de pagin, unde se poate afia numrul de pagin. n mod suplimentar, la raport se mai pot aduga i alte benzi, ca urmare a selectrii unor opiuni din meniul Report. Aceste benzi sau zone sunt urmtoarele: Tip band Title Frecvena de afiare Mod de afiare - o singur dat pe raport, pe - prin selectarea opiunii prima pagin Title/Summary din meniul Report Column Header - o dat pe coloan - prin selectarea opiunii PageSetup din meniul File Group Header - o singur dat pe grup - prin selectarea opiunii Grouping din meniul Report Group Footer - o singur dat pe grup - prin selectarea opiunii Grouping din meniul Report Column Footer - o dat pe coloan - prin selectarea opiunii PageSetup din meniul File Summary - o dat pe raport - prin selectarea opiunii Title/Summary din meniul Report Semnificaia acestor benzi este urmtoarea:

82

1. Title/Summary; Banda Title conine titlul raportului i alte informaii suplimentare cum ar fi: sigla firmei i eventual antetul de tabel, dac acesta nu a fost inclus n antetul de pagin. Aceast band se afieaz prin selectarea opiunii Title/Summary din meniul Report. Ca efect pe ecran apare fereastra Title/Report cu cele dou opiuni: Title i Summary. Fiecare din cele dou comutatoare au asociat un alt comutator numit NewPage, la activarea cruia banda respectiv se va afia pe o pagin nou. 2. Group Header; include cmpul dup care se realizeaz gruparea datelor n raport i se afieaz o dat pentru fiecare grup. Pentru includerea benzii n raport se va selecta opiunea Data Grouping din meniul Report. Banda se poate afia numai dac s-a realizat n prealabil gruparea datelor. 3. Group Footer; include informaii referitoare la sfritul de grup, respectiv totaluri la nivel de grup i explicaiile necesare. Banda se afieaz prin selectarea opiunii Data Grouping din meniul Report. 4. Column Header; conine antetul de coloan i se poate afia numai dac raportul conine cel puin dou coloane. Setarea numrului de coloan se face prin selectarea opiunii Column Number din fereastra Page Setup, fereastr care se afieaz prin selectarea opiunii cu acelai nume din meniul File 5. Column Footer; conine informaii privind sfritul de coloan i se afieaz dup selectarea numrului de coloane (cel puin dou) din fereastra Page Setup. Proprieti ale benzilor i raportului 1. Fiecare band va afia n raportul final un numr de instane ale sale n funcie de tipul de band. 2. Fiecare zon sau band a raportului are n fereastra constructorului de rapoarte asociat o bar prin care se delimiteaz de alte zone. Fiecare bar sau zon a raportului are anumite proprieti, care pot fi modificate de utilizator. Pentru a se seta aceste proprieti se face un dublu clic pe bara delimitatoare a benzii dorite, avnd ca efect afiarea pe ecran a unei ferestre cu titlul benzii respective. 3. Toate ferestrele aferente unei benzi au aceeai structur, doar denumirea acestora difer n funcie de tipul benzii la care se refer. In cadrul ferestrei aferent unei benzi se poate seta nlimea benzii prin intermediul unui obiect de tip Spinner cu denumirea Hight sau se poate seta aceeai dimensiune pentru toate instanele unei benzi tot prin intermediul unui spinner cu numele Constant band height. 4. De asemenea, la afiarea unei instane a unei benzi se pot specifica anumite prelucrri pentru dou evenimente aferente unei instane, astfel: a) nainte de afiarea fiecrei instane a benzii se poate evalua o expresie introdus n caseta On Entry. Dac expresia este mai complex, poate fi construit i specific n fereastra Expression Build care se deschide prin selectarea butonului cu trei puncte din dreapta casetei On entry. b) dup fiecare afiare a instanei unei benzi se poate evalua o expresie introdus n caseta On exit sau n fereastra Expression Build. n afar de proprietile aferente benzilor, un rol important l au proprietile aferente raportului n ansamblul su, care se refer la: - mrimea paginii pe care se va afia raportul - orientarea paginii

83

- marginile exterioare ale paginii - limea coloanelor i spaiile dintre ele n cazul unui raport multicoloan - tipul de imprimant n cazul tipririi raportului la imprimant. Pentru a seta aceste proprieti se afieaz pe ecran fereastra Page Setup, prin selectarea opiunii cu acelai nume din meniul File Prin selectarea butonului Print Setup se afieaz pe ecran o fereastr n care se poate seta tipul de imprimant, dimensiunea hrtiei utilizate la imprimare i orientarea acesteia (Portrait sau Landscape). Adugarea de controale n cadrul unui raport Toate informaiile afiate n cadrul unui raport sunt specificate prin intermediul unor obiecte. Aceste obiecte se pot include n cadrul unui raport, prin preluarea lor din bara Report Controls, care se afieaz pe ecran odat cu lansarea constructorului de rapoarte. Bara Report Controls conine 6 tipuri de controale. De asemenea, pe bara cu instrumente se mai gsete butonul Lock care blocheaz fiecare control selectat, pentru a permite crearea automat a mai multor instane ale obiectului respectiv, ct i butonul cu sgeat nclinat spre stnga, care permite selectarea unuia sau mai multor obiecte din benzile raportului. Pentru includerea unui obiect n raport, se selecteaz obiectul dorit din bara Report Controls i se execut un click pe suprafaa raportului, unde dorim s apar obiectul respectiv. Ca efect pe ecran se afieaz: - fereastra Report Expresion; dac s-a selectat obiectul Field - fereastra Report Picture; dac s-a selectat obiectul Picture/OLE - obiectul selectat; dac s-a selectat LINE RECTANGLE, ROUNDED RECTANGLE - cursorul, dac s-a selectat obiectul Label. Dup includerea n raport a unor controale, n funcie de compelxitatea acestuia, utilizatorul poate modifica proprietile oricrui control, prin efectuarea unui dublu clic pe controlul respectiv. Aa cum rezult din structura barei Report Controls, n raport se pot include trei categorii de obiecte: - blocuri de text - cmpuri - obiecte grafice (linii, dreptunghiuri, imagini). Semnificaia acestora este asemntoare cu cea de la formulare. Crearea unui raport cu ajutorul asistenilor Folosirea utilitarului Quick Report Pentru popularea unui raport cu date luate direct din tabela definit ca surs de date a raportului, se folosete utilitarul Quick Report care este o aplicaie de tip Builder. Lansarea utilitarului se face prin selectarea opiunii Quick Report din meniul Report, dup crearea unui raport vid cu Report Designer. Prin urmare, dup afiarea pe ecran a ferestrei Report Designer, reprezentnd meniul vid, se va selecta opiunea Quick Report din meniul Report. Ca efect, pe ecran va apare fereastra Quick Report.

84

Dac n momentul lansrii utilitarului Quick Report, nu este deschis nici un tabel, care s reprezinte sursa de date a raportului ce va fi creat, pe ecran se afieaz mai nti fereastra Open, din care se va selecta tabela dorit dup care se va afia fereastra Quick Report. n funcie de opiunile selectate din aceast fereastr va fi creat un raport corespunztor. n acest scop se selecteaz mai nti din tabela care reprezint sursa de date, cmpurile care urmeaz a fi afiate n raport, prin acionarea butonului de comand Fields Ca efect pe ecran se deschide fereastra Field Picher. In cadrul acestei ferestre, se selecteaz cmpurile dorite din seciunea All Fields prin mutarea lor n seciunea Selected Fields i se acioneaz butonul OK, avnd ca rezultat revenirea n fereastra Quick Report. Dup stabilirea cmpurilor ce urmeaz a fi afiate se va stabili poziia acestora n raport, adic pe orizontal sau vertical, prin selectarea celor dou butoane aferente, din seciunea Field Layout. n fereastra Quick Report se mai gsesc trei comutatoare cu urmtoarea semnificaie: - Titles; afieaz denumirea cmpurilor n banda de antet de pagin ; - Add Alias ; adaug aliasul tabelului la denumirile cmpurilor ; - Add Table ; adaug tabelul n fereastra Data Environment. Dup selectarea acestor opiuni, prin acionarea butonului OK, are loc ieirea din fereastra Quick Report, iar pe ecran se afieaz structura noului raport care conine: - banda de antet de pagin cu denumirea cmpurilor ce vor fi afiate ; - banda Detail cu cmpurile aferente ; - banda de sfrit de pagin unde se include automat data curent i numrul de pagin. Crearea unui raport cu Report Wizard Crearea unui raport prin utilizarea utilitarului Report Wizard, presupune parcurgerea urmtoarelor etape: - se lanseaz utilitarul Report Wizard i se selecteaz apoi tipul de raport - se parcurg cei ase pai solicitai de Report Wizard pentru a ajunge la forma final a raportului. Lansarea generatorului Report Wizard Pentru lansarea generatorului Report Wizard se selecteaz din fereastra Project Manager pagina Documents i apoi butonul New. Din fereastra New Report care se afieaz pe ecran se selecteaz butonul Report Wizard care determin afiarea pe ecran a ferestrei Wizard Selection. O alt modalitate de lansare a generatorului Report Wizard const n selectarea din meniul File a opiunii New. Din fereastra New, care apare pe ecran se va selecta butonul radio Report i apoi butonul de comand Wizard, avnd ca efect afiarea pe ecran a ferestrei Wizard Selection i se urmeaz paii indicai de acesta. Mediul de date al unui raport Componenta Data Environment Datele afiate n cadrul unui raport se preiau din diferite tabele, care reprezint sursa de date a raportului. Aceste date, mpreun cu anumite variabile utilizate n raport, alctuiesc mediul de date al raportului. Acesta reprezint n Visual Foxpro un obiect

85

real, n sensul programrii orientate pe obiecte, adic are ataate anumite proprieti i metode. Mediul de date se definete n fereastra Data Environment unde se pot include tabelele i vederile necesare construirii unui raport. Afiarea ferestrei Data Environment, se poate realiza n unul din urmtoarele moduri: A. prin selectarea opiunii Data Environement din meniul View B. prin selectarea opiunii Data environment din meniul shortout al ferestrei Report Designer. C. prin selectarea pictogramei aferente ferestrei, din bara cu instrumente Report Designer. Spre deosebire de obiectele din raport, cele din fereastra Data Environement, sunt obiecte reale, n sensul c au ataate proprieti, rspund la anumite evenimente i execut secvene de cod din metodele aferente. Ca urmare, utilizatorul poate introduce cod (secvene de instruciuni) n cadrul unor metode pentru evenimentele care nsoesc datele raportului. Proprietile, metodele i evenimentele asociate mediului de date, se pot vedea n fereastra Properties afiat prin fereastra opiunii Properties din meniul shortcut al ferestrei Data Environment, sau din meniul shortcut al unei tabele din cadrul ferestrei Data Environment. De asemeni aceast component (fereastra Data Environment) realizeaz toate operaiile legate de gestiunea datelor necesare raportului astfel: - deschide tabelele aferente raportului existente n fereastra Data Environment, la lansarea n execuie a raportului; - aduce n raport datele necesare din tabele; - nchide tabelele la terminarea execuiei raportului. Pentru includerea n fereastra Data Environment a tabelelor necesare unui raport se pot folosi urmtoarele modaliti de lucru: - se face drag-drop cu tabelul dorit din fereastra Project Manager n fereastra Data Environment; - se selecteaz opiunea Add din meniul data Environment sau din meniul shortcut al ferestrei Data Environment. Ca efect pe ecran apare fereastra Add Table or View, din care se selecteaz baza de date i tabela necesar. Dup adugarea tabelelor n cadrul ferestrei Data Environment, se stabilete indexul care se acceseaz datele din tabel pentru a fi aduse n raport. In acest scop, n fereastra Proprerties se selecteaz proprietatea Order, reprezentnd ordinea de indexare, pentru tabelul respectiv i se introduce n caseta aferent un nume de index sau se alege un index din lista de indeci a tabelei. Dup indexare, n fereastra Database Designer, se poate defini o relaie temporar ntre 2 tabele prin operaia drag-drop a cheii primare, la cheia extern din tabela fiu. Sursa de date a unui raport Sursa de date a unui raport se poate defini n mai multe moduri, astfel: 1. prin includerea tabelelor necesare raportului n fereastra Data Environment; 2. prin folosirea unei fraze SELECT din SQL, inclus ntr-un program simplu, alturi de comanda de previzualizare a raportului. In fraza SELECT, se specific prin opiunea INTO CURSOR <nume_tabel>, numele unei tabele temporare care va conine datele necesare raportului,. 3. prin includerea frazei SELECT n metoda aferent environementului INIT a containerului Data Environment aferent raportului

86

4. prin definirea unui program simplu n care se introduce comenzi pentru deschiderea bazei de date, a tabelului, utilizate n raport, setarea indexului aferent tabelului surs i lansrii n execuie a raportului 5. prin includerea comenzilor de deschidere a bazei de date i tabelelor aferente raportului n metoda evenimentului clic asociat unui buton de comand de lansare n execuie a raportului. Gruparea datelor n rapoarte n practic, foarte frecvent rapoartele trebuie s conin informaii privitoare la grupe de articole din tabelele de date pentru care sunt ele elaborate, grupele respective formnduse pe anumite criterii. Fiecare criteriu de grupare este descris printr-o expresie pe care o numim expresie de grupare sau cheie de grupare; ea conine unul sau mai multe cmpuri ale tabelei de date pentru care se elaboreaz raportul. Acele instane pentru care expresia de grupare are aceeai valoare, alctuiesc un grup. Deci, ntr-un raport cu datele grupate dup o cheie de grupare, exist attea grupuri cte valori distincte are cheia de grupare respectiv. n exemplul anterior, de cate ori se schimb valoarea cheii care descrie anul se schimb grupul. Gruparea datelor se poate realiza pe un nivel sau pe mai multe nivele de grupare. In general, n Visual FoxPro numrul nivelelor de grupare nu este limitat. In cazul gruprii datelor, raportul va conine pe lng benzile care s-a vzut deja c le poate conine un raport, i benzile pentru gruparea datelor. Astfel, pentru fiecare nivel de grupare se definete o band de antet de grup i o band de picior de grup. Antetul, respectiv piciorul fiecrui grup va conine informaii introductive, respectiv informaii de sintez referitoare la grupul respectiv. Pentru gruparea datelor se selecteaz opiunea Data Grouping din meniul vertical Report sau executnd un click cu butonul din dreapta mouse apare meniul vertical contextual din care se poate selecta opiunea Data Grouping .Indiferent de modul de lansare apare chenarul corespunztor care are forma din figura alturat. Dup cum se poate constata n chenarul Data Grouping apare o list simpl cu denumirea Group expressions. n fiecare linie a listei se poate introduce cte o expresie de grupare. n cazul nostru am introdus linia de studii, secia, anul i urma s introducem grupa. Pentru modificarea acestei ordini se poate proceda cum se procedeaz n mod uzual cu schimbarea ordinii elementelor dintr-o list i anume : sau se trage (operaie de drag ) cu butonul din stnga mouse-ului apsat de butonul din stnga opiunii (cel cu sgeat dubl), n sus sau n jos mutnd opiunea, sau se execut un click cu butonul din stnga mouse-ului i se tasteaz Ctrl+PgUP pentru a muta opiunea cu o poziie n sus, respectiv Ctrel+PgDn pentru a o aduce cu o poziie n jos. Pentru introducerea expresiei de grupare se poate fie tasta direct valoarea expresiei, fie se poate executa un click pe butonul din dreapta liniei respective, operaie care declaneaz apariia ferestrei constructorului de expresii (ca n figura de mai sus) cu care se poate construi expresia de grupare. Pentru tergerea unei expresii de grupare se execut un click pe linia de ters i se execut cu click pe declanatorul Delte. Opiunea curent va fi tears, iar opiunile urmtoare vor avansa cu cte o poziie. Fiecare grup poate avea o serie de proprieti specificate prin chenarul Group properties. Selectarea butoanelor din grup are urmtoarele semnificaii:

87

Start group on new column, respectiv, Start each group on new page indic faptul c fiecare la fiecare schimbare de grup se va trece la coloan (este selectabil numai n cazul rapoartelor multicoloan), respectiv, pagin nou. Reset page number to 1 for each group specific faptul c la schimbarea grupului se trece la pagin nou i se ncepe numerotarea paginilor ncepe de la 1. Reprint group header on each page specific faptul c n situaia n care grupul va fi pe mai multe pagini, antetul grupului va fi tiprit pe toate paginile, dup antetul de pagin, nu numai pe prima pagin. Start group on new page when less than aceast opiune are un contor (spinner) cu care se poate stabili distana minim (n numr de linii) de la baza paginii la care poate ncepe antetul unui grup pe pagin. Utilizarea variabilelor n cadrul rapoartelor n unele situaii, de exemplu dac dorim calculul mediei generale pe grupe sau ani i dorim s le afim n liniile de sumar, avem nevoie de variabile. Variabilele n rapoarte se definesc astfel: Din meniul sistem selectnd opiunea Report se selecteaz din meniul vertical opiunea Variables. Apare fereastra Report variables. n aceast fereastr se definesc numele variabilelor n lista vertical Variables. Avnd n vedere c ordinea de definire a variabilelor este important, valorile acestora determinndu-se n ordinea definirii, aceast ordine se poate schimba analog ca n paragraful precedent, adic trgnd de sgeata dubl din faa numelui variabilei sau executnd un click iar apoi tastnd PgUp sau PgDn. Pentru fiecare variabil putem stabili valoarea de memorat cu opiunea Value to store sau valoarea iniial Initial value. Fiecare dintre cele dou opiuni are cte un chenar de editare unde se poate tasta numele unui cmp sau o expresie. Dac nu se dorete tastarea expresiei se poate executa click pe butonul din dreapta chenarului i se lanseaz automat chenarul constructorului de expresii cu care se poate construi expresia dorit. Asupra acestor expresii se pot executa operaii de agregare. De exemplu, se dorete calcularea mediei aritmetice mediilor studenilor unei grupe. Pentru aceasta avem un chenar cu butoane radio Calculate. Dac se pstreaz selectat butonul Nothing nseamn c n variabil se pstreaz sau respectiv variabila este iniializat cu valoarea expresiei din chenarul de tip text. Altfel se execut operaii de agregare asupra expresiei cum ar fi: numrarea, se calcularea sumei, a valorii medii, minimului, maximului, abaterii medii ptratice sau a dispersiei. Prin chenarul de selecie Release after report se poate stabili ca variabila s fie eliberat dup terminarea raportului sau ultima valoare s rmn i dup terminarea raportului. Ultima opiune este legat de iniializarea variabilei i este Reset at. Aceasta este o list derulant care poate avea diferite valori n funcie de context. Astfel avem n totdeauna End of Report, dar pot fi End of Pag, End of Column, sau End of Group. Exploatarea rapoartelor Previzualizarea se realizeaz prin selectarea opiunii Print preview din meniul File. Rezultatul este apariia imaginii tiprite i a unei care de instrumente, conform figurii de

88

mai jos, n care butoanele au urmtoarea semnificaie : treci la prima pagin, treci la pagina precedent, deplasare la o pagin dat, treci la pagina urmtoare, treci la ultima pagin nchide fereastra i tiprete. n bara de instrumente mai apare i o list deschis n care se poate preciza scala de afiare n procente. Exploatarea efectiv a machetei de raport se poate realiza : Din meniul sistem selectnd opiunea Run Report din meniul vertical Report. Prin comanda REPORT. UNITATEA 2. MENIURI OBIECTIVE NOIUNI CHEIE Familiarizarea cu noiunea de meniu i elementele sale componente Crearea abilitii de creare i utilizare meniurilor n Visual FoxPro. Meniuri i rolul lor; Fereastra constructorului de meniuri; Opiunile posibile la generarea meniurilor i submeniurilor; Crearea i modificarea meniurilor; Exploatarea meniurilor.

Meniu list de opiuni din care utilizatorul o poate selecta pe cea necesar pentru o anumit aciune, cum ar fi alegerea unei comenzi sau aplicarea unui anumit format unei poriuni de document. La mai multe programe de aplicaie, n special cele care dispun de interfa grafic, meniurile reprezint o alternativ mai uor de nvat i de folosit dect memorarea comenzilor i a utilizrii lor [Microsoft99]. Meniurile sunt de mai multe feluri. Primele meniuri, meniurile clasice, au fost utilizate n versiunile vechi de dBASE i Fox. Ele apar sub form de liste, utilizatorul putnd alege opiunea prin tastarea unui identificator (de exemplu numrul opiunii n list). O aplicaie cu meniurile bine proiectate se nelege mult mai uor de ctre beneficiarii acesteia. De regul principalele funcii ale unei aplicaii sunt incluse n meniu. Astfel, de exemplu, n VisualFox 8.0 comanda Browse apare ca opiune n meniul vertical View. n acelai timp alte opiuni cum ar fi Insert nu apar n nici un meniu sau submeniu. Din cele de mai sus se poate observa c meniurile sunt n principal de dou tipuri: Meniuri orizontale (cum este n figura de mai sus meniul principal al Visual Foxului); acesta este format din opiuni (denumite i pad-uri). Acestea, la rndul lor, pot lansa o aciune sau un submeniu vertical. Meniurile verticale au o serie de opiuni I (bare, care la rndul lor pot lansa comenzi, alte submeniuri verticale sau orizontale sau ferestre de dialog. Ca i n cazul rapoartelor, n gestiunea meniurilor avem dou etape importante: Crearea sistemului de meniuri. Exploatarea sistemului de meniuri. Crearea unui sistem de meniurilor Indiferent de dimensiunea i complexitatea aplicaiei, pentru crearea unui sistem de meniuri sunt necesare o serie de etape. Numrul acestora difer de la autor la autor. n esen ns aceast activitate revine la urmtorii pai:

89

Pasul 1 : - proiectarea sistemului meniului, care const n stabilirea locului acestuia, opiunile utilizate i submeniurile aferente, chei rapide de acces, etc. Pasul 2: - crearea meniurilor i submeniurilor; Pasul 3: - ataarea funciilor i aciunilor de opiunile meniului cum ar fi : - afiare unor formulare sau casete de dialog ; - inserarea de cod de iniializare de variabile, deschideri de fiiere etc. nainte activarea opiunii ; - inserare secvenelor de cod asociate diferitelor evenimente legate de activarea/dezactivarea opiunilor sau meniului ; Pasul 4 : - generarea programului aferent meniului ; Pasul 5 : - testarea sistemului (programului, aplicaiei). Planificarea unui sistem de meniuri Planificarea unui sistem de meniuri este o operaie de analiz i ca atare se efectueaz de regul independent de calculator fiind o operaiune migloas, dar de care depinde n mare msur succesul aplicaiei, modul n care aceasta va fi receptat de utilizator. Numrul recomandrilor pentru proiectarea meniurilor poate fi mare i important. n faza de proiectare se descriu fiecare opiune. Astfel, de exemplu la creare se vizualizeaz un meniu vertical cu tabelele care pot fi create. Dac o tabel este creat deja i este utilizat ea nu va mai fi selectabil. Analog se analizeaz i se descriu funciile fiecrei opiuni. Se stabilesc caracterele de acces (cele subliniate n aa fel ca ele s nu creeze confuzie. Pentru unele opiuni, de exemplu pentru tergerea articolelor marcate (PACK) putem stabili combinaia de taste Ctrl+P. Crearea i modificarea meniurilor Crearea meniurilor se poate realiza prin mai multe metode. Primele meniuri au fost create cu ajutorul unor comenzi de tip @say, @get cu care se pot genera diferite obiecte. Aceast metod este destul de anevoioas pentru neinformaticieni, motiv pentru care deja n FoxPro 2.5-2.6 s-a recurs la un constructor grafic de meniuri, denumit atunci generator de meniuri. Ca i n cazul constructorului de rapoarte, constructorul de meniu lucreaz n dou faze: o n prima faz se genereaz o tabel sistem care are extensia MNX; o n a doua faz se genereaz pornind de la acesta un program cu extensia MPR care se execut ca orice program cu comanda DO. Lansarea constructorului de meniuri Constructorul de meniuri, denumit Menu Designer poate fi lansat din comand sau din meniul sistem. Comanda de creare a unui meniu nou are sintaxa: CREATE MENU [NumeFiier | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN Din aceast sintax este important poriunea: CREATE MENU [NumeFiier | ?] Ceilali parametrii fiind deja prezentai n seciunile anterioare. Dac se lanseaz deci comanda CREATE MENU test

90

apare fereastra constructorului de meniuri. Selectnd declanatorul Menu se va construi un meniu orizontal cu opiuni sub forma unor meniuri verticale; selectnd Shortcut, va apare un meniu vertical cu opiuni sub forma unor submeniuri verticale. Dac nu se precizeaz numele fiierului sau se tasteaz semnul ntrebrii, apare ca i n cazul crerii celorlalte obiecte (tabele, ferestre, rapoarte etc.) se genereaz temporar cu numele Menu1, iar n momentul n care se dorete generarea programului sistemul va vizualiza fereastra standard ave As cu care se poate fixa numele meniului. Crearea unui meniu cu ajutorul meniului sistem 1) Se selecteaz opiunea New din meniul vertical File. 2) Din fereastra New se selecteaz butonul radio Menu i declanatorul New File. 3) Apare chenarul New Menu i activitatea se continu. Crearea unui meniu din managerul de proiect 1. Se selecteaz opiunea New din meniul vertical File. 2. Din fereastra New se selecteaz butonul radio Project i declanatorul New File. 3. Apare fereastra constructorului de proiecte (Figura 4.1) din care se poate selecta opiunea Other din meniul vertical sau eticheta cu acelai nume. 4. Apar opiunile meniului vertical din figura de mai jos. 5. Selectnd opiunea Menu i declanatorul New. 6. Apare fereastra New Menu. Modificarea descrierii meniurilor Ca i n cazul crerii meniurilor i n cazul modificrii se poate proceda n dou moduri. Comanda de modificare a unui meniu nou are sintaxa: MODIFY MENU [FileName | ?] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [NOWAIT] [SAVE] Din aceast sintax este important poriunea: MODIFY MENU [NumeFiier | ?] Ceilali parametrii fiind deja prezentai n seciunile anterioare. Dac se lanseaz deci comanda MODIFY MENU test va apare fereastra Menu Design cu starea curent a meniului. Dac se lanseaz comanda: MODIFY MENU apare fereastra OPEN din care se poate selecta meniul dup care apare fereastra Menu Designer ca n cazul precedent. Modificarea unui meniu cu ajutorul meniului sistem Se selecteaz opiunea Open din meniul vertical File, dup care se procedeaz ca n cazul comenzii MODIFY MENU fr numele fiierului meniu. Stabilirea unor proprieti i coduri ale meniurilor Aceste proprieti i coduri se pot stabili n orice moment al crerii sau modificrii meniurilor din meniul vertical View. Stabilirea proprietilor generale Pentru stabilirea proprietilor generale se poate realiza selectnd din meniul vertical View opiunea General Options. Aceasta vizualizeaz fereastra cu acelai nume.

91

n zona Procedure utilizatorul poate scrie o secven de program care s fie executat la activarea meniului. Dac codul nu ncape n chenarul de editare acesta va defila vertical. Dac utilizatorul dorete s editeze o secven mai masiv de cos poate selecta declanatorul Edit i va apare o fereastr de editare accesibil numai n momentul nchiderii ferestrei General Options. Chenarul Location permite stabilirea locului meniului n cauz fa de meniul sistem. Astfel, dac se las selectat Replace, acest meniu va nlocui meniul sistem. Dac se selecteaz Append, meniul actual se va aduga meniului sistem, iar dac se selecteaz Before sau After, n dreptul butonului apare o list derulant din care se poate selecta o opiune din meniul sistem n faa cruia sau dup care s se insereze meniul curent. Dac se selecteaz opiunile Setup, respective Cleanup din chenarul Menu code, apare cte un chenar n care se pot edita secvenele de cod care s fie executate automat la iniializarea meniului, respective la tergerea sa din memorie. Opiunea Top level este legat de vizualizarea meniului ntr-un document SDI (Single Document Interface). Fr a intra n amnunte, precizm c dac nu se selecteaz aceast opiune, Visual FoxPro lucreaz n regim MDI (Multiple Document Interface) adic exist o fereastr principal, care este rdcina arborelui de documente. n regim SDI toate documentele sunt independente i la acelai nivel. Stabilirea codului pentru meniu sau submeniuri Acest cod se poate stabili selectnd din meniul vertical View opiunea Menu Options. Va apare o fereastr cu numele meniului sau submeniului pentru care se creeaz sau editeaz secvena de cod i zona de editare i declanatoarele cu semnificaia din fereastra General Options. Crearea unui meniu rapid Selectnd la crearea unui meniu nou opiunea Quick Menu, va apare fereastra constructorului de meniuri. Att opiunile meniului orizontal ct i a celor verticale vor fi cele din meniul sistem. Utilizatorul poate modifica acest meniu sau poate genera un meniu cu un nume dat. Extensia implicit a acestui program va fi MPR. Programul astfel obinut poate fi refolosit n meniul care se creeaz pentru revenirea la meniul sistem. Trebuie s menionm c dac nu se asigur aceast revenire nu putem continua eventual activitatea cu Visual FoxPro. Putem observa c revenirea la meniul sistem se poate realiza i n alte moduri, de exemplu, genernd comanda: SET SYSMENU TO DEFAULT Construirea efectiv a meniului i submeniurilor Fereastra constructorului de meniuri are n stnga un chenar n care avem o list vertical format din 3 elemente: Chenarul de tip text Prompt este zona n care se definesc textele care vor apare n cadrul opiunilor, de exemplu n figura de mai sus \<File. Referitor la aceste texte trebuie s subliniem faptul c, aa dup cum se poate observa, anumite caractere au n fa simbolul \. Semnificaia acestui fapt este: Dac \< este n faa unui caracter, acesta va deveni caracter de selecie n sensul cunoscut din Windows, adic, n cadrul numelui opiunii din meniu va apare subliniat i dac meniul (submeniul) respective este active i se tasteaz caracterul respectiv se lanseaz automat opiunea;

92

Dac \ singur apare n faa unei opiuni, aa dup cum se poate constata din exemplul de mai jos (opiunea Creare), aceast opiune va fi scris mai slab i nu este selectabil. Coloana Result este o list derulant n care se poate stabili rezultatul aciunii de activare a opiunii respective din meniu (submeniu). Dac este prima selecie a unui element din coloan n dreptul elementului respective apare un declanator Create. Elementele din lista derulant pot fi: Command indic faptul c prin selectarea opiunii respective din meniu se dorete executarea unei singure comenzi. Dac se selecteaz aceast opiune n dreptul ei apare un chenar de editare a textului comenzii care se dorete s fie executate n cazul selectrii opiunii. PadName Orice meniu are dou nume. Unul este cel din interfa, care apare n coloana Prompt i unul care apare n programul generat cu extensia .MPR (care este numele de PAD). Orice opiune dintr-un meniu are un numr (BAR#) . Dac utilizatorul nu i d el un nume PAD-ului, sistemul va genera automat un identificator. Acesta este fix, dac este PAD sistem i se schimb de la generare la alta dac este PAD utilizator. Dac n cadrul programului utilizatorul vrea s utilizeze un PAD, el trebuie s foloseasc numele de PAD. Stabilirea unui nume de PAD pentru un meniu aferent unei opiuni, se poate realiza n chenarul Prompt Options. Numele standard de PAD-urilor sistem pot fi obinute cu ajutorul funciei SYS(2013). Submenu- lanseaz crearea/editarea unui submeniu. Fereastra de editare a unui submeniu este asemntoare cu cea a meniului principal (Bar) cu unele mici modificri. Astfel, n locul opiunii PAD va apare BAR# care este numrul intern al opiunii. De exemplu, tiprirea are numrul intern, care se poate obine tot cu funcia SYS(2013), sau din crearea unui meniu rapid (QUICK MENU) i efectuarea unui click pe declanatorul Edit i selectarea opiunii _mfi_sysprint. De asemenea, spre deosebire de meniul bar, aici declanatorul INSERT BAR este accesibil. Din figura de mai jos se poate remarca, faptul c opiunile dintr-un meniu vertical se pot grupa. Pentru a le grupa se trage o linie orizontal. Pentru a insera o line de separaie n coloana Prompt se utilizeaz combinaia \-. Se poate observa de asemenea fr dificultate din figur dac o opiune dintr-un meniu vertical are un submeniu, numele lui este urmat de un vrf de sgeat. Numrul nivelelor de meniuri nu este limitat. Procedure indic faptul c la selectarea opiunii corespunztoare din meniu se dorete executarea unei proceduri (secvene de comenzi). Dac se selecteaz opiunea Procedure, apare alturi de zona respectiv un declanator pe care scrie Create la crearea procedurii i respectiv Edit dac procedura a fost deja creat i se dorete, eventual, modificarea ei. Ultima coloan a acestei ferestre este Options. n aceast fereastr putem stabili opiuni legate de obiectul n cauz. Dac se selecteaz o opiune, de exemplu Vizualizare, n dreptul ei apare un buton pe coloana Options. Efectund un click pe butonul respective apare chenarul Prompt options cu ajutorul creia se pot stabili opiunile dorite. Aceast fereastr are mai multe chenare. - Primul chenar Shortcut, are dou zone de tip tex, Key Label i Key Text, cu ajutorul crora putem defini combinaii de taste pentru apelul scurtcircuitat al meniului sau al opiunii, analog metodei binecunoscute din Windows. Opiunile au pentru scurtcircuitare Ctrl+tast. De exemplu, pentru vizualizare se poate utiliza combinaia Ctrl+V. Nu se admite combinaia Ctrl+J. Iniial cursorul de

93

inserare este n Key Label iar textul afiat este (Press the key). Acionnd deodat Ctrl+V aceasta se nscrie n ambele zone. Ulterior, ca n exemplul nostru, utilizatorul poate s schimbe textul n zona Key Text. - Chenarul Negotiate se utilizeaz numai n situaia n care titlul meniului va fi un container pentru un obiect. n acest caz se poate stabili forma containerului i sursa obiectului. - Skip for permite stabilirea unei expresii logice care dac ia valoarea True opiunea nu este selectabil. Expresia poate fi construit i cu ajutorul Constructorului de expresii, dac se efectueaz un click pe butonul de lng chenarul de editare. - n chenarul Message se poate introduce o expresie de tip caracter care dup evaluare este afiat pe linia de stare a ferestrei. - Pad Name/Bar# are semnificaia de mai sus, cu observaia c Pad Name este utilizabil numai n situaia utilizrii unuia dintre prompterele diferite de PAD, iar BAR poate fi folosit numai n meniurile contextuale. - Picture - se utilizeaz dac n stnga textului din meniu sau n meniu se afieaz un grafic sau se utilizeaz o resurs sistem. - Comment permite editarea unui comentariu ca i n cazul generrii altor obiecte. Revenind la Menu Designer, n dreapta sus apare lista derulant Menu Level, cu ajutorul cruia se poate stabili nivelul de meniu care este afiat curent. Dac se dorete navigarea n meniu, de exemplu trecerea la meniul bar, se execut un click pe sgeat i din lista expandat se selecteaz Menu Bar. n felul acesta ne putem deplasa pe structura arborescent a meniului.\ n fereastra Menu Designer avem i chenarul Item cu patru declanatoare INSERT, INSERT BAR, DELETE i MOVE ITEM. Cu aceste se poate insera o opiune naintea unei alte opiuni din meniul bar (INSERT). n acest caz apare o opiune cu numele standard New Item. Folosind INSERT BAR apare lista vertical Insert System Menu Bar din care dac se selecteaz, de exemplu, New, se obine linia \New din figura de mai jos. Dac se selecteaz butonul Move Item apare fereastra cu acelai nume, iar din lista derulant To Location se poate selecta locaia din meniu unde se dorete mutarea opiunii. Ultima opiune din fereastra Menu Designer este Preview, cu care putem vizualiza n orice moment modul de funcionare a meniului care se construiete sau se editeaz, ca i n cazul exemplului nostru. Opiunile meniului vertical Menu i generarea meniurilor Odat cu lansarea comenzii de creare sau modificare a unui meniu, n meniul bar va apare opiunea MENU. Dac se selecteaz aceast opiune apare un meniu vertical. Opiunile meniului au fost prezentate anterior rmnnd doar opiunea de generare. Deci, dac se salveaz fr generare meniul, se obine tabela special cu extensia MNX. Dac se selecteaz opiunea Generate apare chenarul cu numele Generate Menu. n chenarul Output File putem modifica numele cu care se genereaz meniul (implicit este numele cu care s-a generat tabela .mnx) i eventual calea, fie tastnd direct, fie utiliznd un sistem Browse cu ajutorul butonului alturat.

94

Efectund un click pe butonul Generate se genereaz automat programul cu extensia .mpr, care se execut prin comanda DO <nume_meniu>.mpr Trebuie remarcat c exist i alte metode de creare a meniurilor i opiunilor cum ar fi comenzile DEFINE PAD, DEFINE POPUP i DEFINE BAR De asemenea, Visula Fox Pro permite crearea unor meniuri contextuale. Aceste meniuri se utilizeaz executnd un click cu butonul din dreapta pe un obiect. Meniurile contextuale se creeaz asemntor cu cele bar, deosebirile fiind date numai de faptul c n chenarul New Menu se selecteaz declanatorul Shortcut, n loc de Menu, iar meniul este vertical. REZUMAT Modulul este format din dou uniti. Prima unitate este destinat gestiunii rapoartelor. Problemele principale tratare n aceast unitate sunt: - Structura i planificarea unui raport, din punct de vedere conceptual; - Componentele unui raport n VFP; - Controalele raportului i modul de utilizare al acestora; - Structura constructorului de rapoarte de rapoarte i modul lui de utilizare; - Gestiunea rapoartelor (creare, modificare, exploatare i tergere) - Asisteni pentru gestiunea rapoartelor att pentru rapoarte rapide ct i utilizarea Wizard-ului. A doua unitate este destinat meniurilor. Principalele probleme tratate se refer la: - Probleme conceptuale referitoare la meniuri i rolul lor; - Structura i utilizarea ferestrei constructorului de meniuri; - Opiunile posibile la generarea meniurilor i submeniurilor; - Gestiunea meniurilor (creare, modificare, tergere); - Exploatarea meniurilor. Se vor elabora aplicaii legate de cele dou teme din modul. Se vor elabora aplicaii complexe de Informatic Economic Afaceri. [Sitar_2010]

TEME DE CONTROL, APLICAII Bibliografie

Exemple de teste gril: 1. n bara Title a unui raport se specific: a) titlul paginii; b) titlul raportului; c) titlul seciunii; Rspuns: b . 2. Revenirea la meniul sistem se face prin: a) comanda CLOSE ALL b) comanda SET SYSMENU TO DEFAULT c) comanda MODIFY MENU ? d) niciuna de mai sus. Rspuns: b .

95

You might also like