informatica manageriala. cristescu...

161
1 UNIVERSITATEA ”LUCIAN BLAGA” DIN SIBIU FACULTATEA DE ȘTIINȘE ECONOMICE INFORMATICĂ MANAGERIALĂ - Note de curs - (format ID) SIBIU - 2009

Upload: others

Post on 05-Sep-2019

13 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

1

UNIVERSITATEA ”LUCIAN BLAGA” DIN SIBIU FACULTATEA DE ȘTIINȘE ECONOMICE

INFORMATICĂ

MANAGERIALĂ

- Note de curs - (format ID)

SIBIU - 2009

Page 2: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

2

1. BAZE DE DATE – BAZE DE DATE RELAłIONALE

CONCEPTE DE BAZĂ:

1. Fişier, Bază de date 2. Sistem de gestiune a bazelor de date (SGBD),

dicŃionar de date 3. Model entitate-relaŃie, atribut, constrângere 4. Modelele intern, extern şi conceptual şi tipurile de

independenŃă 5. RelaŃie şi tabel.

OBIECTIVE: 1. Crearea unei perspective clare asupra bazelor de date.

2. Familiarizarea cu elementele legate de baze de date şi modelele bazelor de date.

3. Crearea unor deprinderi referitoare la proiectarea bazelor de date.

RECOMANDĂRI PRIVIND STUDIUL:

Pentru parcurgerea prezentului material se recomandă parcurgerea atentă a bibliografiei, precum şi studierea atentă a materialului aferent în cadrul ActivităŃilor Asistate (AA).

REZULTATE AŞTEPTATE:

1. Clarificarea noŃiunilor legate de baze de date şi modele de date.

2. Clarificarea noŃiunilor legate de proiectarea şi normalizarea bazelor de date.

Page 3: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

3

1.1. CONCEPTE GENERALE REFERITOARE LA BAZE DE DATE

OBIECTIVE 1. Clarificarea noŃiunilor referitoare la conceptele generale

legate de baze de date şi nivelele de organizare ale acestora.

2. Clarificarea elementelor referitoare la modelele de date şi tipurile de independenŃă.

NOłIUNI CHEIE Fişiere, baze de date, arhitectura unei baze de date, nivele de organizare, entitate relaŃie, atribut, nivel conceptual, intern sau extern.

1.1.1. Conceptul de "Bază de date"

După cum s-a menŃionat în capitolul precedent, la baza prelucrării datelor

stau fişierele. Odată cu dezvoltarea informaticii, numărul acestora a crescut, ajungându-se ca într-o firmă să existe mai multe zeci sau sute de fişiere permanente şi temporare legate de gestiunea personalului, materialelor, producŃiei, vânzărilor etc. Această creştere a avut o serie de dezavantaje, dintre care amintim [NiŃchi90]:

• redundanŃa – este proprietatea unei informaŃii de a se repeta nejustificat; de exemplu codul materialelor, care poate ajunge la 20-30 de cifre, se repetă în majoritatea acestor fişiere, mărind nejustificat spaŃiul fizic ocupat;

• inconsistenŃa – este legată de apariŃia distorsionată a unor informaŃii în diferite contexte; una dintre cauzele inconsistenŃei este redundanŃa deoarece este suficient ca la o apariŃie (copie) a informaŃiei redundante, aceasta să fie introdusă greşit şi informaŃia poate deveni inconsistentă;

• validarea datelor – este clar că diferite aplicaŃii care gestionează fişiere disparate pot valida datele diferit; nevalidarea uniformă a datelor poate duce la compromiterea întregului sistem de fişiere;

• disponibilitatea şi securitatea datelor – reprezintă o problemă de asemenea foarte spinosă. Datele aflându-se în fişiere disparate, acestea pot fi reŃinute de proprietari nefiind disponibile şi comunităŃii utilizatorilor. De asemenea, neexistând un control centralizat asupra lor nu se poate asigura securitatea acestora.

Pornind de la toate acestea şi multe altele, cum ar fi dezvoltarea tehnicii de calcul, s-a ajuns la ideea bazelor de date.

Page 4: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

4

O primă definiŃie a bazelor de date este [NiŃchi&RacoviŃan96]: baza de date este un sistem integrat, coerent şi partajat de fişiere. Pentru a asigura folosirea în comun a aceloraşi date de către mai mulŃi utilizatori era necesară asigurarea independenŃei aplicaŃiilor faŃă de structura logică a datelor. Din acest motiv, era necesară desprinderea din cadrul programelor de aplicaŃie a descrierii structurii datelor. Acest lucru a fost posibil prin definirea unui fişier de descriere globală a bazei de date, denumit dicŃionar de date.

Bazele de date au apărut în anii ’60, odată cu lansarea programului Apollo, în 1964, pronind de la ceea ce formau sistemele de fişiere înlănŃuite, introduse de IBM pentru gestionarea lansării şi urmăririi producŃiei. Astfel au apărut aşa zisele baze de date arborescente sau de ganeraŃia 1-a.

Conceptul de bază de date, sub această denumire, a apărut pentru prima dată în anul 1969, an în care CODASYL a publicat, în cadrul unei conferinŃe dedicate limbajelor de gestiune a datelor, un raport tehnic despre acest concept. FaŃă de modelul bazat pe fişiere clasice (file-based), noul model de organizare a datelor în baze de date include un fişier de descriere globală a bazei de date (dicŃionar de date) care să poată asigura independenŃa programelor faŃă de structura datelor. Pornind de la aceste considerente, se pot da şi alte definiŃii bazelor de date, cum ar fi [Fotache01]: O bază de date reprezintă o colecŃie de date, organizate într-o structură descrisă printr-un model conceptual sau colecŃie de date aflate în interdependenŃă, împreună cu descrierea datelor şi a relaŃiilor dintre ele. Totalitatea informaŃiilor stocate în baza de date la un moment dat reprezintă conŃinutul bazei de date. ConŃinutul are un caracter volatil, în sensul că se modifică permanent în funcŃie de volumul şi complexitatea proceselor şi fenomenelor economice la care se referă. Structura datelor împreună cu legăturile dintre entităŃi şi restricŃiile de integritate formează schema bazei de date, care, de obicei, rămâne constantă pe durata utilizării 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ă încărcarea bazei de date, actualizarea şi interogarea acesteia, cât şi interfaŃa cu sistemul de operare în vederea simplificării accesului la date.

In general SGBD-urile au implementate limbaje gazdă, care conŃin atât instrucŃiuni specifice exploatării datelor din bazele de date, cât şi unele instrucŃiuni din limbajele de programare clasice.

Page 5: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

5

Un SGBD include, în general, o serie de componente [Date2000] grupate în jurul dicŃionarului de date, dintre care amintim:

• sistemul de gestiune a fişierelor şi suporturilor la nivel fizic; • sistemul de gestiune a fişierelor 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 instrucŃiunile limbajului de consultare în instrucŃiuni inteligibile pentru sistemul de gestiune la nivel logic;

• componente de interfaŃă cu programele de aplicaŃii; • componente de serviciu, legate de jurnalizări, securitate etc. Trebuie să specificăm, î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, formând o singură componentă.

Principalele funcŃii ale unui SGBD sunt următoarele: • FuncŃia de descriere date • FuncŃia de manipulare date • FuncŃia de utilizare

1.1.2. Arhitectura unei baze de date Asigurarea independenŃei 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ă), defineşte baza de date ca fiind o colecŃie de fişiere, conŃinând datele din cadrul bazei de date, la care se adaugă şi alte structuri auxiliare de date şi un set de programe, care interacŃionează cu sistemul de operare pentru îmbunătăŃirea managementului bazei de date. La acest nivel structura bazei de date se concretizează în schema internă. Aici apare independenŃa faŃă de căile 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 conŃinutului şi relaŃiilor cu alte date. Acesta este şi primul nivel de abstractizare a lumii reale, având ca obiectiv principal modelarea realităŃii existente prin definirea şi descrierea unităŃilor logice cu care se lucrează şi a legăturilor dintre acestea. Această schemă este descrisă în general de administratorul

Page 6: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

6

bazei de date, el fiind singurul care cunoaşte şi manipulează schema conceptuală a bazei de date, degrevând utilizatorii de cunoaşterea întregii structuri a bazei de date.

Nivelul conceptual se defineşte cu ajutorul schemei entitate-relaŃie (E-R)[Gardarin86] sau obiect-entitate-relaŃie (OLE) [Miranda&Busta86].

Prin entităŃi se înŃeleg concepte cu care operează utilizatorii şi prin care aceştia îşi modelează aplicaŃiile, cum ar fi: PRODUSE, BENEFICIARI, FACTURI (în cazul unei firme productive) sau PROFESORI, STUDENTI, SALI, MATERII (în cadrul unei facultăŃi).

Fiecare entitate poate avea una sau mai multe atribute. De exemplu, un STUDENT are MATRICOLA, NUME, DATA-NAŞTERII, etc.

Constrângerile reprezintă proprietăŃi ale datelor şi se referă la restricŃii privind valorile pe care le pot lua aceste date sau la restricŃii privind legăturile dintre diferite entităŃi.

În cadrul oricărei operaŃii de actualizare a datelor din baza de date sau de încărcare a acesteia cu date, se verifică aceste constrângeri, pentru a asigura integritatea bazei de date.

Ca urmare, orice modificare în structura de memorare a datelor sau schimbarea suportului magnetic, va afecta doar interfaŃa dintre nivelul conceptual şi cel fizic fără a modifica nivelul conceptual. Rezultatul imediat al independenŃei fizice a datelor îl reprezintă imunitatea aplicaŃiilor 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 conŃine, deci, o parte din unităŃile logice descrise la nivel conceptual, dar poate include şi unităŃi logice care nu apar la nivel conceptual şi care nu au corespondent direct în baza de date fizică, obŃinute de exemplu prin calcule. Ca urmare, nivelul extern este derivat din nivelul conceptual şi reprezintă ceea ce vede utilizatorul din baza de date. Fiecărui utilizator îi va corespunde un model extern propriu, în funcŃie de cerinŃele informaŃionale ale acestuia.

UnităŃile logice folosite la nivel extern se numesc numite unităŃi logice virtuale, imagini sau vederi şi formează o bază de date virtuală.

Aceste vederi se pot obŃine în unul din următoarele moduri: 1. prin modificarea unor unităŃi logice reale; 2. prin combinarea a două sau mai multe unităŃi logice reale. Vederile asigură, printre altele, următoarele funcŃii în cadrul unei baze de

date: 1. securitatea bazei de date 2. definirea modului de acces la date;

Page 7: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

7

3. oferă utilizatorului o viziune simplificată şi personalizată asupra bazei de date.

Prin nivelul extern se realizează independenŃa logică a datelor din baza de date.

InterfaŃa dintre utilizator şi SGBD se poate realiza în mai multe moduri, dintre care amintim :

- printr-un mecanism de apel (cuvânt cheie urmat eventual de parametrii) inserat în programele scrise într-un limbaj tradiŃional (C, COBOL, etc), numit limbaj gazdă;

- prin comenzi speciale utilizate autonom (specifice SGBD-urilor, în afara limbajelor tradiŃionale), în cazul SGBD-urilor autonome.

1.1.3. Modele de organizare a datelor

Analiza, proiectarea şi implementarea structurii bazei de date se

realizează utilizând un anumit model de date. Un asemenea model reprezintă un ansamblu de instrumente

conceptuale, care permit descrierea datelor, a relaŃiilor dintre ele, a semanticii lor, cât şi a restricŃiilor la care sunt supuse aceste date [Fotache02, Popescu02]. Un model de date reprezintă, deci, un instrument teoretic care ne ajută să identificăm semnificaŃia sau conŃinutul unei colecŃii de date (structura de organizare a acestora) cât şi modul de utilizare a acestora, prin intermediul operaŃiilor permise asupra datelor respective.

Modelul de organizare a datelor este deci o reprezentare a obiectelor lumii reale şi a evenimentelor asociate lor, având rolul de a pune la dispoziŃia utilizatorilor conceptele de bază şi notaŃiile, care să le permită acestora să comunice clar şi rapid informaŃiile despre datele firmei [Selinger98].

Ca urmare, un model de date include următoarele 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-asociaŃii (E-A), entitate-relaŃie (E-R) sau obiect-entitate-relaŃie (OLE)

b) modelul semantic c) modelul funcŃional

Page 8: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

8

d) modelul orientat pe obiecte. Din categoria modelelor orientate pe înregistrări fac parte: a) modelul ierarhic b) modelul reŃea c) modelul relaŃional.

Această din urmă orientare a dat naştere şi clasificării bazelor de date pe generaŃii [Miranda&Busta86, Gardarin86].

Astfel, prima generaŃie de baze de date a fost cea bazată pe structuri arborescente, adică relaŃii de tip 1:n. Dintre SGBD-urile cele mai cunoscute din domeniu amintim: IMS al IBM (utilizat şi azi), Total, System2000, Nomad etc.

A doua generaŃie de baze de date a fost cea bazată pe reŃele sau relaŃii de tip n:m. Aceste baze de date au fost denumite şi baze de date de tip CODASYL, deoarece această organizaŃie a încercat să dezvolte un standard pentru ele şi să le introducă în standardul COBOL 81. Dintre SGBD-urile cele mai utilizate în România, din această categorie, amintim SGBD-urile de tip Socrate, dezvoltate de firma franceză CII după proiectul profesorului M.Abrial de la Universitatea din Grenoble şi DBMS-11, al firmei DEC.

In prezent, cel mai răspândit dintre modelele de baze de date este cel relaŃional, adică de tip n:1, dezvoltat de E.F.Codd de la IBM, al cărui obiectiv este acela de simplificare a accesului la date de către utilizatorii finali. Aceasta reprezintă a treia etapă sau generaŃie în evoluŃia SGBD-urilor.

1.1.4. EntităŃi şi tipuri de entităŃi

O entitate este o realitate obiectivă care există prin ea însăşi. Orice entitate, aşa după cum s-a mai arătat, se caracterizează prin anumite proprietăŃi, care în cadrul modelului de date sunt reprezentate prin atribute.

EntităŃile la rândul lor sunt reprezentate prin tipuri de entităŃi. MulŃimea entităŃilor descrise prin tipul de entitate dat reprezintă

extensiunea tipului de entitate respectiv, atributele unei instanŃe ale entităŃii fiind proprietăŃile particulare sau extensionale ale acesteia.

Page 9: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

9

REZUMAT O primă definiŃie a bazelor de date este [NiŃchi&RacoviŃan96]: baza de date este un sistem integrat, coerent şi partajat de fişiere. O bază de date reprezintă o colecŃie de date, organizate într-o structură descrisă printr-un model conceptual sau colecŃie de date aflate în interdependenŃă, împreună cu descrierea datelor şi a relaŃiilor 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 funcŃii ale unui SGBD sunt următoarele:

• FuncŃia de descriere date • FuncŃia de manipulare date • FuncŃia de utilizare

Asigurarea independenŃei 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

Din categoria modelelor orientate pe înregistrări fac parte: d) modelul ierarhic e) modelul reŃea f) modelul relaŃional.

TESTE DE AUTOEVALUARE

Recomandăm parcurgerea testelor din Îndrumarul de laborator

BIBLIOGRAFIE 1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003. 2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007. 3. Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora, Bucuresti, 1999. 4. Marin Fotache, Ioan Brava, Cătălin Strâmbei, Liviu

CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor

profesionale, Editura Polirom Iaşi, 2002.

5. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003.

Page 10: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

10

1.2. MODELUL RELAłIONAL

OBIECTIVE 1. Clarificarea noŃiunilor referitoare la conceptele generale

legate de relaŃie, atribut, domeniu 2. Clarificarea elementelor referitoare la chei şi legături

între tabele. 3. Familiarizarea cu formele normale şi normalizarea

relaŃiilor. NOłIUNI CHEIE Atribut, tabel, domeniu, relaŃie, cheie candidat, cheoe

primară, cheie străină, cele trei forme normale de bază

1.2.1. Modelul de date relaŃional

1.2.1.1. Caracteristici generale

Primul model de date relaŃional, aşa după cum s-a amintit, a fost propus de către cercetătorul 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 relaŃiilor, extinsă la cerinŃele de gestiune a datelor. O bază de date relaŃională este definită ca fiind un ansamblu de tabele sau relaŃii între care există anumite legături, fiecare tabelă fiind alcătuită din coloane, denumite atribute şi linii, denumite şi tuple.

1.2.1.2. Definirea entităŃilor şi structurii acestora

Reamintim că în cadrul modelului relaŃional entităŃile se reprezintă prin intermediul relaŃiilor statice, sau tabelelor, precum şi a legăturilor dintre ele, sau a relaŃiilor dinamice. Conceptele cu care se operează în cadrul modelului relaŃional în vederea definirii entităŃilor şi structurii acestora sunt următoarele:

1. linia sau tuplul 2. atributul sau caracteristica 3. domeniul 4. înregistrarea logică 5. cardinalitatea relaŃiei 6. rangul relaŃiei 7. cheia relaŃiei

Page 11: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

11

Pentru exemplificarea conceptelor anterior prezentate se consideră relaŃia sau tabelul FACULTẶłI având următoarea structură:

atribut FACULTẶłI

Cod facultate Denumire facultate Adresă STE ŞT. ECONOMICE MIHALI FN FIL FILOLOGIE HOREA 5 BIO BIOLOGIE HAJDEU 10 MED MEDICINẶ E. ISAC 20

linie domeniu înregistrare logică (tuplu) (antet relaŃie) Putem considera că un atribut reprezintă o utilizare sub un anumit nume a

unui domeniu. Din acelaşi domeniu pot deriva mai multe atribute, fiecare cu nume diferite la nivelul unui tabel. Astfel, dacă considerăm domeniul numerelor întregi sau reale, din acest domeniu pot deriva atribute cum ar fi: SALAR, IMPOZIT, VALOARE, PRET, CANTITATE etc.

1.2.1.3. Fundamentul matematic al conceptului de relaŃie şi

atribut

Din punct de vedere matematic, prin relaŃie se înŃelege o submulŃime a produsului cartezian al Unor domenii. Având domeniile D1, D2,…, Dn, produsul lor cartezian se defineşte astfel: şi reprezintă o asociere între elementele fiecărui domeniu, sau mai exact, este mulŃimea tuturor combinaŃiilor sau tuplelor de forma {d1, d2,….,dn}, unde di∈ Di. Deci, relaŃia se defineşte astfel:

unde D1, D2,…,Dn reprezintă domeniile relaŃiei R comparabile între ele, iar "n" reprezintă rangul relaŃiei. După rang, relaŃia poate fi: primară, binară, ternară sau, în general, n-ară.

Desigur că definiŃia anterioară dată relaŃiei nu este unica posibilă. Astfel, C.J.Date [Date2000] defineşte o relaŃie ca fiind compusă din două părŃi:

1. Antetul relaŃiei, ca fiind o mulŃime de atribute, definite pe câte un domeniu (nu neapărat distinct), astfel:

V=D1 x D2 x …. x Dn ={ (d1, d2,….,dn)}

R ⊆ D1 x D2 x ……x Dn

{A1 : D1, A2 : D2,….An:Dm}

Page 12: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

12

2. Corpul relaŃiei, ca fiind o mulŃime de tuple, fiecare tuplu conŃinând o mulŃime de valori aferente atributelor definite în antetul relaŃiei, astfel:

Ilustrarea acestui mod de abordare rezultă din figura următoare: Antetul relaŃiei t1

t2

Corpul relaŃiei tk tm

Deci, o relaŃie poate fi simbolizată prin mulŃimea atributelor sale astfel: sau

Din definiŃiile noŃiunii de relaŃie, rezultă următoarele proprietăŃi ale

acesteia: 1. Ordinea atributelor în cadrul unei relaŃii este nesemnificativă (atributele

nu sunt ordonate). 2. Atributele unei relaŃii trebuie să fie distincte, chiar dacă pe acelaşi

domeniu sunt definite mai multe atribute. 3. Orice atribut are valori atomice, adică la intersecŃia dintre o linie şi o

coloană se află o singură valoare şi nu o colecŃie de valori sau grupuri repetitive. In acest caz, se consideră că relaŃia se află în forma întâia normală.

4. In cadrul corpului relaŃiei, tuplele nu sunt ordonate în mod obligatoriu. 5. Intr-o relaŃie nu există tuple duplicate.

1.2.2. Legături între relaŃii

1.2.2.1. Definirea cheilor unei relaŃii

Dacă într-o relaŃie există mai multe atribute sau combinaŃii de atribute care

permit identificarea unică a tuplelor, acestea sunt denumite chei candidat. O astfel de cheie reprezintă un atribut sau o mulŃime de atribute (K) cu următoarele proprietăŃi [Gardarin86] :

1. identificare unică;

{t1, t2,…tk…….tn} mulŃime de tuple ti = {di1,di2………din} mulŃime de valori aferente unei tuple

A1 A2 …………..

An

d11 d12 d1n

d21 d22 d2n

.

dk1 dk2 dkn

.

.

dm1 dm2 dmn

R(A1,A2…..,An) (A1:D1,A2:D2,….,An:Dn)

Page 13: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

13

2. ireductibilitate; 3. valorile atributului.

O entitate poate conŃine mai multe chei candidat, dar numai una dintre ele se alege pentru a fi folosită la identificarea tuplelor. Această cheie se numeşte cheie primară. O cheie candidat care nu este desemnată ca şi cheie primară se numeşte cheie alternativă.

Pe lângă noŃiunile de cheie candidat şi cheie primară, în cadrul modelului relaŃional se mai foloseşte şi noŃiunea de cheie străină. Ea se utilizează la stabilirea legăturilor dintre două tabele, numite tabela principală sau părinte şi tabela secundară sau copil. Prin definiŃie, valoarea cheii străine trebuie să se regăsească în mulŃimea cheilor primare ale tabelei principale. Ea reprezintă deci o referinŃă către un tuplu din tabela părinte care are aceeaşi valoare a cheii primare.

1.2.2.2. Tipuri de legături între relaŃii

Una din componentele modelului relaŃional se referă la legăturile dintre

relaŃii sau tabele. O legătură (relaŃie dinamică) se defineşte ca fiind o asociere între mai multe tipuri sau clase de entităŃi. Cea mai frecventă legătură întâlnită în practică este cea dintre două tipuri de entităŃi, numită şi legătură binară.

Legăturile binare, aşa cum s-a amintit, după cardinalitatea lor (numărul entităŃilor din fiecare clasă de entităŃi care intră în cadrul legăturii) se pot clasifica astfel:

1. legături de tip 1-1, prin care unei entităŃi din mulŃimea sau clasa M1 îi corespunde o singură entitate în mulŃimea sau clasa M2;

2. legături de tip 1-n, prin care unei entităŃi din mulŃimea M1 sau din tabelul M1 îi corespund mai multe entităŃi în mulŃimea sau tabelul M2, iar unei entităŃi din M2 îi corespunde o singură entitate în M1;

3. legături de tip m-n, prin care unei entităŃi din M1 îi corespund mai multe entităŃi în M2 şi reciproc.

1.2.3. Definirea restricŃiilor pentru datele dintr-o bază de date

Pentru datele dintr-o bază de date pot fi definite mai multe tipuri de

restricŃii, cum ar fi: restricŃia de domeniu, de atomicitate, referenŃială şi restricŃii utilizator. Dintre acestea, ne vom referi în continuare la restricŃia referenŃială sau integritatea referenŃială, pe care se bazează stabilirea legăturilor dintre două tabele.

Integritatea referenŃială, denumită în unele sisteme (ca de exemplu în SQL Server), integritate referenŃială statică deoarece se păstrează în dicŃionarul de date, se defineşte ca fiind un ansamblu de reguli impuse tabelelor între care s-au stabilit anumite legături. Astfel, pentru a asigura integritatea referenŃială

Page 14: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

14

trebuie ca atunci când se fac modificări ale valorii unui câmp de tip cheie primară sau străină dintr-un tabel, să nu fie afectată relaŃia dintre cele două tabele, adică să se modifice automat valorile cheii în toate tuplele corespunzătoare.

Integritatea referenŃială cere ca valorile cheii străine să se regăsească printre valorile cheii primare. Această condiŃie introduce în baza de date constrângeri numite constrângeri referenŃiale.

OperaŃiile de adăugare, modificare şi ştergere pot afecta integritatea referenŃială astfel:

1) In tabela principală (tabela referită sau părinte): a. operaŃia de adăugare se va face fără nici un fel de restricŃii din punct de

vedere al condiŃiilor de integritate referenŃială; b. operaŃia de ştergere - deoarece prin ştergerea unui tuplu din relaŃia sau

tabela principală, în relaŃia secundară pot rămâne tuple care fac referire la tuplul şters, pentru a menŃine integritatea referenŃială se poate introduce ştergerea restricŃionată 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ă rămân orfane, adică vor avea referinŃe nesatisfăcute;

- în al doilea caz, ştergerea unui tuplu din tabela principală va fi urmată de ştergerea tuturor tuplelor din relaŃia secundară care fac referire la tuplul şters;

c. operaŃia de modificare poate fi privită ca şi în cazul operaŃiei de ştergere, iar restricŃiile referenŃiale sunt cele folosite la operaŃia de ştergere;

2) In tabela secundară (de referinŃă sau tabela copil): a. operaŃia de adăugare se poate face numai dacă valorile cheii străine

pentru articolele adăugate se regăsesc printre valorile cheii primare din tabela principală, altfel operaŃia de adăugare este interzisă;

b. operaŃia de ştergere se poate realiza fără nici o restricŃie din punct de vedere al condiŃiilor de integritate referenŃială;

c. operaŃia de modificare se poate realiza cu condiŃia să nu apară înregistrări fără corespondent în tabela principală.

1.2.4. Schema şi conŃinutul unei baze de date relaŃionale

Există două modalităŃi de abordare a bazelor de date relaŃionale şi anume

[Fotache2001]: - schema relaŃională (intensia sau structura bazei de date); - conŃinutul unei relaŃii (extensia bazei de date).

Page 15: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

15

1. Schema relaŃională sau intensia unei baze de date poate fi definită ca un ansamblu de relaŃii asociate semantic prin domeniul de definiŃie şi prin restricŃii de integritate. Ea conŃine: a. una sau mai multe scheme de relaŃie, unde fiecare schemă de relaŃie

include numele relaŃiei şi atributele aferente; b. restricŃii de integritate, care pot fi:

- restricŃia cheilor primare, adică fiecare cheie primară trebuie să fie unică, nenulă şi cu compoziŃie minimală;

- restricŃii referenŃiale, care decurg din existenŃa cheilor străine; - alte restricŃii, cum ar fi cele definite de utilizator (dependenŃe

între atribute, valori limită, unicitate, caracter nenul, etc.). Schema relaŃională descrie întotdeauna modelul conceptual din cadrul unei baze de date.

RelaŃiile dintre relaŃie şi tabelă sunt date de următoarele: 1. în timp ce relaŃia este o mulŃime teoretică, tabela este un obiect concret

cu o anumită reprezentare (tablou bidimensional); 2. în timp ce într-o relaŃie ordinea atributelor sau tuplelor nu este

semnificativă, într-o tabelă există o ordonare atât a coloanelor, dată de ordinea acestora la creare, cât şi a înregistrărilor, dată de ordinea în care au fost introduse în tabelă sau ca urmare a indexării tabelei;

3. în timp ce o relaŃie teoretică este formată întotdeauna din tuple distincte, în practică o tabelă poate conŃine şi linii duplicat, aşa după cum s-a mai menŃionat în cazul SQL Server.

In acest context, noŃiunea de relaŃie se identifică cu cea de tabelă sau fişier, atributele cu denumirea coloanelor unei tabele sau cu câmpurile unui fişier, iar tuplele cu liniile tabelei sau cu articolele (respectiv înregistrările) unui fişier.

Cele de mai sus justifică faptul subliniat la definiŃia bazelor de date, că baza de date este o colecŃie de fişiere. În unele SGBD-uri, cum este cazul Visual FoxPro, fiecare fişier 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 fişierele obişnuite, fişierele bazei de date prezintă o serie de particularităŃi, dintre care amintim:

1. fiecare fişier are asociată o înregistrare de structură sau un antet, care include informaŃii despre conŃinutul fişierului şi se memorează în dicŃionarul de date;

2. dacă fişierul are articole de lungime fixă, articolele sau înregistrările de date conŃin un număr de ordine, folosit la identificarea unei înregistrări în baza de date, numit şi indicatorul sau pointer-ul articolului respectiv; în Visual FoxPro acest pointer poate fi obŃinut prin funcŃia RECNO();

3. de regulă unul dintre articolele bazei de date este cel tratat curent; pointer-ul acestui articol se numeşte pointer-ul sau indicatorul bazei de date;

Page 16: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

16

4. fişierele din baza de date sunt interconectate între ele prin legături de tip 1-1, 1-n sau m-n.

REZUMAT O bază de date relaŃională este definită ca fiind un ansamblu de tabele sau relaŃii între care există anumite legături, fiecare tabelă fiind alcătuită din coloane, denumite atribute şi linii, denumite şi tuple.

Din punct de vedere matematic, prin relaŃie se înŃelege o submulŃime a produsului cartezian al domeniilor. Dacă într-o relaŃie există mai multe atribute sau combinaŃii de atribute care permit identificarea unică a tuplelor, acestea sunt denumite chei candidat

TESTE DE AUTOEVALUARE

Recomandăm parcurgerea testelor din Îndrumarul de laborator

BIBLIOGRAFIE 1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003. 2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007. 3. Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora, Bucuresti, 1999. 4. Marin Fotache, Ioan Brava, Cătălin Strâmbei, Liviu

CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor

profesionale, Editura Polirom Iaşi, 2002.

5. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003.

Page 17: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

17

2. ELEMENTE DE LIMBAJ VISUAL FOXPRO CONCEPTE DE BAZA

1. Obiecte cu care operează VFP 2. Metalimbajul utilizat 3. Sintaxa comenzilor VFP 4. Familiarizarea cu mediul Visual FoxPro

OBIECTIVE 1. Cunoaşterea elementelor lexicale şi sintactice ale limbajului VFP.

2. Prezentarea obiectivelor de date şi a tipurilor de date utilizate în cadrul programelor Fox.

3. Prezentarea sintaxei comenzilor FoxPro şi a elementelor de metalimbaj.

4. Descrierea principalelor caracteristici ale Visual FoxPro, ca mediu integrat, obiectual şi vizual de dezvoltare de aplicaŃii.

5. Familiarizarea cu mediul Visual FoxPro, precum şi a primelor operaŃii cu mediul.

6. Familiarizarea cu opŃiunile din meniul principal, caseta de control, opŃiunile acestora, precum şi cu gestiunea ferestrelor şi a obiectelor de control.

RECOMANDĂRI PRIVIND STUDIUL

1. Se va studia mai întâi modul de formă şi utilizare a construcŃiilor simple ale limbajului (cuvinte, literale, simboluri speciale) şi apoi a celor compuse (instrucŃiuni, funcŃii şi expresii).

2. Se va pune în continuare accent pe formarea şi utilizarea obiectivelor date folosite în cadrul limbajului: constante, câmpuri, variabile.

3. Se va studia tipurile de date utilizate în cadrul limbajului şi conversia între tipuri.

4. În finalul studiului privind elementele limbajului se pune accent pe modul de definire a sintaxei unei comenzi în Visual FoxPro.

REZULTATE ASTEPTATE

După parcurgerea acestui modul utilizatorul trebuie să fie în măsură să definească şi folosească corect construcŃiile limbajului la nivelul unui program şi să înŃeleagă modul de utilizare al clauzelor din sintaxa comenzilor FoxPro. Se aşteaptă. De asemenea: 1. Familiarizarea cu mediul de dezvoltare Visual

FoxPro. 2. Crearea unor deprinderi de utilizare a mediului;

Page 18: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

18

Page 19: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

19

2.1. ELEMENTELE LEXICALE ŞI SINTACTICE ALE LIMBAJULUI VISUAL FOXPRO

OBIECTIVE Cunoaşterea modului de formare şi utilizare a construcŃiilor simple şi compuse ale limbajului

NOłIUNI CHEIE

- Cuvinte - Literale - InstrucŃiuni - FuncŃii - Expresii

2.1.1. Setul de caractere Foxpro Majoritatea limbajelor de programare, printre care şi limbajul FoxPro, au alfabetul format din următoarele caractere:

- literele alfabetului limbii engleze; - cifrele arabe (0-9); - caractere speciale;

2.1.2. Elementele lexicale şi sintactice ale limbajului FoxPro Un program FoxPro este alcătuit din şiruri de caractere sau construcŃii şi separatori. ConstrucŃiile limbajului se pot împărŃi în două categorii: - construcŃii simple; - construcŃii compuse. ConstrucŃiile simple, reprezintă cea mai mică unitate lexicală cu înŃeles de sine stătător, numite şi atomi lexicale. Există următoarele categorii de atomi lexicali sau de construcŃii 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 liniuŃa de subliniere, din care primul caracter este o literă sau liniuŃa 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 instrucŃiunile limbajului. Ele se împart la rândul lor în:

- cuvinte cheie; - cuvinte rezervate.

Page 20: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

20

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 cuvântul "ad-literam" şi are semnificaŃia unei valori precizate explicit.

3. Simboluri speciale; la fel ca şi cuvintele rezervate, simbolurile speciale numite şi semne de punctuaŃie, operatori, delimitatori, au o semnificaŃie bine definită fiind utilizate conform destinaŃiei lor.

2.1.3. ConstrucŃii compuse

A doua grupă de construcŃii, alături de construcŃiile simple, o reprezintă construcŃiile compuse, numite şi categorii sintactice de bază obŃinute prin agregarea succesivă a construcŃiilor simple conform unor reguli sintactice. La nivelul limbajului FoxPro din această grupă fac parte următoarele categorii sintactice:

1. instrucŃiuni; 2. funcŃii; 3. expresii.

1. InstrucŃiunile limbajului FoxPro se numesc comenzi şi constituie ca în orice limbaj de programare categoria sintactică fundamentală.

2. FuncŃiile; reprezintă a doua categorie sintactică de bază, utilizate în majoritatea prelucrărilor asupra datelor din baza de date. Spre deosebire de comenzi, funcŃiile returnează o valoare. Expresii FoxPro - reprezintă elemente sintactice de bază prin care se evaluează rezultatul unor operaŃii. Ele conŃin şiruri de operanzi legate între ele prin intermediul unor operatori. Expresiile rezultate în funcŃie de tipul operanzilor pot fi de tip: numeric, caracter, dată calendaristică, logic, relaŃional. Operanzii din cadrul unei expresii pot fi: variabile (câmpuri, variabile de memorie), constante şi funcŃii. Operatorii sunt caractere speciale (+, -, *, /, >, < …) sau cuvinte cheie rezervate (AND, OR, NOT) prin care se specifică acŃiunile ce trebuie executate asupra operanzilor (obiectelor de date). Operatorii utilizaŃi în cadrul expresiilor FoxPro, se pot grupa după tipul acestora astfel:

- operatori aritmetici; - operatori relaŃionali (de comparaŃie); - operatori logici; - operatori de concatenare; - operatori pentru date de tip gestiune timp.

Separatori: aceştia se împart în două categorii distincte astfel: 1) separatori uzuali; care servesc la separarea a doi atomi lexicali şi pot

fi: spaŃiu, tab, retur de car şi avans de rând.

Page 21: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

21

2) comentariile; aceştia nu influenŃează execuŃia programului şi permit o înŃelegere mai bună a textului sursă.

2.1.4. Structura unui program FoxPro Structura unui program FoxPro se poate descrie astfel:

2.2. OBIECTE DE DATE ŞI TIPURI DE DATE FOLOSITE IN VISUAL FOXPRO

OBIECTIVE 1.Cunoaşterea principalelor obiecte de date oferite

utilizatorilor de limbaj (constante, câmpuri, variabile de memorie); 2.Cunoaşterea tipurilor de date folosite în cadrul limbajului

NOłIUNI CHEIE

- constante - câmpuri - variabile de memorie - tip numeric, alfanumeric, logic, gestiune timp, special

2.2.1. Obiecte de date Limbajul FoxPro pune la dispoziŃia utilizatorilor următoarele obiecte de date: constante, variabile şi matrice de variabile.

a) CONSTANTE; sunt date definite de utilizator care nu-şi schimbă valoarea în timpul execuŃiei comenzilor.

b) CÂMPURI; reprezintă componentele principale ale înregistrărilor de date sau blocurile constructive ale fişierelor .DBF. Ele stochează datele de prelucrat şi au caracter de permanenŃă, deci supravieŃuiesc pe durata execuŃiei oricărui program care se referă la fişierul respectiv.

Acest obiect de date se caracterizează prin următoarele atribute: - Nume (identificatorul obiectului). - Tip; - Valoare; - Lungime; c) Variabile de memorie. se caracterizează prin următoarele atribute: - Nume; - Tip; - Lungimea; - Durata de viaŃă; - Domeniul de vizibilitate;

In raport cu acest atribut variabilele de memorie pot fi de două feluri:

PROGRAM::=<text ASCII> ( 0 sau mai multe linii logice sau fizice) LINIE LOGICĂ::={linie fizică} (două sau mai multe)

Page 22: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

22

1. publice sau globale; 2. private sau locale.

2.2.2.Tipuri de date folosite în Visual FoxPro In Visual FoxPro sunt implementate următoarele tipuri de date:

d) tipul numeric; e) tipul alfanumeric; f) tipul logic; g) tipul pentru gestiune timp; h) tipul special.

2.3. SINTAXA COMENZILOR VISUAL FOXPRO

OBIECTIVE 1. Inserarea modului de folosire a clauzelor de domeniu şi a

opŃiunilor de tip filtru din structura comenzilor FoxPro 2. Cunoaşterea metalimbajului folosit la definiŃia formatului

general al unei comenzi NOłIUNI CHEIE

- clauze domeniu - filtru global - filtru local

2.3.1. Elemente de metalimbaj Regulile sintactice prin care se stabileşte dacă o anumită construcŃie este corect alcătuită 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 reprezentând o formă extinsă a limbajului BNF. Metalimbajul conŃine un ansamblu de simboluri (metasimboluri) şi de reguli de descriere. Forma în care se prezintă o construcŃie de bază (instrucŃiune), utilizând metasimboluri, elemente terminale şi neterminale, reprezintă formatul general sau sintaxa generală a construcŃiei respective.

2.3.2. Sintaxa comenzilor Visual FoxPro 2.3.2.1. Structura şi caracteristicile comenzilor FoxPro

Comenzile FoxPro au ca rezultat imediat o acŃiune. Ele pot acŃiona asupra: unui fişier sau unui câmp dintr-un fişier 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 următoarea semnificaŃie:

Page 23: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

23

1. RECORD<expN>; indică faptul că respectiva comandă acŃionează asupra articolului (înregistrării) cu numărul de secvenŃă definit de valoarea lui <expN>.

2. NEXT<expN>; indică faptul că respectiva comandă acŃionează asupra următoarelor articole începând cu articolul curent, în ordinea dată de index şi respectând filtrul curent, până la un număr total de înregistrări egal cu valoarea <expN>.

3. ALL; indică faptul că respectiva comandă acŃionează asupra tuturor înregistrărilor din fişierul curent, respectând filtrele în curs. Ea reprezintă pentru majoritatea comenzilor clauza implicită.

4. REST; indică faptul că respectiva comandă acŃionează asupra înregistrărilor cuprinse între înregistrarea curentă şi sfârşitul fişierului activ.

OpŃiunile FOR şi WHILE au următoarea semnificaŃie:

FOR<expL>; este un filtru global, adică se aplică tuturor articolelor din domeniul selectat, tratându-le pe cele pentru care condiŃia specificată prin <expL> este adevărată. WHILE<expL>; este un filtru local, adică se aplică numai articolelor succesive din domeniul selectat, începând cu articolul curent, cât timp condiŃia specificată prin <expL> este adevărată. REZUMAT - Un program FoxPro este alcătuit din şiruri de

caractere sau construcŃii şi separatori. ConstrucŃiile limbajului se pot împărŃi în două categorii: - construcŃii simple; - construcŃii compuse.

ConstrucŃiile simple, reprezintă cea mai mică unitate lexicală cu înŃeles de sine stătător, numite şi atomi lexicale. Există următoarele categorii de atomi lexicali sau de construcŃii simple:

1. identificatori (cuvinte); 2. literali; 3. simboluri speciale.

care formează împreună vocabularul sau lexicul limbajului. A doua grupă de construcŃii, alături de construcŃiile simple, o reprezintă construcŃiile compuse, numite şi categorii sintactice de bază obŃinute prin agregarea succesivă a construcŃiilor simple conform unor reguli sintactice. La nivelul limbajului FoxPro din această grupă fac parte următoarele categorii sintactice:

Page 24: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

24

1. instrucŃiuni; 2. funcŃii; 3. expresii.

Limbajul FoxPro pune la dispoziŃia utilizatorilor următoarele obiecte de date: constante, variabile şi matrice de variabile. Variabilele la rândul lor sunt de două tipuri şi anume: câmpuri din fişiere .DBF şi variabile de memorie (memory variables sau memvars).

i) tipul special. Cele patru clauze-domeniu au următoarea semnificaŃie:

• RECORD<expN>; indică faptul că respectiva comandă acŃionează asupra articolului (înregistrării) cu numărul de secvenŃă definit de valoarea lui <expN>.

• NEXT<expN>; indică faptul că respectiva comandă acŃionează asupra următoarelor articole începând cu articolul curent, în ordinea dată de index şi respectând filtrul curent, până la un număr total de înregistrări egal cu valoarea <expN>.

• ALL; indică faptul că respectiva comandă acŃionează asupra tuturor înregistrărilor din fişierul curent, respectând filtrele în curs. Ea reprezintă pentru majoritatea comenzilor clauza implicită.

• REST; indică faptul că respectiva comandă acŃionează asupra înregistrărilor cuprinse între înregistrarea curentă şi sfârşitul fişierului activ.

TEME DE CONTROL

1. Să se dea exemplu de: cuvinte utilizator şi literale numerice şi alfanumerice 2. Să se construiască expresii FoxPro folosind toate tipurile de operatori (aritmetici, relaŃionali şi logici)

BIBLIOGRAFIE 1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, pg. 91-110. 2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 143-159. 3.Gabriel Dima, Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora ,Bucuresti,1999,pag . 51-155 4.Marin Fotache, Ioan Brava, Cătălin Strâmbei, Liviu CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor profesionale,

Page 25: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

25

Editura Polirom Iaşi, 2002, pag. 19-48. 5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea aplicaŃiilor cu baze de date în Visual FoxPro, Editura All, Bucureşti, 2001, pag. 35-36.

Page 26: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

26

2.4. INTRODUCERE ÎN VISUAL FOX PRO

OBIECTIVE 1.Descrierea principalelor caracteristici ale Visual

FoxPro, ca mediu integrat, obiectual şi vizual de dezvoltare de aplicaŃii; 2.Însuşirea lansării şi terminării unei sesiuni Visual FoxPro; 3.Familiarizarea cu mediul FoxPro; 4.Principalele moduri de lucru în Visual FoxPro; 1. Familiarizarea cu opŃiunile din meniul principal sau

caseta de control şi rolurile acestor opŃiuni 2. Familiarizarea cu gestiunea ferestrelor şi a obiectelor

de control; NOłIUNI CHEIE Visual FoxPro, mediu de dezvoltare;

Sesiune Visual FoxPro; moduri de lansare şi terminare; Componentele mediului; Modurile de lucru în mediu; OpŃiunile meniului principal; OpŃiunile casetei de control; Tipuri de ferestre şi caracteristicile lor; Obiecte de control;

2.4.1. Perspectiva cronologică şi caracteristici generale ale SGBD Visual FoxPro

Visual FoxPro este continuatoare FoxPro care derivǎ din dBase şi clonele

acesteia xBase.

A apărut în 1995 sub denumirea Visual FoxPro 3.0, şi a evoluat către un

limbaj mediu de dezvoltare vizual, orientat pe obiecte, aducând SGBD FoxPro

la nivelul celor mai moderne medii de dezvoltare.

1. Se bazează pe modelul programării orientate pe obiecte (POO - Programming Oriented Object) şi a programării conduse de evenimente. Ca urmare, elementul de bază cu care lucrează este obiectul (fereastră, buton de comandă, relaŃie între tabele etc.). In acest context, un program în Visual FoxPro include o serie de definiŃii de date (proprietăŃi) şi de algoritmi de prelucrare a acestora (metode, proceduri). Metodele asociate unui obiect sunt executate fie printr-o comandă explicită a utilizatorului, fie la apariŃia unor evenimente.

Page 27: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

27

2. Ca tehnici sau instrumente de programare, mediul Visual FoxPro foloseşte programarea vizuală şi tehnici de proiectare vizuală. Aceasta permite utilizatorului ca, prin folosirea unor obiecte vizuale sau a unor asistenŃi de tipul Form Wizard, Graph Wizard, Report Wizard etc., să selecteze în mod interactiv opŃiuni din program şi să fie generate automat programele corespunzătoare.

3. Este un mediu integrat de programare sub Windows. Ca urmare, el include un gestionar al aplicaŃiilor create în FoxPro, numit PROJECT MANAGER, care urmăreşte activitatea de elaborare a aplicaŃiilor şi pune la dispoziŃia utilizatorilor uneltele necesare efectuării acestor operaŃii, cum ar fi: generatoare (Designers), constructori (Builders) şi asistenŃi speciali (Wizards), fiecare având un anumit domeniu de utilizare.

4. Este un sistem relaŃional de gestiune a bazelor de date, asigurând crearea de relaŃii statice între tabelele din baza de date.

5. Permite interogări şi vizualizări ale datelor aflate pe un server la distanŃă, asigurând astfel crearea aplicaŃiilor client-server, precum şi trecerea la sistemele tranzacŃionale reale.

În 2003 a apărut pe piaŃă Visual FoxPro 8.0. Extensiile acestei versiuni sunt multiple şi pot fi urmărite în Help-ul sistemului la marcatorul What’s New in Visual FoxPro 8.0. Sunt modificări esenŃiale:

• legate de IDE asigurând, printre altele, accesul la serviciile XML; • modificări în limbaj prin extinderea accesului la date la distanŃă şi

alte îmbunătăŃiri referitoare la date, legate de SQL şi motorul de baze de date, precum şi un număr considerabil de cuvinte rezervate noi;

• extensii ale editoarelor, etc.

2.4.2. Lansarea în execuŃie şi terminarea unei sesiuni Visual FoxPro

Lansarea sistemului Visual FoxPro din acest director se poate face analog cu lansarea oricărui program în Windows, în unul dintre următoarele moduri:

1. prin selectarea opŃiunii PROGRAMS din meniul START şi apoi a opŃiunii Microsoft Visual FoxPro 8.0;

2. prin efectuarea unui dublu clic pe pictograma aferentă programului Visual FoxPro 8.0, dacă pictograma este vizibilă pe ecran;

3. prin selectarea din fereastra Explorer a directorului care conŃine Microsoft Visual FoxPro 8 (de regulă Program Files) şi apoi, din lista apărută sau din fereastră se selectează opŃiunea sau pictograma Launch Microsoft Visual Foxpro 8.0;

4. prin introducerea în caseta de dialog Run din meniul Start a cǎii complete a programului Visual FoxPro 8.

Page 28: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

28

Terminarea unei sesiuni de lucru în Visual FoxPro se poate realiza în unul

din următoarele moduri:

• prin tastarea comenzii QUIT în fereastra de comandă; • prin selectarea opŃiunii EXIT (ALT+F4) din meniul FILE; • prin selectarea opŃiunii CLOSE din caseta meniului de control a

ferestrei principale Visual FoxPro 8; • prin folosirea butonului CLOSE din meniul principal. 2.4.3. Mediul Visual FoxPro 8.0

2.4.3.1. Fereastra principală (iniŃială)

După lansarea Visual FoxPro, pe ecran este afişată fereastra principală.

1. Bara de titlu (Title Bar); conŃine numele aplicaŃiei, respectiv Microsoft Visual FoxPro, aliniat la stânga, având î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 SpaŃiu, apare meniul de control vertical, uzual pentru aplicaŃiile Windows. De asemenea, în dreapta apar cele 3 butoane uzuale (de minimizare, zoom şi închidere a ferestrei).

2. Bara meniului principal (Menu bar), include la lansare următoarele opŃiuni: File, Edit, View, Format, Tools, Program, Window şi Help. Fiecare opŃiune din bara meniului principal (sistem) afişează un submeniu vertical atunci când se execută un click pe opŃiunea respectivă

3. Bara cu instrumente standard (Standard Toolbar). Ea conŃine 20 butoane (casete cu pictograme) şi o casetă derulantă. Trebuie să subliniem că ultimele două butoane au fost introduse în versiunea 8.0 şi nu existau în 7.0. Prin poziŃionarea mouse-ului pe orice pictogramă din bara cu instrumente, sub pictograma selectată apare afişat (într-o casetă) numele opŃiunii aferente pictogramei respective. După cum este cunoscut în Windows pot fi folosite meniuri rapide. Meniul rapid pentru Visual FoxPro 8.0 se poate lansa simplu prin executarea unui click cu butonul din dreapta pe bara de instrumente. Va apare meniul în care se regăsesc câte o opŃiune pentru principalele programe de proiectare automată a tabelelor, formelor, rapoartelor etc., dar şi alte opŃiuni.

4. Fereastra de comandă - este porŃiunea de pe ecran încadrată de un dreptunghi, având numele COMMAND şi permite introducerea directă de comenzi prin tastare. Este prevăzută cu butonul de close cu barele de derulare orizontală şi verticală.

Page 29: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

29

5. SuprafaŃa de lucru - reprezintă zona din cadrul ferestrei principale în care se afişează rezultatul execuŃiei comenzilor introduse de utilizator. O parte din ea este acoperită de fereastra de comandă.

6. Cursorul – este un simbol grafic, care pâlpâie şi indică poziŃia de pe ecran în care se poate introduce următorul caracter. La lansarea sistemului, cursorul apare în fereastra de comandă, pe prima linie.

7. Bara de stare (Status Bar) - indică contextul în care ne găsim la un moment dat, afişând o serie de informaŃii 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 afişează următoarele informaŃii: • numele tabelei; • numele bazei de date din care face parte tabela, inclusă în paranteze; • numărul înregistrării curente a tabelei; • numărul total de înregistrări a tabelei; • starea curentă de partajare a fişierului deschis (a tabelei), prin una din

următoarele opŃiuni: Exclusive, Record Unlocked, Record Locked, File Locked.

Zona casetelor indicatoare conŃine trei sau patru casete indicatoare cu următoarea semnificaŃie: • prima casetă indică starea tastei INS. Ea este goală, atunci când

editorul Fox se află în mod inserare, sau conŃine literele OVR, indicând modul de suprascriere;

• următoarea casetă afişează NUM dacă tasta NumLock este activă;

• a treia casetă afişează CAPS dacă tasta CapsLock este activă; • ultima casetă (opŃional) conŃine ora curentă. 2.4.3.2. Moduri de lucru

Utilizatorul are la dispoziŃie mai multe moduri de lucru, în funcŃie de

nivelul său, scopul urmărit etc. 1. Modul de lucru interactiv prin comenzi (imediat, conversaŃional 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 prezenŃa 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 opŃiunile meniului principal, fie cu tastatura, prin acŃionarea tastei F10 sau ALT prin care se selectează prima opŃiune din meniul sistem (File). Revenirea în fereastra de comandă se face prin acŃionarea tastelor F10, ALT sau ESC, având ca efect deselectarea opŃiunii active din meniul sistem şi apariŃia

Page 30: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

30

cursorului în fereastra de comandă. Dacă se utilizează mouse-ul, se poziŃionează cursorul acestuia în fereastra de comandă şi se execută un click.

2.4.3.3. Meniul sistem şi submeniuri

Meniul sistem sau bara meniului principal se afişează în fereastra principală a

mediului Visual FoxPro, sub bara de titlu şi se compune din următoarele

elemente:

1. bara de meniuri (menu bar); 2. opŃiuni din bară (menu pads); 3. meniuri derulante (submeniuri verticale - menu popups); 4. opŃiuni din meniu (menu options). 2.4.3.3.1. Rolul opŃiunilor din meniul principal Principalele meniuri şi submeniurile lor sunt: 1. Meniul FILE - Acest meniu conŃine comenzi pentru operaŃii cu

fişiere, cum ar fi: creare, deschidere, salvare, tipărire etc., cât şi comanda de ieşire (părăsire) din sistemul Visual FoxPro. Cele mai multe din aceste opŃiuni se regăsesc şi pe bara de instrumente standard. In plus, apar opŃiunile Import şi Export, care asigură importul, respectiv exportul de date în/din Visual FoxPro din/în alte aplicaŃii.

2. Meniul EDIT - Acest meniu conŃine opŃiuni referitoare la editarea programelor, formelor sau rapoartelor, cât şi comenzi pentru crearea obiectelor OLE (Object Linking and Embedding). La fel ca şi în cazul meniului File, o mare parte din aceste opŃiuni le găsim pe bara de instrumente standard (Cut, Copy, Paste, Undo, Redo), fiind destinate lucrului în mod text.

3. Meniul View - Acest meniu conŃine comenzi pentru vizualizarea tabelului curent în mod Edit sau Browse, pentru adăugarea automată de noi înregistrări la sfârşitul fişierului (opŃiunea Append Mode) sau pentru modificarea structurii unei tabele (opŃiunea Table Designer), iar prin selectarea opŃiunii Database Designer se afişează într-o fereastră fişierele din baza de date curentă cu structura lor (denumirea câmpurilor).

4. Meniul Format - Acest meniu conŃine comenzi pentru formatarea textului aferent unui program, pentru identarea (alinierea) textului, selectarea fontului dorit, etc. In momentul folosirii anumitor generatoare sunt disponibile diverse comenzi suplimentare.

Page 31: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

31

5. Meniul Tools - Acest meniu conŃine diverse instrumente de programare folosite pentru efectuarea anumitor acŃiuni asupra datelor şi codului sursă. Cele mai importante instrumente sunt cele de tip Wizard, folosite pentru crearea rapidă de tabele, forme, rapoarte, etc. Un asistent sau vrăjitor (Wizard) este un program care îndrumă utilizatorul pe parcursul efectuării unor operaŃii sau a unor componente ale unei aplicaŃii în curs de proiectare. El afişează o serie de ferestre cu întrebări referitoare la obiectul ce urmează a fi creat, întrebări care se referă în principal la datele ce urmează a fi prelucrate, la felul în care va arăta componenta creată etc. Pentru fiecare componentă a unei aplicaŃii (formulare, tabele, rapoarte, baze de date, etc.) există câte o opŃiune a unui submeniu ataşat opŃiunii Wizard.

6. Meniul Program - Acest meniu conŃine opŃiuni referitoare la rularea şi compilarea unui program.

7. Meniul Window - Acest meniu conŃine opŃiuni pentru gestiunea ferestrelor afişate pe ecran şi a sesiunii de date.

8. Meniul Help - Acest meniu include în primul rând opŃiuni care permit accesarea fişierului de asistenŃă, care conŃine informaŃii referitoare la comenzi şi funcŃii ale sistemului Visual Fox Pro.

2.4.3.4. Caseta de control a ferestrelor în Visual FoxPro

Dată fiind importanŃa ferestrelor în FoxPro, acestea sunt gestionate prin intermediul opŃiunilor din caseta de control a ferestrei sau al opŃiunilor din meniul Window. Caseta sau meniul de control al unei ferestre conŃine comenzi (opŃiuni) 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 ieşire din mediul FoxPro.

2.4.3.4.1. Aspecte privind gestiunea ferestrelor în Visual FoxPro

O altă componentă a interfeŃei Visual FoxPro, alături de meniuri, este reprezentată de ferestre. O fereastră este o porŃiune dreptunghiulară a ecranului cu proprietăŃi specifice (coordonate, caracteristici grafice, de colorare, etc.), prin care FoxPro comunică cu utilizatorul.

Pe ecran se pot afişa sau deschide simultan mai multe ferestre, care se

acoperă sau nu între ele, după cum s-a văzut în cazul opŃiunii Window. Dintre acestea, la un moment dat una singură este activă, cea care conŃine cursorul sau ultima deschisă. Chenarul ei are de regulă o culoare mai pronunŃată. Prin activare, o fereastră este adusă în prim plan, şi toate ieşirile sunt dirijate spre

Page 32: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

32

fereastra respectivă. Ea rămâne activă până când este dezactivată sau este activată o altă fereastră.

Ieşirea dintr-o fereastră sistem se poate realiza prin: acŃionarea 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 ieşirile 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). Afişarea acestei ferestre se poate realiza în mai multe moduri: prin selectarea opŃiunii Command Window din meniul Window, prin acŃionarea tastelor CTRL+F2, sau prin acŃionarea butonului aferent de pe bara cu instrumente standard.

2.4.3.5. Obiecte de control

• Comunicarea dintre sistem şi utilizator se realizează în cea mai mare parte prin intermediul obiectelor de control. Acestea apar atât în cadrul ferestrelor sistem cât şi utilizator, fiind utilizate pentru diferite scopuri.

Principalele obiecte utilizate în cadrul mediului Visual FoxPro sunt

următoarele: 1. COMMAND BUTTON- buton de comandă sau comutator

2. OPTION BUTTON - buton de opŃiuni, sau butoane radio 3. CHECK BOX - casetă sau buton de validare sau selecŃie 4. TEXT BOX - casetă sau chenar de text 5. EDIT BOX - casetă sau chenar de editare 6. LABEL - etichetă 7. SPINNER - casetă de modificare valorică 8. COMBO BOX - listă derulantă combinată 9. LIST BOX - listă derulantă simplă 10. PAGE FRAME - cadru de pagină sau pagină 11. GRID - grilă sau caroiaj 12. TIMER - ceasul 13. TOOLBAR - bare de instrumente sau de utilitare

Principalele caracteristici ale obiectelor de control sunt următoarele:

Page 33: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

33

1) obiectele se pot indica fie prin mutarea cursorului mouse-ului pe ele, fie prin mutarea barei de selecŃie cu ajutorul tastaturii; în acest ultim caz deplasarea între obiectele de control în cadrul unei ferestre sau casete de dialog se realizează cu ajutorul tastei TAB, pentru deplasarea în direcŃia acelor de ceasornic, sau cu ajutorul tastelor SHIFT+TAB, pentru deplasarea în sens invers;

2) selectarea unui obiect se poate face prin acŃionarea tastei ENTER, după poziŃionarea pe obiect, sau prin execuŃia unui click cu mouse-ul, în momentul în care cursorul mouse-ului este poziŃionat pe obiect;

3) unele obiecte, aşa după cum s-a văzut şi în cazul opŃiunilor, au asociată o casetă de dialog care este vizualizată atunci când se selectează obiectul; numele acestor obiecte este urmat de puncte de suspensie "…" (trei puncte);

4) pentru majoritatea obiectelor de control există chei rapide (hot keys) care permit o alegere rapidă a obiectului dorit, reprezentate printr-o literă din denumirea obiectului, care apare de obicei subliniată.

REZUMAT Modulul are în componenŃă ouă unităŃi. Prima unitate este destinatǎ studiului mediului Visual FoxPro, ca mediu integrat, obiectual şi vizual de dezvoltare de aplicaŃii. Dintre problemele tratate amintim:

• lansarea şi terminarea unei sesiuni; • componenŃa mediului Visual FoxPro; • moduri de lucru în Visual FoxPro; • opŃiunile din meniul principal şi din caseta de

control; • gestiunea ferestrelor şi a obiectelor de control.

TEME CONTROL

1. Efectuarea unor operaŃii uzuale cu mediul Visual FoxPro;

2. Elaborarea unui memento recapitulative; 3. Cunoaşterea elementelor lexicale şi sintactice ale

limbajului VFP. 4. Prezentarea obiectivelor de date şi a tipurilor de date

utilizate în cadrul programelor Fox. 5. Prezentarea sintaxei comenzilor FoxPro şi a elementelor

de metalimbaj BIBLIOGRAFIE 1. R.Avram-NiŃchi, N.Ghişoiu, S.Goron, S.I.NiŃchi,

N.Tomai, Baze de date şi programarea calculatoarelor utilizând Visual FoxPro, Risoprint, 2003, p. 47-89.

2. Avram-NiŃchi R., S.I.NiŃchi şi alŃii, Culegere de exerciŃii

Page 34: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

34

şi probleme la disciplina « Baze de date şi programarea calculatoarelor, UBB Preprint, Cluj, 2003.

3. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 101-127.

4. Dima G, Dima M., Visual FoxPro 7.0, Teora 2002. 5. M. Fotache şi alŃii, Visual FoxPro, Polirom, 2002. 6. Ghişoiu N., Visual FoxPro; exerciŃii şi programe,

Risoprint, 2002. 7. Homorodean M.A, Petrescu S, Limbajul de programare

Visual FoxPro 6.0, Niculescu, 2002. 8. *** , Microsoft Visual FoxPro 6.0: Ghidul

programatorului, Teora, 2001. 9. http://msdn.microsoft.com/vfoxpro 10. http://gotdotnet.com/team/vfp

Page 35: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

35

3. CREAREA ŞI GESTIUNEA TABELELOR LIBERE ÎN VISUAL FOXPRO

CONCEPTE DE BAZĂ

1. Crearea, modificarea şi listarea structurii tabelelor; 2. Validarea datelor din cadrul unui tabel la nivel de câmp

şi înregistrare; 3. Deschiderea şi închiderea tabelelor; 4. Încărcarea tabelelor cu date şi listarea conŃinutului

acestora; 5. Modificarea conŃinutului unui tabel; 6. Ştergerea înregistrărilor din cadrul unui tabel

OBIECTIVE 1. Cunoaşterea modului de creare şi modificare a structurii tabelelor în Visual FoxPro ;

2. Asimilarea tehnicilor de încărcare a tabelelor cu date şi de actualizare a datelor din tabelele respective;

RECOMANDĂRI PRIVIND STUDIUL

1. Se vor studia în continuare operaŃiile de gestiune cu tabele libere: creare, deschidere, închidere, adăugarea sau eliminarea unei baze de date din proiect, adăugare, eliminare tabele din baza de date, indexarea înregistrărilor unui tabel;

2. Pentru însuşirea lucrului cu tabelele se vor studia tehnicile de creare a structurii tabelelor şi de încărcare a tabelelor cu date, de actualizare a datelor şi de definire a relaŃiilor dintre tabele.

REZULTATE AŞTEPTATE

1. însuşirea tehnicilor de creare a structurii tabelelor, de încărcare a acestora cu date şi de actualizare a datelor din tabel;

2. cunoaşterea procedurilor de indexare a tabelelor şi a tipurilor de indecşi utilizaŃi în Visual FoxPro.

Page 36: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

36

3.1. LUCRUL CU TABELELE LIBERE IN VISUAL FOXPRO

OBIECTIVE 1. Crearea, modificarea şi listarea structurii tabelelor în Visual FoxPro;

2. Deschiderea şi închiderea tabelelor; 3. Încărcarea tabelelor cu date şi listarea conŃinutului

acestora; 4. Modificarea conŃinutului unui tabel; 5. Ştergerea înregistrărilor din cadrul unui tabel; 6. Accesul la înregistrările unui tabel; 7. Ordonarea înregistrărilor unui tabel.

CUVINTE CHEIE

Structură tabel Zone de lucru Alias tabel Indicatori de înregistrări Indexare Sortare.

3.1.1. Crearea, modificarea şi listarea structurii tabelelor în Visual FoxPro

3.1.1.1. Crearea unui nou tabel Tabelele reprezintă componentele de bază din cadrul aplicaŃiilor în Visual FoxPro. O tabelă sau fişier .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. Pentru a folosi o tabelă, ea trebuie, mai întâi, creată, aceasta însemnând definirea structurii acesteia şi apoi încărcarea cu date. Crearea unei noi tabele în Visual FoxPro se poate realiza în unul din următoarele moduri:

1. In mod interactiv, folosind generatorul de tabele Table Designer sau Table Wizard;

2. Prin comenzi ale limbajului Visual FoxPro.

3.1.1.2. Crearea unui nou tabel prin folosirea generatorului de tabele (Table Designer) Lansarea generatorului sau proiectantului de tabele se poate realiza în

unul din următoarele moduri: 1. Prin intermediul ferestrei Project Manager. 2. Prin selectarea opŃiunii New din meniul File sau a pictogramei New

de pe bara de instrumente standard. 3. Prin utilizarea asistentului Wizard

Page 37: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

37

3.1.1.3. Crearea unui nou tabel prin utilizarea ferestrei Project Manager După afişarea pe ecran a ferestrei Project Manager, se selectează pagina Data şi se execută un clic pe simbolul + de la secŃiunea Databases, având ca efect afişarea, în cadrul secŃiunii respective, a bazelor de date conŃinute în proiect. In continuare, se va executa clic pe semnul din faŃa bazei de date în care dorim să includem noul tabel. Ca urmare, se vor afişa elementele incluse în baza de date, dintre care se va selecta elementul Tables. După selectarea uneia dintre cele două elemente: Tables sau Free Tables, se acŃionează butonul New, prin care se afişează, pe ecran, fereastra de dialog New Table. Din cadrul casetei New Table se va selecta butonul New Table dacă dorim să creem singuri structura noului tabel sau butonul Table Wizard dacă dorim să creem structura noului tabel cu ajutorul unui asistent Wizard. In fereastra Create se precizează directorul în care se va salva noua tabelă şi se introduce numele tabelei. In final, se execută clic pe butonul Save având ca efect deschiderea ferestrei aferente constructorului de tabele (table Designer). Această fereastră conŃine un obiect de tip cadru de pagină cu trei pagini având etichetele: Fields, Indexes şi Table, fiind activată implicit prima pagină, unde se va introduce structura noului tabel. Cea mai mare parte a ferestrei aferente paginii Fields este ocupată de un dreptunghi plasat în stânga ferestrei în care se introduce structura noului fişier. Acest dreptunghi conŃine şapte coloane dintre care prima nu are nume, fiind utilizată pentru ştergerea sau inserarea unei noi linii sau schimbarea ordinii câmpurilor în cadrul structurii. Celelalte coloane au următoarele denumiri: Name, Type, Width, Decimal, Index, NULL şi permit specificarea caracteristicilor unui câmp din structura noului fişier. După introducerea câmpurilor aferente noii structuri, crearea unor indecşi şi eventual introducerea în partea de jos a ferestrei Table Designer se selectează butonul OK, prin care se salvează noua structură şi se părăseşte fereastra Table Designer, iar pe ecran apare o casetă de dialog, prin care se întreabă dacă se introduc sau nu date în noul fişier.

După introducerea datelor aferente unei înregistrări se afişează macheta pentru următoarea înregistrare. Salvarea datelor se realizează prin acŃionarea tastelor CTRL+W sau CTRL+END pe primul câmp al unui articol vid. Tabelul astfel obŃinut rămâne activ în zona curentă.

3.1.1.4. Crearea unui nou tabel prin selectarea opŃiunii New din meniul File

Page 38: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

38

La selectarea opŃiunii New din meniul File sau de pe bara de instrumente standard pe ecran se deschide fereastra New din care se selectează butonul de opŃiuni Table indicându-se astfel că se doreşte crearea unui nou tabel, după care se acŃionează butonul New File având ca efect afişarea pe ecran a ferestrei Create. In continuare se parcurg aceleaşi etape ca şi în cazul folosirii constructorului de proiecte (Project Manager).

3.1.1.5. Crearea unui nou tabel prin folosirea asistentului Wizard

In cazul selectării din fereastra New Table a butonului Table Wizard sau selectării din fereastra New a opŃiunii Wizard are loc crearea structurii noului tabel cu ajutorul asistentului Wizard. Crearea tabelului are loc în 6 etape, pentru fiecare etapă afişându-se pe ecran o fereastră cu conŃinutul etapei fiecare fereastră aferentă unei etape conŃine în partea de jos butoanele Next şi Back pentru trecerea la etapa următoare sau revenire la cea anterioară şi un buton Finish care permite încheierea operaŃiei de crearea a structurii. 3.1.2. 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 obŃinerea structurii unui nou tabel.

1. Comanda CREATE; aceasta este o comandă menŃinută din versiunea clasică şi permite crearea în mod conversaŃional a structurii unui tabel şi eventual încărcarea 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 opŃiunilor cuprinse în comandă. Dacă noul tabel a cărui structură se creează va fi asociat unei baze de date, se deschide mai întâi baza de date respectivă şi apoi se creează tabelul. Dacă dorim în schimb să creem un tabel liber va trebui să menŃionăm în comanda CREATE opŃiunea FREE. Dacă nu este deschisă nici o bază de date, comanda va crea automat un tabel liber, fără să mai menŃionăm în cadrul comenzii opŃiunea FREE.

3.1.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 fişier intermediar sau dintr-un masiv. In acest sens se folosesc următoarele comenzi:

Page 39: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

39

a. Comanda COPY STRUCTURE

ExecuŃia acestei comenzi permite copierea parŃială sau totală a structurii unui tabel de date activ într-un nou tabel. Sintaxa comenzii este următoarea:

b. Comanda CREATE FROM

ExecuŃia acestei comenzi permite crearea unui nou fişier, prin copierea structurii sale dintr-un fişier intermediar în care se încarcă structura de copiat. Comanda permite în acelaşi timp şi editarea structurii existente înainte de obŃinerea noii structuri. Formatul general al comenzii este următorul:

unde: <fişier 1> este numele fişierului care va fi creat. Acesta preia înregistrările de

date din <fişier 2> pentru crearea structurii sale. După execuŃia comenzii CREATE noua bază de date devine activă.

<fişier 2> este numele fişierului intermediar sau sursă, numit şi fişier cu structură extinsă. Dacă nu se specifică nici unul din cele două fişiere se va deschide o fereastră de dialog din care se selectează fişierele folosite în comandă.

Fişierul cu structură extinsă se obŃine prin utilizarea comenzii COPY STRUCTURE EXTENDED cu următoarea sintaxă: 3.1.4. FuncŃii privind structura tabelelor bazei de date Pentru a avea acces la informaŃiile din structura unui fişier al bazei de date se folosesc următoarele funcŃii:

COPY STRUCTURE TO <nume-fişier> [FIELDS<listă-de-câmpuri>| FIELDS LIKEMşablon1>| FIELDS EXCEPT<şablon2>| [[WITH] CDX | [WITH] PRODUCTION]

CREATE[<fişier 1>] FROM [<fişier 2>]

COPY STRUCTURE EXTENDED TO <nume-fişier> [FILEDS<listă-de-câmpuri>| FILEDS LIKE <şablon 1>| FILEDS EXCEPT<şablon 2>]

Page 40: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

40

1. FuncŃia RECCOUNT( ) - returnează numărul de înregistrări din cadrul fişierului deschis în zona de lucru specificată prin parametrii <expN> sau <expC>.

2. FuncŃia LUPDATE( ) - returnează data ultimei actualizări pentru fişierul specificat. Cei doi parametri ai funcŃiei se referă de asemenea la zona de lucru în care este deschis fişierul.

3. FuncŃia RECSIZE( ) - returnează lungimea unei înregistrări din cadrul fişierului specificat şi are aceeaşi sintaxă cu funcŃia RECCOUNT(). Dacă nu este deschis nici un fişier în zona specificată, funcŃia returnează valoarea zero.

4. FuncŃia FCOUNT() - returnează numărul de câmpuri din stsructura fişierului specificat şi are aceeaşi sintaxă cu funcŃiile precedente. Dacă nu este deschis nici un fişier în zona specificată, funcŃia returnează valoarea zero.

5 FuncŃia FIELDS() - returnează un şir de caractere reprezentând numele unui câmp din structura fişierului specificat, scris cu majuscule. Câmpul este identificat prin poziŃia sa în înregistrarea de structură

6. FuncŃia FSIZE() - returnează mărimea unui câmp din structura fişierului specificat.

7. FuncŃia TYPE() - returnează tipul unui câmp din structura fişierului specificat şi are aceeaşi

sintaxă cu funcŃia FSIZE().

Page 41: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

41

3.1.5. Modificarea şi vizualizarea structurii unui tabel După crearea unui tabel, utilizatorul poate modifica structura şi proprietăŃile acestora prin: adăugarea, modificarea sau ştergerea numelui şi caracteristicilor unui câmp sau proprietăŃilor acestuia: valori implicite, chei, reguli de validare, etc. Modificarea structurii unui tabel se poate realiza în unul din următoarele 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 cărei structură se modifică şi apoi se acŃionează butonul Modify… . Ca efect pe ecran apare fereastra Tabel Designer în care se pot face modificările dorite. Constructorul de tabele se mai poate lansa şi prin selectarea opŃiunii Modify din meniul Database. In acest scop se deschide mai întâi fereastra Database Designer şi din fereastra respectivă se va selecta tabelul a cărui structură se modifică, după care se selectează opŃiunea Modify din Database. Ca şi în primul caz, pe ecran apare fereastra Table Designer conŃinând structura tabelului selectat anterior. Modificările care se pot face referitor la stsructura tabelului activ se referă la:

- adăugarea sau eliminarea unor câmpuri (linii) din structura existentă;

- redenumirea unor câmpuri (schimbarea numelui acestora); - schimbarea ordinii câmpurilor în structură; - schimbarea dimensiunii sau tipului unor câmpuri; - schimbarea proprietăŃilor unui câmp (valori implicite, reguli de

validare, comentarii etc.). - adăgarea, modificarea sau ştergerea unui index (tag).

După efectuarea modificărilor se acŃionează butonul OK prin care se solicită sistemului salvarea modificărilor efectuate. Sistemul Visual FoxPro afişează pe ecran o casetă de mesaj prin care se cere confirmarea modificărilor efectuate.

2. Modificarea structurii unui tabel prin comenzi Pentru modificarea structurii unui tabel se mai pot folosi comanda MODIFY STRUCTURE şi funcŃia DBSETPROP ( ).

Comanda MODIFY STRUCTURE

Page 42: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

42

Prin execuŃia acestei comenzi pe ecran se va afişa fereastra TABLE DESIGNER aferentă tabelului curent, în care se pot opera modificările dorite. După efectuarea modificărilor se va afişa pe ecran caseta de mesaj cu confirmarea modificărilor efectuate şi apoi se revine în fereastra de comenzi sau în programul care a lansat comanda MODIFY STRUCTURE.

3.1.6. Listarea structurii unui tabel

Pentru a vizualiza structura unui tabel din baza de date, se folosesc comenzile LIST sau DISPLAY cu următoarea sintaxă:

Cele două comenzi afişează structura tabelului deschis în zona de lucru curentă numele tabelului, numărul de înregistrări din tabel şi data ultimei actualizări. Structura include numele fiecărui câmp, tipul şi lungimea acestora şi numărul de zecimale pentru câmpurile numerice. Comanda DISPLAY este similară cu LIST cu deosebirea că aceasta afişează doar informaŃiile care încap pe un ecran sau într-o fereastră, după care se întrerupe afişarea iar într-o casetă apare mesajul "Press any key to continue…". In cazul comenzii LIST, informaŃiile privind structura tabelului specificat sunt afişate fără nici o pauză. 3.1.6.1. MenŃinerea integrităŃii 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 referenŃială pe de altă parte. Regulile de validare permit verificarea preluării datelor de intrare. Cu ajutorul lor se compară dacă valorile introduse în câmpurile unei înregistrări corespund cerinŃelor din cadrul expresiei de validare. Conceptul de integritate a datelor depăşeşte sfera integrităŃii la nivel de câmp şi înregistrare şi se extinde la nivelul relaŃiilor dintre tabele prin intermediul integrităŃii referenŃiale.

DISPLAY STRUCTURE [IN <zonă-lucru>] [TO PRINTER] [TO FILE<fişier>] [NOCONSOLE]

LIST STRUCTURE [IN <zonă-lucru>] [TO PRINTER] [TO FILE<fişier>] [NOCONSOLE]

Page 43: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

43

Integritatea referenŃială are ca obiectiv menŃinerea legăturilor dintre tabele şi permite efectuarea operaŃiilor de încărcare şi actualizare a datelor din baza de date astfel încât aceste legături să nu fie afectate. Bazele de date suportă reguli de validare la două niveluri: la nivel de câmp şi la nivel de înregistrare. Pentru a menŃine integritatea datelor din baza de date, regulile de validare se pot introduce atât la nivelul aplicaŃiilor (programelor) sau chiar în cadrul bazei de date prin intermediul procedurilor stocate. 3.1.6.2. Deschiderea şi închiderea tabelelor din baza de date

a. Zone de lucru Pentru a folosi un tabel al bazei de date, acesta trebuie mai întâi deschis sau activat. Această operaŃie se realizează într-o zonă, rezervată în memoria internă, în care se memorează informaŃii privind folosirea fişierului respectiv, numită zonă de lucru. Astfel în zona de lucru în care s-a deschis un fişier se memorează:

- înregistrarea de structură (antetul fişierului); - numărul înregistrării curente; - formatul fişierului; - relaŃiile dintre fişierele .DBF.

Tot în zona de lucru se creează zona tampon aferentă fişierului deschis în care se memorează prima înregistrare din fişier. FoxPro asigură 32767 de zone de lucru numerotate de la 1 la 32767, în care se pot deschide diferite fişiere. In fiecare zonă de lucru se poate deschide însă, un singur fişier. 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 fişierului deschis într-o anumită zonă de lucru.

b. Aliasul unui tabel La deschiderea unui tabel din baza de date, acestuia i se poate atribui un nume suplimentar faŃă de cel definit la creare, de către programator sau de către sistem, dacă programatorul nu a făcut acest lucru. Acest nume prin care tabelul poate fi ulterior identificat poartă denumirea de alias. Specificarea aliasului unui tabel se poate face în unul din următoarele moduri:

1. Prin intermediul clauzei Alias <nume-alias> din cadrul comenzii USE, la deschiderea tabelului.

2. De către sistem, dacă programatorul nu a specificat, în mod explicit, un alias în comanda USE. In acest caz, aliasul atribuit de sistem este format astfel:

Page 44: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

44

- din numele fişierului folosit în comanda USE; - din literele de la A la J pentru primele 10 zone de lucru sau din

caracterele W11 la W32767 pentru celelalte zone de lucru, dacă un fişier este deschis în mai multe zone de lucru.

Aliasul stabilit prin clauza ALIAS din comanda USE, trebuie să respecte regulile de formare a identificatorilor în FoxPro, respectiv să înceapă cu o literă, iar restul caracterelor să fie alfanumerice sau liniuŃa de subliniere.

c. Deschiderea tabelelor Pentru deschiderea unui tabel liber sau asociat unei baze de date se pot folosi următoarele variante:

1. Din fereastra Project Manager se selectează baza de date din care face parte tabelul şi se acŃionează butonul OPEN având ca efect deschiderea bazei de date respective.

2. De pe bara de instrumente standard se selectează pictograma care determină deschiderea unui obiect având ca efect apariŃia pe ecran a ferestrei OPEN. In cadrul ferestrei se selectează tipul de fişier (DBF) şi apoi din lista apărută numele fişierului. Numele fişierului se poate introduce şi direct în caseta NAME.

3. Prin utilizarea comenzii USE, în fereastra de comandă sau în program

Page 45: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

45

d. Comanda USE Comanda USE permite deschiderea sau activarea unui fişier DBF în zona de lucru curentă sau specificată în clauza IN. De asemenea, comanda poate îndeplini în acelaşi timp şi alte funcŃii cum ar fi: deschiderea fişierelor index şi stabilirea fişierului index principal sau atribuirea unui alias fişierului deschis etc.

e. Închiderea tabelelor

Pentru închiderea fişierelor asociate unei baze de date în fereastra Proiect Manager se selectează baza de date aferentă şi se acŃionează butonul Cose . Prin închiderea bazei de date se închid automat şi fişierele asociate. Dacă dorim să închidem numai o parte din fişierele deschise asociate unei baze de date sau libere, se va folosi şi fereastra Data Session. Din această fereastră se selectează fişierul ce urmează a fi închis şi se acŃionează butonul Close. OperaŃia se repetă pentru fiecare fişier ce urmează a fi închis. Inchiderea unui tabel se poate face şi prin folosirea comenzii USE fă nici un parametru, pentru a închide fişierul din zona curentă, sau cu parametrul IN <zona-lucru>, pentru a închide fişierul deschis în zona de lucru precizată în clauza IN.

3.1.6.3. FuncŃii privind zonele de lucru, tabelele deschise şi câmpurile aferente Pentru a obŃine informaŃii despre zonele de lucru şi tabelele deschise în zonele respective refolosesc funcŃiile USED() şi DBF(). 1. FuncŃia USED(); furnizează informaŃii referitoare la zona de lucru

specificată, în sensul dacă este liberă sau ocupată cu un tabel deschis în zona respectivă. FuncŃia returnează valoarea .T. (adevărat) dacă în zona de lucru specificată în cadrul funcŃiei există un tabel deschis şi .F. în caz contrar.

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]

Page 46: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

46

2. FuncŃia DBF(); specifică care anume tabel este deschis în zona de lucru curentă sau specificată. Sintaxa funcŃiei este la fel cu cea a funcŃiei USED(), iar cei doi parametrii au aceeaşi semnificaŃie ca şi în cazul funcŃiei USED().

FuncŃia returnează numele tabelului deschis în zona curentă sau specificată, inclusiv calea de acces. Dacă în zona specificată nu este deschis nici un tabel funcŃia returnează şirul vid.

3.1.6.4. Încărcarea tabelelor cu date şi listarea conŃinutului acestora

Încărcarea unui tabel cu date constă în adăugarea în cadrul fişierului aferent de înregistrări conŃinând datele necesare unei aplicaŃii. Această operaŃie se poate realiza imediat după crearea structurii unui tabel, în mod interactiv, prin preluarea datelor de la tastatură sau ulterior în funcŃie de necesităŃi. In general se preferă a doua variantă de încărcare a tabelelor din baza de date, deoarece în acest caz, datele se pot încărca fie prin preluare dintr-un alt tabel fie prin folosirea unui formular. De asemenea în funcŃie de poziŃia pe care o înregistrare o va ocupa în fişier, adăugarea se poate face la sfârşitul fişierului sau în interiorul acestuia, printre înregistrările existente.

a. Adăugarea de noi înregistrări la sfârşitul unui tabel prin meniul sistem

Principalul instrument folosit de Visual FoxPro pentru adăugarea de noi înregistrări în cadrul unui tabel, îl reprezintă fereastra Browse. Prin intermediul acestei ferestre se pot de asemenea modifica sau marca/demararea pentru ştergere anumite înregistrări sau se pot vizualiza înregistrările unui tabel. Pentru deschiderea ferestrei Browse şi adăugarea de noi înregistrări se pot folosi următoarele variante: Din fereastra Project Manager se selectează baza de date care conŃine tabelul sau tabelele ce urmează a fi încărcate. Se selectează apoi din secŃiunea Tables, tabelul în care se fac adăugările şi se acŃionează butonul Browse. Ca efect pe ecran apare fereastra Browse cu conŃinutul fişierului Pentru a adăuga o singură înregistrare vidă la sfârşitul ferestrei se selectează din meniul Table opŃiunea Append New Record sau se acŃionează tastele CTRL+Y. Datele aferente înregistrării vide se introduc în fiecare câmp prin tastare, trecerea la câmpul următor realizându-se cu ENTER. Pentru a adăuga un număr mare de înregistrări se va selecta opŃiunea Append Mode din meniul View, prin care se adaugă câte o înregistrare vidă după ultima înregistrare din fereastră. După introducerea unei înregistrări se poate acŃiona tasta cu săgeata în jos (în modul Browse) sau Enter (în modul Edit) pentru a adăuga o nouă înregistrare.

Page 47: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

47

După încărcarea acesteia cu date Visual FoxPro va adăuga o nouă înregistrare vidă pe ultima poziŃie din cadrul ferestrei şi va plasa cursorul pe înregistrarea respectivă. La terminarea operaŃiei de încărcare, datele introduse vor fi salvate pe disc în fişierul aferent. Dacă deschidem din nou fereastra Browse vom vedea înregistrările anterior adăugate.

b. Adăugarea de noi înregistrări prin comenzi ale limbajului Visual Foxpro; comanda APPEND Pentru adăugarea de noi înregistrări în cadrul unui tabel prin intermediul limbajului Visual FoxPro se folosesc comenzile: APPEND, care determină adăugarea de înregistrări la sfârşitul fişierului.

1. Comanda APPEND La încărcarea cu date a unui tabel în mod interactiv, comanda APPEND are următoarea sintaxă:

Executarea acestei comenzi determină adăugarea de noi înregistrări la sfârşitul tabelului activ, deschis în zona de lucru curentă. Dacă nu este deschis nici un tabel în zona de lucru curentă pe ecran se afişează fereastra OPEN pentru a selecta şi deschide tabelul în care se vor face adăugări. Prin folosirea comenzii în formatul: APPEND adică fără opŃiunea BLANK se adaugă înregistrări la sfârşitul tabelului, prin prelucrarea datelor de la tastatură. Ca urmare pe ecran se afişează fereastra de editare APPEND care conŃine câmpurile tabelului activ ordonate pe verticală. Valorile aferente fiecărui câmp se tastează în dreptul câmpului respectiv. După introducerea datelor aferente unei înregistrări, pe ecran se afişează macheta de preluare date pentru următorul articol.

3.1.7. Vizualizarea conŃinutului unui tabel; comenzile LIST şi DISPLAY

La nivel de program listarea conŃinutului unui tabel se poate realiza cu ajutorul comenzilor DISPLAY şi LIST. Cele două comenzi permit afişarea conŃinutului unui tabel al bazei d date pe ecran, la imprimantă sau într-un fişier pe disc. Principala diferenŃă dintre cele două comenzi constă în aceea că la execuŃia comenzii DISPLAY, după umplerea unui ecran se opreşte afişarea, continuarea afişării realizându-se prin apăsarea unei taste, în timp ce la execuŃia comenzii LIST afişarea se realizează fără nici o pauză.

3.1.7.1. Modificarea conŃinutului unui tabel

APPEND [BLANK]

Page 48: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

48

Modificarea valorii unor câmpuri din cadrul înregistrărilor unui fişier al bazei de date se poate realiza prin meniul sistem sau cu ajutorul comenzilor EDIT, CHANGE, BROWSE, REPLACE, BLANCK, UPDATE. OperaŃia de modificare se poate desfăşura în unul din următoarele moduri: 1. In mod interactiv, prin afişarea pe ecran a unei ferestre de editare în care

apar valorile pentru câmpurile de editare pentru o înregistrare sau un grup de înregistrări. Valorile de modificat se preiau în câmpurile specificate prin tastare. Acest mod de lucru apare la folosirea uneia din comenzile: EDIT, CHANGE sau BROWSE sau la modificarea prin meniul sistem.

2. In mod direct, prin preluarea datelor necesare operaŃiei de modificare dintr-un fişier (comanda UPDATE) sau prin precizarea lor în comanda de modificare (comanda REPLACE). Câmpurile de modificat sau de asemenea cuprinse în comandă.

La actualizarea în mod interactiv se pot folosi două moduri de lucru: a. Modul EDIT, prin care, în fereastra de editare, câmpurile aferente unei

înregistrări sunt ordonate pe verticală, ca şi la execuŃia comenzii APPEND. b. Modul BROWSE, prin care în fereastra de editare se afişează un grup de

înregistrări aranjate într-un tabel, câmpurile fiind ordonate pe orizontală.

a. Modificarea conŃinutului unui tabel prin meniul sistem In majoritatea cazurilor se preferă modul de lucru Browse, prin intermediul ferestrei Browse, dat fiind multitudinea de facilităŃi oferite de acest instrument al mediului Visual FoxPro. InterfaŃa 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 căutare. de aceea, ea reprezintă modul ideal pentru afişarea şi modificarea înregistrărilor unui tabel. După deschiderea unei ferestre Browse în vederea modificării unuia sau mai multor câmpuri dintr-o înregistrare, trebuie realizată poziŃionarea pe înregistrarea respectivă. In cazul care în fereastra Browse sunt afişate mai puŃine înregistrări, deplasarea la o anumită înregistrare se poate realiza cu ajutorul tastelor cu săgeŃi sau mouse-ului.

b. Modificarea conŃinutului unui tabel prin comenzi ale limbajului Visual FoxPro 1. Comanda BROWSE

ExecuŃia acestei comenzi permite afişarea înregistrărilor din fişierul curent, sub formă de tabel într-o fereastră de editare. Inregistrările astfel afişate pot fi editate (modificate) sau pot fi marcate sau demarcate pentru ştergere. De asemenea, după afişarea înregistrărilor în fereastra de editare se pot adăuga

Page 49: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

49

înregistrări vide ale căror câmpuri se vor edita imediat sau ulterior. Inregistrările sunt afişate pe ecran în ordinea lor naturală sau într-o ordine alfabetică definită de fişierul index activ asociat fişierului de date. In cadrul tabelei afişate în fereastra BROWSE, fiecare rând reprezintă o înregistrare, câmpurile fiind aşezate deci pe orizontală, unul după altul în ordinea definită în structura fişierului sau specificată în comandă. Tabelul afişat are un antet care include numele fiecărui câmp aşa cum apare în înregistrarea de structură sau cum este definit de utilizator în comandă. De asemenea, în tabel se pot afişa toate câmpurile din structura fişierului activ sau numai cele specificate cu comanda BROWSE sau într-o comandă SET FIELDS.

2. Comanda REPLACE ExecuŃia acestei comenzi permite înlocuirea conŃinutului unuia sau mai multor câmpuri din cadrul înregistrărilor fişierului activ, cu anumite valori. ExecuŃia acestei comenzi permite înlocuirea conŃinutului unuia sau mai multor câmpuri din cadrul înregistrărilor fişierului activ, cu anumite valori. Spre deosebire de comenzile precedente, execuŃia acestei comenzi nu determină deschiderea pe ecran a unei ferestre de editare în care utilizatorul introduce noile valori ale câmpurilor, ci realizează actualizarea pe baza datelor incluse în comandă.

3.1.8. Ştergerea înregistrărilor din cadrul unui table 3.1.8.1. Ştergerea înregistrărilor din cadrul unui tabel prin meniul

sistem Ştergerea unor înregistrări dintr-un tabel al bazei de date se realizează în două etape şi anume:

1) ştergerea logică; 2) ştergerea fizică.

3.1.8.2. Ştergerea înregistrărilor din cadrul unui tabel prin comenzi ale limbajului Visual FoxPro

1. Ştergerea logică Inregistrările din cadrul unui tabel pot fi marcate pentru ştergere folosind comanda DELETE.

Cele trei opŃiuni<domeniu>, FOR<expL> şi WHILE <expL> permit selectarea înregistrărilor ce urmează a fi marcate pentru ştergere. Domeniul implicit al

DELETE[<domeniu>][FOR<expL>] [WHILE<expI> [NOOPTIMIZE]

Page 50: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

50

comenzii este înregistrarea curentă. Accesul la înregistrările marcate pentru ştergere se pot controla cu comanda SET DELETIND ON/OFF astfel:

a) la folosirea opŃiunii ON, articolele marcate pentru ştergere sunt ignorate de comenzile FOX;

b) la folosirea opŃiunii OFF, comenzile FOX pot avea acces la toate înregistrările, chiar dacă o parte dintre acestea sunt marcate pentru ştergere;

c) opŃiunea implicită este OFF.

2. Ştergerea fizică Această operaŃie constă în eliminarea din fişierul curent a tuturor înregistrărilor marcate pentru ştergere şi se realizează cu ajutorul comenzii PACK cu sintaxa:

Dacă nu se foloseşte nici una din clauze, comanda PACK se referă atât la fişierul .DBF cât şi la fişierul memo asociat.

3.1.9. Accesul la înregistrările unui fişier

3.1.9.1. Accesul la o singură înregistrare ; Indicatorul de înregistrări Din punct de vedere fizic, fişierele din baza de date sunt de tip secvenŃial, înregistrările acestora fiind identificate printr-un număr de secvenŃă. Acest număr se atribuie înregistrărilor din cadrul unui fişier în ordine crescătoare începând cu 1. Prin operaŃiile efectuate asupra unor înregistrări, acest număr nu se modifică (valoarea maximă). În schimb acesta se poate modifica prin inserarea de noi înregistrări sau ştergerea unor înregistrări din baza de date. Pentru a permite accesul la o anumită înregistrare, dintr-un fişier al bazei de date, FoxPro foloseşte o locaŃie de memorie din zona de lucru în care memorează numărul de secvenŃă al înregistrării curente. Această locaŃie poartă denumirea de indicator de înregistrări. El poate fi considerat ca o variabilă de memorie care există cât timp fişierul este deschis. Modificarea indicatorului de înregistrări în vederea precizării înregistrării curente se realizează prin meniul sistem sau prin comenzi ale limbajului Visual FoxPro, folosind doua metode:

1. selectarea poziŃiei unei înregistrări în fişier, metodă prin care numărul înregistrării curente se stabileşte direct prin evaluarea unor expresii;

2. specificarea unor condiŃii logice, metodă prin care numărul înregistrării curente se stabileşte ca urmare a unui proces de căutare.

PACK[MEMO][DBF]

Page 51: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

51

3.1.9.2. FuncŃii privind indicatorul de înregistrări

Pentru a afla conŃinutul indicatorului de înregistrări sau dacă acesta specifică prima sau ultima înregistrare din fişier, se folosesc următoarele funcŃii: 1. FuncŃia RECNO(); returnează numărul de secvenŃă al înregistrării curente

şi are următoarea sintaxă:

unde cei doi parametrii specifica zona de lucru în care este deschis fişierul la care se referă funcŃia, alta decât cea curentă. 2. FuncŃia EOF(); determină dacă indicatorul de înregistrări este poziŃionat la sfârşitul fişierului. Astfel funcŃia returnează valoarea logică .T. dacă indicatorul de înregistrări a trecut de ultima înregistrare, şi .F. în caz contrar. 3. FuncŃia BOF(); verifică dacă indicatorul de înregistrări se află la începutul fişierului, adică înaintea primei înregistrări. În acest caz nu există o înregistrare de tip eticheta cu numărul 0 pentru a semnala trecerea în faŃa primei înregistrări, de aceea la orice încercare de trecere peste prima înregistrare indicatorul de înregistrări rămâne pe prima înregistrare, dar funcŃia BOF() va returna valoarea .T. O a doua încercare de trecere peste prima înregistrare va determina apariŃia unui mesaj de eroare. Sintaxa generală şi semnificaŃia parametrilor din cadrul funcŃiei BOF() este aceiaşi ca şi la funcŃia EOF().

3.1.9.3. Modificarea indicatorului de înregistrări prin meniul sistem

Pentru a avea acces la o anumită înregistrare din cadrul unui tabel, se va selecta opŃiunea Go to Record din meniul Table. Ca efect pe ecran se va afişa un submeniu care conŃine următoarele opŃiuni: Top, Bottom, Next, Previous, Record …, Locate … astfel:

3.1.9.4. Modificarea indicatorului de înregistrări prin comenzi ale limbajului Visual FoxPro

Pentru modificarea indicatorului de înregistrări din cadrul limbajului Visual FoxPro se folosesc cele două metode, ca şi în cazul meniului sistem şi anume:

1. Selectarea poziŃiei înregistrării în fişier, folosind în acest scop comenzile GO TO şi SKIP;

2. Specificarea unor condiŃii logice la nivelul unor comenzi, metodă prin care indicatorul de înregistrări se modifică ca urmare a unui proces de căutare. În momentul în care se găseşte prima înregistrare care

RECNO([<expN> | <expC>])

Page 52: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

52

satisface condiŃia, aceasta devine înregistrare curentă. În acest caz se folosesc comenzile LOCATE, FIND şi SEEK.

3.1.9.5. Precizarea înregistrării curente prin specificarea poziŃiei acesteia; comenzile GOTO şi SKIP

1. Comanda GOTO

ExecuŃia acestei comenzi realizează poziŃionarea indicatorului de înregistrări pe înregistrarea cu numărul de secvenŃă rezultat din evaluarea expresiei din cadrul comenzii. Formatele generale ale comenzii sunt următoarele:

Prin execuŃia comenzii GOTO în primul format, are loc poziŃionarea indicatorului de înregistrări pe înregistrarea cu numărul de secvenŃă rezultat din evaluarea expresiei specificată prin <expN1>, în fişierul deschis în zona de lucru curentă sau specificată prin clauza IN. În cazul formatului 2, are loc poziŃionarea indicatorului de înregistrări la extremele fişierului, adică pe prima înregistrare (opŃiunea TOP) sau pe ultima înregistrare (opŃiunea BOTTOM).

2. Comanda SKIP Utilizarea acestei comenzi determină modificarea indicatorului de înregistrări prin efectuarea unui salt peste anumite înregistrări pornind de la înregistrarea curentă. Sintaxa generală a comenzii SKIP este următoarea:

unde:

<expN1>;

indică numărul de înregistrări peste care se face saltul, faŃă de înregistrarea curentă. Rezultatul evaluării expresiei trebuie să reprezinte un număr întreg pozitiv sau negativ.

clauza IN;

specifică zona de lucru în care este deschis fişierul la care se referă comanda SKIP.

3.1.10. Căutarea înregistrărilor în tabelele bazei de date

[GO | GOTO] [RECORD] <expN1> [IN <expN2> | <expC>]

[GO | GOTO] TOP | BOTTOM [IN <expN> | <expC>]

SKIP [<expN1>] [IN <expN2>] | <expC>

Page 53: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

53

1. Căutarea secvenŃială; comenzile LOCATE şi CONTINUE Pentru căutarea într-un fişier secvenŃial a unor înregistrări care satisfac anumite condiŃii se folosesc comenzile LOCATE şi CONTINUE. Comanda LOCATE permite căutarea în fişierul curent a înregistrării care satisface condiŃia specificată în comandă. 2. Căutarea directă; comenzile FIND şi SEEK Aceste comenzi se folosesc dacă fişierul la care se referă este indexat şi permit căutarea directă şi poziŃionarea indicatorului de înregistrări pe prima înregistrare la care valoarea cheii de indexare este egală cu şirul de caractere sau valoarea expresiei din cele două comenzi. Sintaxa generală a celor două comenzi este următoarea:

ModalităŃi de folosire a celor două comenzi:

1) comanda SEEK sau FIND acŃionează doar asupra fişierului indexat, considerând parametrii comenzii ca o valoare a cheii de indexare;

2) cele două comenzi găsesc doar primul articol care satisface criteriul de căutare;

3) operaŃia de căutare se desfăşoară astfel: a. în cazul cheii de tip şir de caractere este suficient specificarea doar

a primelor caractere din şir, iar comanda FIND sau SEEK găseşte înregistrarea a cărei cheie de indexare începe cu şirul specificat;

b. în cazul căutării după valoarea unei chei numerice, se găseşte înregistrarea a cărei cheie de indexare este egală cu valoarea specificată în cele două comenzi;

c. la căutarea după conŃinutul unei variabile de memorie, numele acesteia se specifică în comanda FIND după procedeul macrosubstituŃiei, adică precedat de caracterul & (ampersand). Dacă valoarea variabilei începe cu spaŃii se introduce între ghilimele.

3.1.10.1. FuncŃii utilizate la căutare

1.FuncŃia FOUND(); permite testarea reuşitei sau nereuşitei unei operaŃii de căutare şi are sintaxa:

FuncŃia returnează valoarea .T. dacă ultima comandă LOCATE, CONTINUE, FIND sau SEEK a avut succes şi .F. în caz contrar.

FIND<şir-caractere> SEEK<expresie>

FOUND([<expN> | <expC>])

Page 54: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

54

2. FuncŃia SEEK(); caută într-un fişier indexat, prima înregistrare pentru care valoarea cheii de indexare este egală cu valoarea expresiei din cadrul funcŃiei. Dacă se găseşte o înregistrare care satisface condiŃia de căutare, funcŃia returnează valoarea .T. iar indicatorul de înregistrări se poziŃionează pe înregistrarea respectivă. În caz contrar, funcŃia returnează valoarea .F. iar indicatorul de înregistrări se poziŃionează după ultima înregistrare. Sintaxa generală a funcŃiei este:

3.1.11. Ordonarea înregistrărilor din cadrul unui tabel Prelucrarea datelor financiar-contabile presupune de cele mai multe ori ordonarea acestora după anumite criterii. Un fişier al bazei de date este ordonat după un anumit criteriu dacă fiecare înregistrare a acestuia respectă criteriul dat în raport cu înregistrările anterioare şi posterioare. În FoxPro se pot folosi două metode de ordonare a datelor unui fişier al bazei de date şi anume:

1. ordonarea propriu-zisă sau sortarea realizată prin schimbarea între ele a înregistrărilor, după un anumit algoritm de sortare în funcŃie de cheia de sortare definită de utilizator. În acest caz se obŃine un nou fişier, care conŃine aceleaşi înregistrări cu cele din fişierul sursă, dar ordonate după un anumit criteriu.

2. indexarea, aceasta însemnând de asemenea crearea unui nou fişier care conŃine informaŃii cu privire la ordinea înregistrărilor din fişierul sursă, numit fişier index. Spre deosebire de prima metodă şi în acest caz se obŃine un nou fişier, dar acesta nu conŃine înregistrările de date din fişierul sursă ci memorează numai ordinea acestora.

3.1.12. Sortarea fişierelor din baza de date

La sortarea unui fişier al bazei de date, sistemul FoxPro creează un nou fişier cu un nume diferit de cel al fişierului sursă care conŃine articolele din fişierul sursă ordonate după un anumit criteriu. Structura sa este aceeaşi cu cea a fişierului iniŃial. Această operaŃie se realizează cu ajutorul comenzii SORT cu următoarea sintaxă:

SEEK (<exp> [, <expN> | <expC>])

Page 55: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

55

Comanda, sortează articolele fişierului curent, creând un nou fişier, în care sunt depuse înregistrările selectate din fişierul curent, în ordinea specificată prin comandă.

3.1.13. Indexarea înregistrărilor din cadrul unui table; Logica operaŃiei de indexare

Cea de a doua metodă de ordonare a datelor unui fişier o reprezintă indexarea acestuia, metodă prin care se creează un fişier index, asociat fişierului de date activ, în care se memorează cheia de indexare şi ordinea înregistrărilor din fişierul activ. Ca urmare în fişierul index pentru fiecare înregistrare de date din fişierul activ se memorează un index format din perechea de informaŃii: cheia de indexare şi numărul de secvenŃă a înregistrării din fişierul de date. În acest fişier valorile cheii de indexare apar în ordine crescătoare, iar fişierul de date activ nu este modificat. În acest fel accesul la o anumită înregistrare se va face prin intermediul fişierului index asociat, ordinea fizică a înregistrărilor din fişierul activ nefiind modificată.

3.1.13.1. Tipuri de fişiere index

În Visual FoxPro pot fi create trei tipuri de fişiere index şi anume:

− fişiere index simple sau independente cu extensia .IDX; − fişiere index compuse structurale cu extensia .CDX; − fişiere index compuse nestructurale cu extensia .CDX.

1. Fişierele index simple sau independente conŃin câte o singură cheie de indexare de tip Unique (cheie unică). Ele se numesc independente deoarece numele lor nu are nici o legătură cu tabela la care sunt asociate. Aceste fişiere se pot crea în Visual FoxPro numai cu comanda INDEX. 2. Fişiere index compuse structurale; conŃin mai multe chei de indexare, fiecare cheie având asociată o etichetă sau un tag. Pe baza indecşilor definiŃi în fereastra Table Designer, Visual FoxPro creează întotdeauna un fişier index compus structural cu etichetele definite în caseta Table Designer.Dacă dorim să creăm un fişier index simplu sau un fişier compus nestructural va trebui să folosim comenzi ale limbajului Visual FoxPro (comanda INDEX).

SORT TO <fişier> ON <câmp1> [/A | /D] [/C]

[, <câmp2> [/A | /D] [/C] …]

[ASCENDING | DESCENDING]

[<domeniu>] [FOR <expL1>] [WHILE <expL2>]

[FIELDS <listă-câmpuri> | [FIELDS LIKE <şablon1> |

Page 56: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

56

3. Fişier index compus nestructural; conŃin de asemenea mai multe chei de indexare, fiecare cheie având asociată o etichetă sau un tag. Spre deosebire de fişierele index structurale, aceste fişiere au nume diferit de cel al tabelei la care sunt asociate. Ca urmare ele trebuie deschise prin comenzi explicite.

3.1.13.2. Crearea fişierelor index

Indexarea reprezintă modalitatea cea mai bună de a ordona datele unui tabel. În Visual FoxPro se pot crea următoarele categorii de indecşi: 1. Normali (Regular); indică faptul că sistemul Visual FoxPro memorează în fişierul index valoarea aferentă expresiei de indexare (cheia de indexare) pentru fiecare înregistrare din tabela de date, chiar dacă în tabelă există mai multe înregistrări cu aceeaşi valoare a cheii de indexare. 2. Unici (Unique); permit memorarea în fişierul index a unei valori unice a cheii de indexare. Astfel, dacă mai multe înregistrări din tabela sursă au aceiaşi valoare a cheii de indexare se memorează numai cheia de indexare pentru prima înregistrare de acest gen. Celelalte înregistrări cu aceiaşi valoare a cheii de indexare nu vor putea fi accesate prin intermediul fişierului index, ele fiind ascunse utilizatorului. Acest tip de index asigură compatibilitatea cu versiunea FoxPro 2.6 sub Windows. Candidat (Candidate); este asemănător cu indexul unic, dar nu acceptă nici în tabelul sursă înregistrări cu aceeaşi valoare a cheii de indexare. În cazul indecşilor unici, puteau exista în tabela sursă şi înregistrări cu aceeaşi valoare a cheii de indexare dar se prelua în fişierul index numai valoarea cheii de indexare aferentă primei înregistrări din această categorie, celelalte înregistrări nefiind asociate fişierului index. Primari (Primary); conŃin 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 părinte pentru a asigura integritatea referenŃială într-o relaŃie permanentă. Pentru o tabelă se acceptă numai un singur index primar, iar tabela respectivă trebuie să fie inclusă în baza de date.

Page 57: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

57

3.1.13.3. Crearea indecşilor prin meniul sistem Un index aferent unei tabele apare în fereastra table Designer, în pagina Indexes, sub forma unei înregistrări care conŃine: ordinea de indexare (crescătoare sau descrescătoare), numele etichetei din fişierul compus care se creează pe baza indexului, tipul indexului, cheia de indexare şi un filtru pentru înregistrările care vor fi asociate indexului creat. Pentru fiecare index aferent unui tabel vom crea câte o înregistrare de acest gen, reprezentând un rând în pagina Indexes. De fiecare dată când construim un index se creează de fapt un fişier care păstrează pointeri la înregistrările din fişierul .dbf. Indecşii aferenŃi unei tabele pot fi creaŃi fie în momentul definirii structurii unui tabel, sau ulterior.

a. Crearea fişierelor index prin comenzi ale limbajului Visual FoxPro

Pentru crearea unui fişier index, prin comenzi ale limbajului Visual FoxPro se foloşte comanda INDEX.

1. Comanda INDEX Prin execuŃia acestei comenzi se creează un fişier index simplu sau un fişier index compus structural sau nestructural. Sintaxa acestei comenzi este următoarea: REZUMAT O bază de date în Visual FoxPro are ataşat un fişier special cu extensia

.DBC (DataBase Container) în care sunt memorate printre altele structura tabelelor componente, relaŃiile permanente dintre tabelele bazei de date, caracteristici suplimentare ale tabelelor din baza de date, caracteristici ale bazei de date în ansamblul său şi proceduri ce urmează a fi executate la apariŃia unor evenimente. Construirea unei baze de date în Visual FoxPro se realizează în următoarele etape: • crearea bazei de date, în care se vor memora informaŃii privind

tabelele şi baza de date în ansamblul său; • î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 legăturilor 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.

Page 58: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

58

Crearea fişierului bazei de date de poate realiza în unul din următoarele moduri: - prin folosirea constructorului de baze de date (DataBase Designer)

apelat din meniul sistem; - prin folosirea ferestrei PROJECT MANAGER; - prin folosirea comenzii CREATE.

Adăugarea 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.

Având în vedere facilităŃile oferite de instrumentul Project Manager privind organizarea, vizualizarea şi manipularea obiectelor sale prin intermediul interfeŃei (fereastra Project Manager) se recomandă ca bazele de date create independent să fie adăugate în cadrul unui proiect existent sau nou creat. In acest scop, după lansarea Gestionarului de proiecte şi afişarea pe ecran a ferestrei Project Manager se selectează secŃiunea DataBase şi apoi se execută un clic pe butonul Add… . Ca urmare se va afişa 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 afişează după activarea acestui buton, se alege opŃiunea Remove. Dacă dorim ca baza de date respectivă să fie ştearsă fizic de pe hard-disc se va alege opŃiunea 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. OperaŃia 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

Inchiderea unei baze de date Pentru închiderea unei baze de date, având pe ecran afişată

fereastra Project Manager, se va selecta mai întâi baza de date ce urmează a fi închisă şi apoi se activează butonul Close. OperaŃia se repetă pentru fiecare bază de date ce urmează a fi închisă. De asemenea pentru închiderea bazei de date curente şi a tabelelor

Page 59: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

59

aferente se poate folosi comanda CLOSE DATABASE. TEME DE CONTROL

1. Se vor efectua lucrări practice de creare a unei baze de date folosind instrumentele de lucru prezentate anterior;

2. Se vor efectua operaŃii de gestiune a unei baze de date ; 3. Se vor crea mai multe tabele care se includ în baza de date anterior

creată ; 4. Se vor defini relaŃii permanente între tabelele create şi se

vizualizează schema bazei de date ; 5. Se încarcă tabelele create cu date şi se vizualizează conŃinutul

acestora ; 6. Se actualizează tabelele create prin modificare şi ştergere de

înregistrări ; 7. - se indexează tabelele create

BIBLIOGRAFIE

1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, pg. 91-110. 2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 128-142; 176-180; 202-218; 229-237 3. Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora, Bucuresti,1999,pag . 51-155. 4. Marin Fotache, Ioan Brava, Cătălin Strâmbei, Liviu CreŃu, Visual FoxPro;

Ghidul dezvoltării aplicaŃiilor profesionale, Editura Polirom Iaşi, 2002, pag. 36-

63.

5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea aplicaŃiilor cu baze de date în Visual FoxPro, Editura All, Bucureşti, 2001, pag. 37-87. 6. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003, pag. 7-13, 41-54. 6. Paul Petruş, Visual FoxPro 5.0, Editura Promedia, Cluj, 1999, pag. 159-205.

Page 60: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

60

4. CREAREA ŞI GESTIUNEA BAZELOR DE DATE ÎN VISUAL FOXPRO CONCEPTE DE BAZA

7. Crearea bazei de date 8. Deschiderea şi închiderea bazelor de date 9. Adăugarea tabelelor în baza de date 10. Eliminarea unei tabele din baza de date 11. Relationarea tabelelor din baza de date

OBIECTIVE 3. Insuşirea modului de creare şi gestionare a bazei de date

4. Studiul aspectelor specifice tabelelor din bazele de date

5. Studiul relaŃionărilor dintre tabele RECOMANDĂRI PRIVIND STUDIUL

3. Recomandăm parcurgerea etapelor de creare a unei baze de date folosind: instrumentul DATABASE DESIGNER; comanda CREATE DATA BASE.

4. Se vor studia în continuare operaŃiile de gestiune cu baze de date.

5. Se vor studia relaŃiile dintre tabele REZULTATE ASTEPTATE

1. înŃelegerea şi însuşirea deprinderilor practice de creare şi gestionare a bazelor de date în Visual FoxPro;

2. însuşirea gestiunii tabelelor şi a relaŃiilor dintre ele în cadrul unei baze de date.

Page 61: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

61

4.1. CREAREA ŞI GESTIUNEA BAZELOR DE DATE ÎN VISUAL FOXPRO

OBIECTIVE 1. crearea bazelor de date

2. gestiunea bazelor de date; deschidere, închidere, adăugare sau eliminare de tabele din baza de date;

3. relaŃionarea tabelelor din baza de date; CUVINTE CHEIE

- constructorul bazei de date; - relaŃii persistente, relaŃii temporare; - integritate referenŃială;

4.1.1. Caracteristici generale O bază de date în Visual FoxPro are ataşat un fişier special cu extensia .DBC (DataBase Container) în care sunt memorate printre altele structura tabelelor componente, relaŃiile permanente dintre tabelele bazei de date, caracteristici suplimentare ale tabelelor din baza de date, caracteristici ale bazei de date în ansamblul său şi proceduri ce urmează a fi executate la apariŃia unor evenimente. Se clarifică în acelaşi timp termenii de "bază de date" şi "tabel" folosiŃi în trecut unul în locul celuilalt. Astfel termenul de "bază de date" era utilizat pentru a desemna unul sau mai multe tabele. 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 următoarele etape:

1. crearea bazei de date, în care se vor memora informaŃii privind tabelele şi baza de date în ansamblul său;

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 legăturilor 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. 4.1.2. Crearea bazei de date

Crearea fişierului bazei de date de poate realiza în unul din următoarele moduri:

Page 62: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

62

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.

Page 63: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

63

a) Crearea bazei de date prin folosirea constructorului de baze de date

In acest caz din meniul FILE se selectează opŃiunea NEW având ca efect afişarea pe ecran a ferestrei cu acelaşi nume (NEW). Afişarea ferestrei New se poate realiza direct prin efectuarea unui clic pe prima pictogramă din bara de instrumente standard. Din fereastra New se va selecta butonul Database şi apoi opŃiunea New File. Ca urmare a selectării acestei opŃiuni, pe ecran va fi afişată fereastra CREATE în care se cere introducerea numelui pentru baza de date şi directorul în care se memorează noua bază de date. După completarea acestor informaŃii, prin acŃionarea butonului Save pe ecran apare fereastra constructorului bazei de date. In acelaşi timp la meniul sistem se adaugă opŃiunea Database, care conŃine diferite opŃiuni pentru operaŃii cu baze de date. Deocamdată baza de date nou creată este vidă şi este deschisă în fereastra Database Designer. In fereastra Database Designer vom popula noua bază de date cu tabele folosind opŃiuni din meniul obŃinut cu butonul drept al mouse-ului, opŃiuni din bara cu instrumente aferentă ferestrei Database Designer sau opŃiuni din meniul Database. Tabelele introduse pot fi tabele existente (libere) sau create în momentul respectiv.

b) Crearea bazei de date prin folosirea ferestrei PROJECT MANAGER

Pentru a deschide fereastra PROJECT MANAGER există două posibilităŃi:

1. dacă există un proiect anterior creat se selectează numele proiectului din submeniul FILE, fapt care determină afişarea 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ă opŃiunea 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 informaŃii prin acŃionarea butonului SAVE se salvează noul proiect şi se deschide pe ecran fereastra PROJECT MANAGER aferentă noului proiect.

In ambele cazuri, din fereastra PROJECT MANAGER se va selecta tabul (pagina) Data şi apoi câmpul Databases. In continuare se activează butonul New… tot din fereastra Project Manager având ca efect apariŃia pe ecran a ferestrei CREATE pentru noua bază de date. După completarea informaŃiilor solicitate prin acŃionarea butonului SAVE pe ecran se va afişa fereastra

Page 64: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

64

DataBase Designer, în care se pot introduce tabelele care vor compune noua bază de date (imediat sau ulterior).

c) Crearea bazei de date prin comenzi

Pentru crearea bazei de date prin comenzi se foloseşte comanda CREATE cu sintaxa: CREATE DATABASE [ <nume-baza-dedate>|? ]

La execuŃia acestei comenzi are loc crearea unei baze de date şi deschiderea acesteia în zona curentă.

4.1.3. Adăugarea 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. Având în vedere facilităŃile oferite de instrumentul Project Manager privind organizarea, vizualizarea şi manipularea obiectelor sale prin intermediul interfeŃei (fereastra Project Manager) se recomandă ca bazele de date create independent să fie adăugate în cadrul unui proiect existent sau nou creat. In acest scop, după lansarea Gestionarului de proiecte şi afişarea pe ecran a ferestrei Project Manager se selectează secŃiunea DataBase şi apoi se execută un clic pe butonul Add…. Ca urmare se va afişa pe ecran fereastra Open, din care se selectează baza de date ce urmează a fi inclusă în proiect.

4.1.4. Deschiderea şi închiderea bazelor de date Bazele de date din cadrul unui proiect, pot fi deschise simultan pe ecran folosind butonul Open sau prin referinŃe 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 rămân în continuare deschise, iar ultima bază de date deschisă devine baza de date curentă, numele ei fiind afişat în caseta de pe bara de instrumente standard a ferestrei Visual FoxPro. 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. OperaŃia se repetă apoi pentru fiecare bază de date ce urmează a fi deschisă.

Page 65: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

65

Dacă baza de date nu este inclusă în cadrul unui proiect pentru deschiderea acesteia în mod interactiv se poate folosi fereastra Data Session afişată pe ecran ca urmare a selectării opŃiunii cu acelaşi 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]

Page 66: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

66

4.1.4.1. Închiderea unei baze de date Pentru închiderea unei baze de date, având pe ecran afişată fereastra Project Manager, se va selecta mai întâi baza de date ce urmează a fi închisă şi apoi se activează butonul Close. OperaŃia 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.

4.1.4.2. Adăugarea tabelelor în baza de date Prin adăugarea unei tabele în baza de date se creează o legătură între fişierul tabelei şi containerul bazei de date. InformaŃia de legătură despre tabelă stocată în fişierul bazei de date este o legătură înainte (→), iar informaŃia de legătură despre baza de date în care se include o tabelă, stocată în fişierul tabelei, este o legătură înapoi (←) Orice tabelă din Visual FoxPro poate exista în una din următoarele stări:

- tabelă liberă; - tabelă asociată;

Tabelele asociate unei baze de date au o serie de proprietăŃi specifice, care nu se întâlnesc în cadrul tabelelor libere sau externe, cum ar fi: relaŃii persistente între tabele, reguli de validare la nivel de câmp şi înregistrare, etc. Ele pot fi asociate unei baze de date prin crearea lor direct în cadrul bazei de date existente sau prin adăugarea acestora după ce au fost create ca şi tabele libere.

4.1.4.3. Eliminarea unei tabele din baza de date Dacă dorim ca o tabelă dintr-o bază de date să fie folosită într-o altă bază de date, sau nu mai avem nevoie de tabela respectivă în baza de date din care face parte, aceasta poate fi eliminată din aceea bază de date. Prin eliminarea unei tabele din baza de date, aceasta revine la statutul de tabelă liberă. Dacă dorim putem opta pentru ştergerea fizică a tabelei de pe hard-disc. Pentru eliminarea unei tabele din baza de date pot folosi următoarele procedee:

1. In fereastra Project Manager se selectează tabul Data şi apoi se expandează secŃiunile Database şi Tables prin efectuarea unui clic pe semnul + din faŃa secŃiunilor respective. Din lista cu tabele incluse în bază de date se va selecta tabela ce urmează a fi eliminată şi apoi butonul Remove sau din submeniu Database se selectează opŃiunea Remove.Ca efect pe ecran apare o fereastră de mesaj care conŃine butoanele de comandă: Remove, Delete, Cancel. Prin acŃionarea primului buton, tabela selectată anterior este eliminată din baza de date. Eliminarea tabelei nu determină ştergerea fizică a fişierului

Page 67: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

67

asociat tabelei. Dacă dorim să ştergem fizic tabela de pe disc vom selecta butonul Delete

2. Dacă baza de date este deschisă în fereastra Database Designer se selectează din cadrul ferestrei tabela ce urmează a fi eliminată şi apoi opŃiunea Remove din susbmeniul Database sau butonul Remove Table de pe bara de instrumente Database Designer sau opŃiunea Delete din meniul shortcut al tabelei selectate.

3. Prin folosirea comenzii REMOVE TABLE: 4.1.5. RelaŃionarea tabelelor din baza de date

In Visual FoxPro relaŃiile pe care le creăm între tabele cu ajutorul Constructorului bazei de date (Database Designer) se numesc relaŃii persistente. In afara acestora se pot defini şi relaŃii temporare sau dinamice prin comenzi introduse în programele de prelucrare. Ca urmare relaŃiile temporare sunt disponibile numai în momentul rulării programului în care au fost definite după care ele nu mai există. Tabelele între care se creează o relaŃie se numesc: tabelă principală sau părinte şi respectiv tabelă secundară sau fiu. Intre cele două tabele se pot defini următoarele tipuri de relaŃii:

1. relaŃie una-la-una (1-1); 2. relaŃi una-la-mai-multe (1-n); 3. relaŃie mai-multe la-una (n-1); 4. relaŃie mai-multe-la-mai-multe (m-n).

In Visual FoxPro sunt implementate primele trei tipuri de relaŃii. Deoarece modelul relaŃional nu poate accepta direct o relaŃie ”Mai multe la mai multe” acest tip de relaŃie se poate înlocui cu 2 relaŃii : ”mai multe la una” şi ”una la mai multe” prin intermediul unei tabele suplimentare numită şi tabelă de joncŃiune. Pentru a realiza unul din tipurile de relaŃii amintite, între două tabele, acestea trebuie să fie indexate după conŃinutul aceluiaşi câmp. Câmpul din tabela părinte după care se face indexarea acesteia se numeşte cheie primară (primary key), iar cel din tabela fiu, după care se face indexarea, se numeşte 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.

4.1.5.1. RelaŃii permanente

După stabilirea câmpurilor cheie din cele două tabele şi a indecşilor aferenŃi se poate defini o relaŃie permanentă între cele două tabele. In acest scop se va afişa pe ecran fereastra constructorului de baze de date (Database Designer) în care

Page 68: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

68

apar tabelele ce compun baza de date. In tabela părinte se selectează indexul primar şi se face drag-drop la indexul din tabela fiu, având ca efect crearea relaŃiei între cele două tabele. Faptul că relaŃia între cele două tabele a fost creată se indică prin afişarea unei linii care uneşte cei doi indecşi. Începutul liniei de la tabela părinte conŃine o cruce, iar sfârşitul liniei spre tabele fiu, conŃine o bifurcaŃie, indicând o relaŃie de tip 1-n.

Fiecare relaŃie permanentă reprezintă un obiect Visual, sub forma unei linii cu două simboluri (cruce şi bifurcaŃie). Ca urmare, ca orice obiect, poate fi modificat cu ajutorul unor comenzi specifice. Pentru ştergerea unei relaŃii 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ă opŃiunea Remove.

4.1.5.2. Asigurarea integrităŃii datelor din tabelele legate între ele prin relaŃii permanente

Printre mecanismele care asigură integritatea bazei de date se numără şi cele privind integritatea entităŃilor şi integritatea referenŃială. Integritatea entităŃilor este implementată prin specificarea în cadrul unei tabele, a faptului că nu pot accepta valori nule câmpurile care reprezintă chei primare. Integritatea referenŃială (referenŃial integrity-RI) defineşte un ansamblu de reguli, care permit menŃionarea integrităŃii datelor din tabelele legate între ele, la operaŃiile de modificare, adăugare şi ştergerea datelor din tabelele respective, astfel încât să nu existe înregistrări neparticipante la relaŃie. Implementarea acestor reguli între tabele se realizează prin intermediul unor restricŃii numite restricŃii pentru integritate referenŃială (RI – constraints). Prin definirea regulilor de integritate referenŃială, mediul Visual FoxPro va interzice:

- adăugarea de înregistrări în tabela fiu atunci când în tabela părinte nu există nici o înregistrare cu aceeaşi valoare a cheii de indexare;

- modificarea valorii cheii de indexare în tabela principală care să ducă la apariŃia de înregistrări orfane în tabela fiu;

- ştergerea de înregistrări în tabela părinte, dacă există înregistrări asociate în tabela fiu.

Specificarea restricŃiilor de integritate referenŃială şi generarea automată a procedurilor aferente se realizează prin intermediul Generatorului de Integritate ReferenŃială (Referential Integrity Builder).

Page 69: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

69

4.1.5.3. RelaŃii temporare

Alături de relaŃiile permanente se pot defini în Visual FoxPro şi relaŃii sau legături temporare, care sunt active atâta timp cât durează o sesiune de lucru sau un program. Ele se pot crea prin meniul sistem sau prin program. Ca şi în cazul relaŃiilor permanente, cele două tabele, principală şi secundară, trebuie să fie indexate pe baza unui câmp comun (cheia primară în tabela principală, cheia externă în cea secundară).

Page 70: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

70

REZUMAT O bază de date în Visual FoxPro are ataşat un fişier special cu extensia

.DBC (DataBase Container) în care sunt memorate printre altele structura tabelelor componente, relaŃiile permanente dintre tabelele bazei de date, caracteristici suplimentare ale tabelelor din baza de date, caracteristici ale bazei de date în ansamblul său şi proceduri ce urmează a fi executate la apariŃia unor evenimente. Construirea unei baze de date în Visual FoxPro se realizează în următoarele etape: • crearea bazei de date, în care se vor memora informaŃii privind

tabelele şi baza de date în ansamblul său; • î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 legăturilor 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 fişierului bazei de date de poate realiza în unul din următoarele moduri: - prin folosirea constructorului de baze de date (DataBase Designer)

apelat din meniul sistem; - prin folosirea ferestrei PROJECT MANAGER; - prin folosirea comenzii CREATE.

Adăugarea 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.

Având în vedere facilităŃile oferite de instrumentul Project Manager privind organizarea, vizualizarea şi manipularea obiectelor sale prin intermediul interfeŃei (fereastra Project Manager) se recomandă ca bazele de date create independent să fie adăugate în cadrul unui proiect existent sau nou creat. In acest scop, după lansarea Gestionarului de proiecte şi afişarea pe ecran a ferestrei Project Manager se selectează secŃiunea DataBase şi apoi se execută un clic pe butonul Add… . Ca urmare se va afişa pe ecran fereastra Open, din care se selectează baza de date ce urmează a fi

Page 71: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

71

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 afişează după activarea acestui buton, se alege opŃiunea Remove. Dacă dorim ca baza de date respectivă să fie ştearsă fizic de pe hard-disc se va alege opŃiunea 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. OperaŃia 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

Inchiderea unei baze de date Pentru închiderea unei baze de date, având pe ecran afişată

fereastra Project Manager, se va selecta mai întâi baza de date ce urmează a fi închisă şi apoi se activează butonul Close. OperaŃia 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.

RelaŃionarea tabelelor din baza de date In Visual FoxPro relaŃiile pe care le creăm între tabele cu ajutorul Constructorului bazei de date (Database Designer) se numesc relaŃii persistente. In afara acestora se pot defini şi relaŃii temporare sau dinamice prin comenzi introduse în programele de prelucrare. Ca urmare relaŃiile temporare sunt disponibile numai în momentul rulării programului în care au fost definite după care ele nu mai există. Tabelele între care se creează o relaŃie se numesc: tabelă principală sau părinte şi respectiv tabelă secundară sau fiu. Intre cele două tabele se pot defini următoarele tipuri de relaŃii: - relaŃie una-la-una; prin care unei înregistrări din tabela părinte îi

corespunde o singură înregistrare în tabela fiu (copil); - relaŃii una-la-mai-multe; prin care unei înregistrări din tabela

părinte îi corespund mai multe înregistrări în tabela copil; - relaŃie mai-multe la-una; prin care pentru o înregistrare în tabela

copil putem avea mai multe înregistrări în tabela părinte; - relaŃie mai-multe-la-mai-multe; prin care unei înregistrări din tabela

părinte îi pot corespunde mai multe înregistrări în tabela copil şi

Page 72: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

72

invers adică unei înregistrări din tabela copil îi pot corespunde mai multe înregistrări în tabela părinte.

Asigurarea integrităŃii datelor din tabelele legate între ele prin relaŃii permanente

Printre mecanismele care asigură integritatea bazei de date se numără şi cele privind integritatea entităŃilor şi integritatea referenŃială.

Integritatea entităŃilor este implementată prin specificarea în cadrul unei tabele, a faptului că nu pot accepta valori nule câmpurile care reprezintă chei primare.

Integritatea referenŃială (referenŃial integrity-RI) defineşte un ansamblu de reguli, care permit menŃionarea integrităŃii datelor din tabelele legate între ele, la operaŃiile de modificare, adăugare şi ştergerea datelor din tabelele respective, astfel încât să nu existe înregistrări neparticipante la relaŃie. Implementarea acestor reguli între tabele se realizează prin intermediul unor restricŃii numite restricŃii pentru integritate referenŃială (RI – constraints).

Specificarea restricŃiilor de integritate referenŃială şi generarea automată a procedurilor aferente se realizează prin intermediul Generatorului de Integritate ReferenŃială (Referential Integrity Builder). Aceasta permite, de asemenea, precizarea tabelelor părinte şi fiu din cadrul unei relaŃii şi a evenimentelor din sistem care impun mediului Visual FoxPro să verifice regulile definite.

TEME DE CONTROL

8. Se vor efectua lucrări practice de creare a unei baze de date folosind instrumentele de lucru prezentate anterior;

9. Se vor efectua operaŃii de gestiune a unei baze de date ; 10. Se vor crea mai multe tabele care se includ în baza de date anterior

creată ; 11. Se vor defini relaŃii permanente între tabelele create şi se vizualizează

schema bazei de date ; BIBLIOGRAFIE

1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, pg. 91-110. 2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 222-230 3.Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora ,Bucuresti,1999,pag . 51-155. 4.Marin Fotache, Ioan Brava, Cătălin Strâmbei, Liviu CreŃu, Visual

FoxPro; Ghidul dezvoltării aplicaŃiilor profesionale, Editura Polirom

Iaşi, 2002, pag. 36-63.

5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea

Page 73: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

73

aplicaŃiilor cu baze de date în Visual FoxPro, Editura All, Bucureşti, 2001, pag. 37-87. 6. Paul Petruş, Visual FoxPro 5.0, Editura Promedia, Cluj, 1999, pag. 159-205. 7. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003, pag. 7-13, 41-54.

Page 74: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

74

5. GESTIUNEA PROIECTELOR ÎN VISUAL FOXPRO

CONCEPTE DE BAZA

3. Rolul proiectelor în dezvoltarea aplicaŃiilor; 4. Project Manager, componenta Visual FoxPro pentru

gestiunea proiectelor. OBIECTIVE 1. Familiarizarea cu noŃiunea de proiect şi rolul acestuia

în dezvoltarea aplicaŃiilor cu particularitǎză în Visual FoxPro.

2. Stabilirea modalităŃilor de gestiune a proiectelor; 3. Personalizarea managerului ; 4. Deprinderea utilizării Wizard-ului.

RECOMANDĂRI PRIVIND STUDIUL

1. Studierea atentǎ a bibliografiei; 2. Studiu individual în laborator şi exersarea opŃiunilor

şi componentelor mediului; 3. Elaborarea unor schiŃe referitoare la înlănŃuirea logicǎ

a operaŃiilor. REZULTATE ASTEPTATE

Crearea unor deprinderi de utilizare a managerului de proiect.

Page 75: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

75

5.1. GESTIUNEA PROIECTELOR

OBIECTIVE 1. Familiarizarea cu noŃiunea de proiect şi rolul acestuia în

dezvoltarea aplicaŃiilor ; 2. ParticularităŃile proiectelor în Visual FoxPro. 3. Stabilirea modalităŃilor de creare, respective de modificare

a proiectelor; 4. Descrierea paginilor etichetate din Proiect Manager ; 5. Gestiunea unor tipuri de fişiere prin Proiect Manager ; 6. Familiarizarea cu meniul Proiect ; 7. Personalizarea managerului ; 8. Utilizarea Wizard-ului

NOłIUNI CHEIE

Proiect şi componentele sale în Visual FoxPro ; ModalităŃi de creare/modificare a proiectelor; Tipuri de pagini etichetate în Project Manager; OpŃiunile meniului Project; Gestiunea fişierelor cu ajutorul Prtoject Manager; Utilizarea Wizard-ului pentru managementul proiectelor şi opŃiunile acestuia.

5.1.1. 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 dispoziŃia utilizatorilor o modalitate sistematică de organizare şi gestiune a elementelor necesare unui proiect, cu ajutorul utilitarului Project Manager. Project Manager este o îmbunătăŃire a generatorului de proiecte din FoxPro 2.5, respectiv 2.6, uşor de utilizat, având, în acelaşi timp, o interfaŃă prietenoasă, care permite utilizatorilor finali să-şi gestioneze eficient proiectul. El funcŃionează în principiu în următorii paşi:

1. Folosind interfeŃe 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.

Page 76: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

76

2. În a doua fază, dacă utilizatorul doreşte, poate transforma proiectul fie într-o aplicaŃie sub formă de cod intermediar (cu extensia .app), fie într-o aplicaŃie executabilă (cu extensia .exe).

In cadrul ferestrei aferente acestui utilitar, datele sunt grupate pe categorii funcŃionale: baze de date, tabele, rapoarte, forme, etichete, pentru a avea o evidenŃă mai clară a tuturor elementelor proiectului şi, în acelaşi timp, o vedere de ansamblu asupra acestora.

5.1.2. Utilizarea constructorului de proiecte (Project Manager)

5.1.2.1. Crearea unui proiect nou

Pentru a crea un proiect nou, din meniul File se selectează opŃiunea New, sau de pe bara de instrumente se selectează pictograma aferentă creării unui nou fişier. Din fereastra New, se alege butonul de selecŃie Project şi apoi butonul de comandă New File. Ca urmare, pe ecran apare caseta de dialog Create, în care se stabileşte directorul şi numele noului proiect (implicit acesta are numele Project 1 şi, aşa după cum s-a văzut, extensia pjx). După introducerea acestor informaŃii se acŃionează butonul Save, având ca efect afişarea pe ecran a ferestrei Project Manager. Constructorul de proiecte poate fi lansat şi în mod comandă, tastând o comandă de forma:

CREATE PROJECT [numeproiect | ?] • dacă în fereastra de comandă se tastează CREATE PROJECT ? sau

pur şi simplu CREATE PROJECT, acŃiunea 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ă

opŃiunea Open, sau se activează pictograma pentru deschidere fişiere (a doua)

de pe bara de instrumente standard. In caseta de dialog Open se va selecta tipul

de fişier ce urmează a fi deschis, adică Project şi apoi denumirea proiectului,

după care se acŃionează butonul OK, având ca efect afişarea pe ecran a ferestrei

Project Manager aferentă proiectului selectat.

Page 77: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

77

O altă modalitate mai rapidă de afişare a ferestrei Project Manager constă, în selectarea numelui de proiect direct din meniul File, unde după lista de opŃiuni apar şi numele tuturor proiectelor existente. În mod comandă, un proiect poate fi deschis printr-o comandă de forma:

MODIFY PROJECT [numeproiect | ?] care va funcŃiona asemănător cu cazul creării proiectelor şi anume:

• dacă se utilizează forma MODIFY PROJECT ? sau MODIFY PROJECT, operaŃia se va derula ca şi în cazul lansării sale din meniu;

• dacă se utilizează forma MODIFY PROJECT numeproiect

apare direct chenarul constructorului de proiecte, fără a mai apare fereastra Open.

5.1.2.2. Componentele utilitarului Project Manager Pentru a asigura o organizare cât mai clară a datelor necesare unui proiect,

fereastra Project Manager conŃine şase pagini, fişe etichetate sau foi de

proprietăŃi, fiecare dintre acestea fiind asociată unei anumite categorii de date.

Fiecare pagină are o etichetă cu numele categoriei de informaŃii pe care o

reprezintă.

Principalele componente ale paginilor din fereastra Project Manager sunt următoarele:

1. Pagina Data - conŃine datele necesare unei aplicaŃii, fiind organizată la primul nivel, pe următoarele categorii: • Database (baze de date) • Free Tabels (tabele libere) • Queries (interogări)

Fiecare bază de date poate conŃine următoarele 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), reprezentând situaŃii de ieşire şi etichete poştale (Labels), pentru tipărirea rezultatelor interogărilor.

Page 78: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

78

3. Pagina Clases - Această pagină conŃine toate bibliotecile de clase definite sau adăugate aplicaŃiei. Bibliotecile de clase în Visual FoxPro sunt memorate în fişiere cu extensia .vcx şi pot conŃine oricâte clase. Vizualizarea claselor dintr-o anumită bibliotecă se face prin execuŃia unui click pe semnul "+" din faŃa numelui bibliotecii.

4. Pagina Code - include codul sursă al programelor FoxPro precum şi aplicaŃiile asociate. Programul principal este marcat prin litere îngroşate. In cadrul paginii, pe lângă toate programele sursă avem posibilitatea de a include şi alte aplicaŃii care pot fi asociate cu aplicaŃia cu care lucrăm. Din cadrul ferestrei Project Manager putem crea, adăuga sau şterge fişiere program (cu extensia .prg) legate de aplicaŃia respectivă.

5. Pagina Other - în cadrul acestei pagini sunt stocate codurile sursă pentru meniuri, sub formă de fişiere cu extensia .mpr, cât şi celelalte fişiere, cum ar fi: icon-uri, bitmap-uri, fişiere de text etc.

6. Pagina All - conŃine toate obiectele celorlalte pagini.

5.1.2.3. Prelucrarea fişierelor din cadrul ferestrei Project Manager 1. Adăugarea şi administrarea fişierelor din proiect. Pentru adăugarea

unui nou fişier în proiect se va selecta mai întâi grupul în care se va adăuga fişierul şi apoi se va executa un click pe butonul New…, dacă fişierul se creează în momentul respectiv, respectiv pe butonul Add…, dacă fişierul există deja.

2. Ştergerea unui fişier, cum ar fi, de exemplu, o tabelă dintr-o bază de date, se va selecta mai întâi fişierul respectiv şi apoi se va acŃiona butonul Remove…

3. Afişarea fişierelor din proiect OperaŃia de afişare are o semnificaŃie diferită şi se execută diferit, în funcŃie de tipul de fişier. Astfel, pentru a afişa o tabelă, se selectează numele tabelei, după care se acŃionează butonul Browse… Dacă dorim să afişam un alt tip de fişier, de exemplu un program, se va selecta numele fişierului respectiv, după care se va acŃiona butonul Modify… Ca urmare, se va deschide o fereastră de editare în care apare codul programului respectiv.

4. Modificarea fişierelor. Pentru a realiza această operaŃie se selectează fişierul dorit şi apoi se acŃionează butonul Modify… Se va afişa fişierul respectiv, putând fi modificat. In cazul tabelelor, prin acŃionarea butonului Modify se va lansa generatorul de tabele care va afişa structura tabelei pentru modificarea câmpurilor sau indecşilor acesteia.

5. Deschiderea şi închiderea unei baze de date. Se realizează prin acŃionarea butonului Open/Close, iar pentru rularea unui program, a unei forme sau a unui raport, se va folosi butonul Run.

Page 79: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

79

5.1.3. Personalizarea ferestrei Project Manager

Fereastra Project Manager, ca orice fereastră din mediul Windows, poate fi mutată sau redimensionată pentru a ocupa o poziŃie convenabilă pe ecran. Pe lângă aceste proprietăŃi, există posibilitatea de a ascunde în întregime fereastra aşa încât să se vadă numai etichetele acesteia sau anumite pagini aferente lor. Parametrizarea gestionarului de proiecte se poate realiza astfel:

• din meniul sistem se alege opŃiunea Tools şi apoi Options; • se selectează eticheta Projects; • se selectează opŃiunea corespunzătoare din fişă.

5.1.3.1. Meniul Project În momentul afişării ferestrei Project Manager, în meniul sistem apare opŃiunea Project. OpŃiunile submeniului aferent se referă la fişierul proiect deschis, cu care lucrăm, şi se regăsesc şi în meniul rapid sau butoanele din interiorul ferestrei Project Manager. In plus, apar unele opŃiuni noi, cum ar fi: Errors şi Refresh, care afişează erorile ce pot apare la crearea unei aplicaŃii (Build), respectiv reîmprospătează fereastra Project Manager, dacă s-au adăugat sau şters componente. OpŃiunea Clean Up Project realizează o ştergere fizică a înregistrărilor marcate pentru ştergere din toate tabelele proiectului, după care pe bara de stare apare mesajul "Project packed".

5.1.3.2. Utilizarea Wizard-ului destinat creării proiectelor

Dacă în meniul vertical File se selectează opŃiunea New, iar din meniul vertical New se lasă selecta butonul radio Project şi se efectuează un click pe butonul Wizardva apare chenarul Application Wizard.

În acest chenar se specifică numele proiectului. Dacă în directorul curent există proiecte cu acelaşi nume, în chenarul Project file apare numele complectat cu calea. Utilizatorul poate selectata şi cu ajutorul butonului Browse un alt director. După acŃionarea declanşatorului OK, dacă în directorul curent mai există un proiect cu acelaşi nume utilizatorul trebuie să confirme că doreşte să înlocuiască proiectul existent. Dacă s-a trecut de această fază, apare un mesaj în care sistemul cere să se aştepte generarea aplicaŃiei după care apar cele două ferestre şi anume fereastra Project Manager şi fereastra Application Builder cu ajutorul căruia utilizatorul poate construi direct aplicaŃia. Activă este, aşa după cum se poate observa, aceasta din urmă. Dacă se doreşte generarea unui proiect se execută un click pe oriunde pe fereastra Project Manager-ului. Dacă dorim să creăm o aplicaŃie se selectează pe rând fişele etichetate. Fără a insista asupra acestora precizăm că fişele au următoarele funcŃii:

Page 80: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

80

• General – permite stabilirea unor parametrii generali referitori la: o numele aplicaŃiei (chenarul Name); o eventual al unei imagini care va fi vizualizată la lansarea

aplicaŃiei (chenarul Image) sau prin selectarea butonului Browse), respectiv a unui icon care poate fi selectat prin butonul Browse din chenarul Icon;

o tipul aplicaŃie (Normal – executat sub controlul mediului Visual FoxPro, Module – care generează module din alte aplicaŃii sau Top-Level are semnificaŃia că aplicaŃia este o aplicaŃie de tip Windows Desktop.

o Caracteristici generale ale aplicaŃiei (Splash screen) – care semnifică faptul că imaginea din Image şi informaŃiile generate cu fişa etichetată Credits vor fi vizualizate pe ecran în momentul lansării aplicaŃiei, Quick start – indică faptul că se vizualizează chenarul cu acelaşi nume pentru accesul la documente si alte tipuri de fişiere ale aplicaŃiei, About dialog – va vizualiza la lansarea chenarului cu acelaşi num e la lansarea aplicaŃiei şi în sfârşit User Logins – indică faptul că aplicaŃia va cere parolă la intrarea utilizatorilor şi va gestiona preferinŃele în situaŃia folosirii ei în regim multiutilizator.

• Credits – specifică informaŃii specifice autorului aplicaŃiei cum ar fi nume, instituŃie etc.

• Data – permite în esenŃă stabilirea surselor de date şi conŃine: o Database Wizars şi Table Wizard – permit crearea unor baze de

date sau tabele. În momentul închiderii wizard0urilor datele referitoare la tabele şi imagini sunt memorate în tabelul vertical Datasource;

o declanşatorul Select... permite selectarea unor baze de date, tabele sau imagini;

o decantorul Clear permite ştergerea din tabelul vertical a tabelului sau imaginii selectate;

o listele combinate Form Style şi Report Style permit selectarea unor stiluri de editare a formelor şi rapoartelor referitoare la linia sau liniile selectate din tabelul vertical;

o în sfârşit, declanşatorul Generate declanşează generarea unor forme sau rapoarte pentru tabelele selectate conform stilurilor alese.

• Forms – permite stabilirea unor elemente esenŃiale pentru formele utilizate în aplicaŃie: o chenarul text Name – permite specificarea unui diminutiv pentru

formă;

Page 81: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

81

o declanşatoarele Add..., Edit şi Remove – permit lansarea adăugării unei forme la aplicaŃie, eventual selectate prin Browse, modificarea (editarea) unei forme sau eliminarea unei forme din aplicaŃie;

o chenarul de selecŃie Single instance – indică faptul că se acceptă o singură instanŃiere a formei în cadrul aplicaŃiei;

o Use Navigator Toolbar şi Use Navigator Menu – indică faptul că se va introduce construi o bară de instrumente de navigare, respectiv un meniu de navigare pentru forma selectată;

o Appear in File New Dialogs şi Appear in File Open Dialogs – indică faptul că diminutivul aplicaŃiei va apare în lista chenarului de dialog New respectiv Open.

• Reports – este asemănător cu deosebirea că această fişă conŃine un singur chenar de selecŃie apare în Print Reports dialog, care specifică faptul că diminutivul raportului va apare în chenarul de dialog Print Raports.

• Advenced – permite stabilirea unor caracteristici avansate pentru aplicaŃie: o Help- permite să specificăm numele şi calea unui fişier Help pentru

aplicaŃia în acuză; o Default data directory – permite stabilirea directorului implicit în

care se vor afla fişierele de date destinate aplicaŃiei; o chenarele de selecŃie Standard toolbar şi Favorites menu – indică

faptul că aceste obiecte se vor utiliza în aplicaŃie; o declanşatorul Cleanup lansează un chenar de confirmare pentru a

şterge modificările efectuate de generatorul de aplicaŃie în tabelele sistemului (metatabele).

Page 82: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

82

REZUMAT Modulul are în componenŃă o unitate destinatǎ gestiunii proiectelor ca medii de dezvoltare de aplicaŃii cu particularizare în cazul Visual FoxPro. Dintre problemele studiate amintim: • ParticularităŃile proiectelor în Visual FoxPro. • Stabilirea modalităŃilor de creare, respective de

modificare a proiectelor; • Utilizarea ferestrei Project Manager şi a meniului

vertical aferent; • Personalizarea managerului de proiecte; • FaciliăŃi oferite de Wizard.

TEME DE CONTROL, APLICAłII

1. Elaborarea unui memento recapitulativ; 2. OperaŃii de creare, modificare şi ştergere a unor proiecte,

precum şi a unor componente ale lor cu şi fǎrǎ Wizard. BIBLIOGRAFIE 11. R.Avram-NiŃchi, N.Ghişoiu, S.Goron, S.I.NiŃchi,

N.Tomai, Baze de date şi programarea calculatoarelor utilizând Visual FoxPro, Risoprint, 2003, p. 47-89.

12. Avram-NiŃchi R., S.I.NiŃchi şi alŃii, Culegere de exerciŃii şi probleme la disciplina « Baze de date şi programarea calculatoarelor, UBB Preprint, Cluj, 2003.

13. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 125-131.

14. Dima G, Dima M., Visual FoxPro 7.0, Teora 2002. 15. M. Fotache şi alŃii, Visual FoxPro, Polirom, 2002. 16. Ghişoiu N., Visual FoxPro; exerciŃii şi programe,

Risoprint, 2002. 17. Homorodean M.A, Petrescu S, Limbajul de programare

Visual FoxPro 6.0, Niculescu, 2002. 18. *** , Microsoft Visual FoxPro 6.0: Ghidul

programatorului, Teora, 2001. 19. http://msdn.microsoft.com/vfoxpro 20. http://gotdotnet.com/team/vfp

Page 83: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

83

6. PROGRAMAREA ÎN VISUAL FOXPRO

CONCEPTE DE BAZĂ

1. Implementarea structurilor de control în Visual FoxPro 2. Gestiunea variabilelor de memorie, a câmpurilor memo

şi masivelor de date 3. Comenzi de intrare/ieşire 4. Proceduri şi funcŃii utilizator 5. Obiecte şi clase în Visual FoxPro

OBIECTIVE 1. Cunoaşterea comenzilor de implementare a structurilor de control alternative şi repetitive;

2. Cunoaşterea modului de definire a variabilelor de memorie, câmpurilor memo şi a masivelor de date.

RECOMANDĂRI PRIVIND STUDIUL

1. Se recomandă studierea principalelor comenzi de implementare a structurilor de control alternative şi repetitive (IF, DO, CASE, DO WHILE, FOR, SCAN)

2. n continuare se vor studia comenzile de intrare/ieşire, prin În testarea pe calculator a modulului de utilizare a acestora;

3. Se vor studia noŃiunile de clasă şi obiect, proprietăŃile acestora. De asemeni se vor studia conceptele de „metode” şi „evenimente”.

REZULTATE AŞTEPTATE

- La finele studiului acestui modul utilizatorul trebuie să cunoască modul de folosire al comenzilor de implementare al structurilor de control cât şi al comenzilor de intrare/ieşire;

- De asemenea utilizatorul trebuie să fie în măsură să creeze obiecte şi să ataşeze acestora secvenŃe de comenzi.

Page 84: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

84

6.1. COMENZI DE IMPLEMENTARE A STRUCTURILOR DE CONTROL ALTERNATIVE ŞI REPETITIVE

OBIECTIVE Cunoaşterea modului de funcŃionare şi utilizare a comenzilor

de implementare a structurii de control, alternative şi repetitive.

CUVINTE CHEIE

- IF - DO CASE - DO WHILE - FOR - SCAN

6.1.1. Implementarea structurilor de control în Visual FoxPro Limbajul FoxPro conŃine comenzi pentru implementarea celor trei tipuri de structuri de control: secvenŃiale, alternative şi repetitive, cu următoarele precizări: 1. Comenzile pentru implementarea structurilor de control alternative şi

repetitive nu se pot folosi în mod interactiv numai la nivel de program. 2. Limbajul nu conŃine instrucŃiuni de salt condiŃionat de tip GOTO 3. In 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 secvenŃiale, ele fiind prezentate în cadrul unor capitole distincte (crearea structurii de date, deschiderea bazei de date, actualizarea bazei de date, intrări/ieşiri de date etc.)

6.1.1.1. Structuri alternative

Aceste structuri realizează selectarea unei secvenŃe de comenzi în funcŃie de îndeplinirea sau

neîndeplinirea unei condiŃii. Pentru implementarea acestor structuri se folosesc comenzile IF

şi DO CASE.

a. Comanda IF

Această comandă permite execuŃia unei secvenŃe de instrucŃiuni pe baza evaluării unei expresii logice. Fiind cea mai simplă structură de control, poate fi considerată ca fiind părintele familiei structurilor de programare. Sintaxa generală a comenzii este următoarea:

IF<expl> <secv-comenzi1> [ELSE <secv-comenzi2>] ENDIF

Page 85: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

85

La întâlnirea acestei comenzi se evaluează <expL> şi dacă este adevărată se

execută <secv-comenzi1>, după care se trece la prima comandă după ENDIF.

Dacă condiŃia din <expL> nu este adevărată se execută <secv-comenzi2>, după

care se trece la prima comandă după ENDIF. In acest caz, dacă opŃiunea ELSE

lipseşte, se trece direct la prima comandă după ENDIF.

b. Comanda DO CASE

In scopul creşterii flexibilităŃii programului, limbajul Visual FoxPro permite implementarea

structurilor de control generalizate sau multiple, fără folosirea de instrucŃiuni IF incluse una

în alta, folosind comanda DO CASE. Ea reprezintă extinderea naturală a principiului

exclusivităŃii mutuale la două sau mai multe situaŃii. Prin urmare, în loc să folosim expresii

logice reciproc exclusive, Visual FoxPro, permite să includem orice expresie logică dorim

pentru fiecare caz sau situaŃie în parte. Sintaxa generală a comenzii este următoarea:

ExecuŃia acestei comenzi are loc astfel:

1. Se evaluează fiecare expresie logică în ordinea în care apare în comanda DO CASE, iar întâlnirea primei expresii logice adevărate se execută secvenŃa de comenzi aferentă, după care se trece la prima comandă după ENDCASE.

2. Dacă nici una din expresiile logice specificate în comanda DO CASE nu sunt adevărate, se execută grupul de comenzi din clauza OTHERWISE sau se trece la prima comandă după ENDCASE, dacă clauza OTHERWISE lipseşte.

3. Dacă mai multe expresii logice din comanda DO CASE sunt adevărate, se execută numai secvenŃa de comenzi aferentă primei

DO CASE CASE <expL1> <secv-com1> CASE <expL2> <secv-com2> OTHER WISE <secv-comn> ENDCASE

Page 86: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

86

condiŃii logice adevărate, după care se trece la prima comandă după ENDCASE.

6.1.1.2. Structuri repetitive

Structurile repetitive pot fi implementate în limbajul Visual FoxPro cu ajutorul comenzilor:

DO WHILE, FOR şi SCAN.

a. Comanda DO WHILE Dacă structura DO CASE… ENDCASE este o copie aproape fidelă a structurii IF…ENDIF, structura DO WHILE…ENDDO este asemănătoare şi ea cu IF…ENDIF. Astfel, dacă comanda IF execută secvenŃa de instrucŃiuni dacă expresia logică este adevărată, comanda DO WHILE permite execuŃia repetată a secvenŃei de instrucŃiuni cât timp expresia logică din cadrul comenzii este adevărată. Ea permite astfel implementarea structurilor de control repetitive cu condiŃionare anterioară. Formatul general al comenzii este următorul:

ExecuŃia comenzii începe cu evaluarea expresiei logice. Astfel, dacă expresia logică este adevărată se execută secvenŃa de comenzi până la ENDDO, după care se revine la evaluarea expresiei logice. Dacă expresia logică este falsă se trece la prima comandă după ENDDO. InstrucŃiunea LOOP determină revenirea la evaluarea condiŃiei logice din DO WHILE.,

b. Comanda FOR Această comandă se află într-o relaŃie foarte strânsă cu comanda DO

WHILE, fiind o variantă asemănătoare a comenzii DO WHILE. Ea permite execuŃia repetată a unei secvenŃe de comenzi de un anumit număr de ori fiind utilizată pentru implementarea structurilor de control repetitive cu indici. Formatul general al comenzii este următorul:

unde: <var>; este variabila de control care indică de câte ori se execută secvenŃa de

FOR <var> =<exp1> TO <exp2> [,STEP<exp3>] <secvenŃă de comenzi> [LOOP] [EXIT] ENDFOR/NEXT

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

Page 87: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

87

comenzi din instrucŃiunea FOR <exp1>; reprezintă valoarea iniŃială a variabilei de control <exp2>; defineşte valoarea finală a variabilei de control <exp3>; defineşte raŃia cu care se modifică valoarea iniŃială a variabilei de control.

Valoarea implicită pentru raŃie este 1

c. Comanda SCAN Această comandă reprezintă o altă modalitate de ciclare specializată, fiind proiectată pentru execuŃia de secvenŃe de comenzi prin care se prelucrează înregistrările unui tabel din baza de date. ExecuŃia comenzii determină parcurgerea tabelului curent şi efectuarea pentru fiecare înregistrare selectată din tabel a secvenŃei de comenzi specificate în comandă. Formatul general al comenzii este următorul: SemnificaŃia opŃiunilor din cadrul comenzii este următoarea: - <domeniu>, FOR<expL1>, WHILE <expL2>; permit selectarea din

tabelul curent a înregistrărilor pentru care se va executa secvenŃa de comenzi din comanda SCAN.

- <secvenŃa de comenzi>; conŃine comenzile ce urmează a fi executate pentru fiecare înregistrare selectată din tabel. Reluarea secvenŃei de comenzi pentru următoarea înregistrare se face automat la întâlnirea cuvintelor ENDSCN sau LOOP.

SCAN [<domeniu>] [FOR<expL1>] [WHILE <expL2>] [NOOPTIMIZE] [LOOP] [EXIT] <secvenŃa-de-comenzi> ENDSCAN

Page 88: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

88

6.2. COMENZI DE INTRARE/IEŞIRE

OBIETIVE Însuşirea modului de folosire al comenzilor de intrare/ieşire în mod linie: INPUT, ACCEPT

CUVINTE CHEIE

Însuşirea de afişare, coduri de funcŃii.

6.2.1. Comenzi de intrare/ieşire Aceste comenzi se pot împărŃi în două categorii şi anume:

1. Comenzi de intrare/ieşire în mod linie. 2. Comenzi de intrare/ieşire în mod ecran.

Comenzile de intrare/ieşire în mod linie permit afişarea, respectiv introducerea

datelor din poziŃia curentă a cursorului. Acestea sunt: ACCEPT, INPUT, WAIT

(de intrare), ?,??,???, DISPLAY, LIST (de ieşire).

6.2.1.1. 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. OpŃional, se poate afişa un mesaj, definit de

utilizator, referitor la informaŃia de preluat. Sintaxa generală a celor două comenzi este

următoarea:

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. In

cazul comenzii INPUT, datele de intrare sunt interpretate ca o expresie care este evaluată,

rezultatul evaluării, 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 afişează înaintea datei

de preluat.

6.2.1.2. Comenzi de ieşire în mod linie; Formatul de afişare/citire

ACCEPT[<expC>]TO<var>|<element-masiv> INPUT[<expC>]TO<var>|<element-masiv>

Page 89: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

89

La afişarea valorii unor date sau la citirea lor de pe un periferic se folosesc clauzele PICTURE şi FUNCTION cu următoarea sintaxă: Ele determină afişarea sau citirea datelor precizate într-o comandă de intrare sau de ieşire, într-un format specificat prin <sir1> respectiv <sir2> astfel: <sir1> conŃine între ghilimele diferite coduri de afişare, câte unul pentru fiecare caracter din date de afişat <sir2> conŃine tot între ghilimele coduri de funcŃie. Un cod de funcŃie acŃionează asupra tuturor caracterelor din data de afişat sau citit şi defineşte o anumită caracteristică a textului de afişat sau citit.

6.3. OBIECTE ŞI CLASE ÎN VISUAL FOXPRO OBIECTIVE 1. Însuşirea conceptelor de clasă, obiect metode şi

evenimente; 2. Cunoaşterea modului de creare a claselor şi obiectelor în

Visual FoxPro şi a modului de referire la obiectele unei clase.

CUVINTE CHEIE

- Clasă, - Obiect, - Metode, - Evenimente, - Controale, - Containere.

6.3.1. Proceduri şi funcŃii utilizator

6.3.1.1. Crearea şi execuŃia programelor în Visual FoxPro Crearea unui program în Visual FoxPro presupune parcurgerea următoarelor 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 afişează 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

PICTURE <sir1> FUNCTION <sir2>

Page 90: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

90

programului se pot acŃiona tastele CTRL+W sau se selectează opŃiunea Save sau SAVE AS din meniul File.

2. lansarea în execuŃie; 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.

- în fereastra de comenzi se introduce comanda DO <nume-program> [WITH <lista-parametru>].

- din meniul PROGRAM se selectează opŃiunea DO. 6.3.1.2. Proceduri şi funcŃii definite de utilizator Pentru a uşura înŃelegerea, testarea şi depanarea unui program, acesta se structurează pe module, unde fiecare modul conŃine o secvenŃă de comenzi prin care se realizează o anumită prelucrare. Aceste module se pot defini fie ca module principale, fie ca proceduri sau funcŃii utilizator (UFD - User Defined Functions). Modulele organizate sub formă de proceduri şi funcŃii utilizator pot fi apelate în cadrul unui program, de mai multe ori, prin câte o comandă de apel, fără a rescrie aceste module ori de câte ori sunt executate. Modul de definire şi apelare a unei proceduri sau funcŃii utilizator, prezintă următoarele particularităŃi: 1. o procedură conŃine o secvenŃă de comenzi grupate sub acelaşi nume care

realizează o anumită prelucrare. Ea este apelată de alte module şi poate primi de la acestea unul sau mai mulŃi parametrii. După execuŃia comenzilor din cadrul procedurii, se redă controlul programului apelant, fără a returna neapărat vreo valoare.

2. o funcŃie utilizator conŃine de asemenea o secvenŃă de comenzi. Ea primeşte de obicei un set de parametrii de la programul apelant şi returnează acestuia la terminarea prelucrării o valoare ca rezultat al prelucrărilor efectuate asupra parametrilor primiŃi.

Definirea procedurii se realizează cu comanda PROCEDURE, iar a funcŃiei cu comanda

FUNCTION.

6.3.1.3. Obiecte şi clase în Visual FoxPro In Visual FoxPro, faŃă de versiunea clasică, s-au adăugat o serie de facilităŃi, 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

proprietăŃi. Obiectele mai pot fi definite ca reprezentând entităŃi din lumea reală, care

înglobează în ele stări (date) şi comportamente (funcŃiuni). Reprezentarea unei entităŃi se

realizează printr-un ansamblu de proprietăŃi comune (colecŃii de proprietăŃi).

Page 91: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

91

6.3.1.4. ProprietăŃi, metode şi evenimente

Fiecare obiect posedă anumite proprietăŃi şi metode în funcŃie de clasa din care fac parte. Astfel, un buton de comandă poate avea următoarele proprietăŃi:

- CAPTION - conŃine textul scris pe buton; - LEFT - conŃine distanŃa faŃă de marginea din stânga ecranului; - RIGHT - conŃine distanŃa faŃă de marginea din dreapta ecranului; - TOP, - conŃine distanŃa faŃă de partea de sus a ecranului; - HIGHT - conŃine înălŃimea butonului; - VISIBLE - conŃine 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 (câmp, fereastră, control) pe care îl folosim pentru a defini aspectul sau comportamentul obiectului respectiv. In Visual FoxPro, proprietatea se defineşte 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. Aşa cum rezultă din exemplul dat, proprietăŃile unui obiect, respectiv a unui buton, identifică atributele fizice ale acestuia (lungime, înălŃime etc.). Insă, obiectele nu sunt caracterizate numai prin atributele fizice, ci ele conŃin ceva în plus faŃă de aceste proprietăŃi, respectiv metodele. Metodele sunt acŃiuni pe care le poate executa un obiect şi includ cod (instrucŃiuni) care indică modul de comportament al obiectului respectiv.

Codul aferent obiectelor, se defineşte de către utilizator, în funcŃie de cerinŃele programului şi se execută în momentul apelării metodei respective. Unele dintre metode, posedă cod încorporat, care indică un anumit comportament al obiectului. Exemplu metodele:

SHOW - afişează şi activează o fereastră pe ecran; REFRESH - afişează starea unui obiect, după efectuarea unor modificări

asupra obiectului respectiv. Deci, faŃă de instrucŃiuni, unei metode utilizatorul îi poate ataşa o

secvenŃă de cod specifică unei anumite prelucrări, care se execută în momentul apelării metodei respective.

Fiecare obiect în Visual FoxPro, recunoaşte şi răspunde la anumite evenimente. Acestea pot fi evenimente externe, iniŃiate de utilizator, sau interne, iniŃiale de către sistemul Visual FoxPro.

Evenimentele externe sunt generate de anumite acŃiuni cum ar fi: efectuarea unui clic cu mouse-ul pe un obiect, apăsarea 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 câte ori survine evenimentul click, adică facem un clic cu mouse-ul pe obiectul respectiv.

Page 92: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

92

6.3.2. Clase Prin proprietăŃi, 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 mulŃime de caracteristici

(greutate, dimensiuni, culoare etc., numite proprietăŃi), dar principiul

de bază al funcŃionării lor este acelaşi, conŃin piese electronice

aproape identice, pot efectua aceleaşi calcule.

Ca urmare, obiectele care au aceleaşi proprietăŃi şi acelaşi comportament (răspund la aceleaşi evenimente prin aceleaşi acŃiuni) aparŃin aceleaşi clase. Astfel, cele două calculatoare (de birou şi de buzunar), prin elementele lor comune (circuite, piese electronice) şi prin faptul că pot răspunde la aceleaşi evenimente interne sau externe, se consideră că aparŃin aceleaşi clase, cea de calculatoare. Deci, o clasă descrie o mulŃime de obiecte cu proprietăŃi şi comportament similar. Cele două noŃiuni, clasă şi obiect, nu pot fi însă confundate pentru că nu reprezintă acelaşi lucru. O clasă conŃine informaŃii despre felul cum arată şi se comportă obiectele care-i aparŃin. Clasa reprezintă deci o noŃiune abstractă care defineşte structura şi comportamentul obiectelor care-i aparŃin.

6.3.2.1. Subclase

În Visual FoxPro pot fi create clase derivate sau subclase pornind de la clasele de bază. Având o clasă deja definită, putem genera, pornind de la această clasă, o nouă clasă prin operaŃia de derivare. O clasă derivată moşteneşte automat proprietăŃile şi metodele clasei de bază, deci aceste proprietăŃi nu mai trebuie definite în clasa derivată. In noua clasă se vor include numai caracteristici noi, cele vechi considerându-se implicit.

6.3.2.2. Tipuri de clase şi obiecte

Visual FoxPro conŃine 28 de clase de bază predefinite cu ajutorul cărora putem crea noi obiecte. Aceste clase se împart la rândul lor în două subcategorii:

1 - clase Container 2 - clase Control

Page 93: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

93

REZUMAT Implementarea structurilor de control în Visual FoxPro

Limbajul Visual FoxPro conŃine comenzi pentru implementarea celor trei tipuri de structuri de control: secvenŃiale, alternative şi repetitive, cu următoarele precizări: - Comenzile pentru implementarea structurilor de control alternative

şi repetitive nu se pot folosi în mod interactiv numai la nivel de program.

- Limbajul nu conŃine instrucŃiuni de salt condiŃionat de tip GOTO In capitolul de faŃă urmează a fi prezentate comenzile pentru implementarea structurilor alternative şi repetitive, respectiv: IF, DO CASE, DO WHILE, FOR şi SCAN.

Comanda IF

Această comandă permite execuŃia unei secvenŃe de instrucŃiuni pe baza evaluării

unei expresii logice. La întâlnirea acestei comenzi se evaluează <expL> şi dacă

este adevărată se execută <secv-comenzi1>, după care se trece la prima comandă

după ENDIF.

Dacă condiŃia din <expL> nu este adevărată se execută <secv-comenzi2>, după care se trece la prima comandă după ENDIF. In acest caz, dacă opŃiunea ELSE lipseşte, se trece direct la prima comandă după ENDIF.

Comanda DO CASE In scopul creşterii flexibilităŃii programului, limbajul Visual FoxPro permite implementarea structurilor de control generalizate sau multiple, fără folosirea de instrucŃiuni IF incluse una în alta, folosind comanda DO CASE. Comanda DO WHILE Astfel, dacă comanda IF execută secvenŃa de instrucŃiuni dacă expresia logică este adevărată, comanda DO WHILE permite execuŃia repetată a secvenŃei de instrucŃiuni cât timp expresia logică din cadrul comenzii este adevărată. Ea permite astfel implementarea structurilor de control repetitive cu condiŃionare anterioară. ExecuŃia comenzii începe cu evaluarea expresiei logice. Astfel, dacă expresia logică este adevărată se execută secvenŃa de comenzi până la ENDDO, după care se revine la evaluarea expresiei logice. Dacă expresia logică este falsă se trece la prima comandă după ENDDO.

Comanda FOR

Page 94: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

94

Această comandă se află într-o relaŃie foarte strânsă cu comanda DO WHILE, fiind o variantă asemănătoare a comenzii DO WHILE. Ea permite execuŃia repetată a unei secvenŃe de comenzi de un anumit număr 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 execuŃia de secvenŃe de comenzi prin care se prelucrează înregistrările unui tabel din baza de date. ExecuŃia comenzii determină parcurgerea tabelului curent şi efectuarea pentru fiecare înregistrare selectată din tabel a secvenŃei de comenzi specificate în comandă. Comenzi de intrare/ieşire Aceste comenzi se pot împărŃi în două categorii şi anume: - Comenzi de intrare/ieşire în mod linie. - Comenzi de intrare/ieşire în mod ecran.

Comenzile de intrare/ieşire în mod linie permit afişarea, respectiv introducerea datelor din poziŃia curentă a cursorului. Acestea sunt: ACCEPT, INPUT, WAIT (de intrare), ?,??,???, DISPLAY, LIST (de ieşire). 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 proprietăŃi.

O proprietate este, prin urmare, un atribut al unui obiect (câmp, fereastră, control) pe care îl folosim pentru a defini aspectul sau comportamentul obiectului respectiv.

Aşa cum rezultă din exemplul dat, proprietăŃile unui obiect, respectiv a unui buton, identifică atributele fizice ale acestuia (lungime, înălŃime etc.). Insă, obiectele nu sunt caracterizate numai prin atributele fizice, ci ele conŃin ceva în plus faŃă de aceste proprietăŃi, respectiv metodele.

Metodele sunt acŃiuni pe care le poate executa un obiect şi includ cod (instrucŃiuni) care indică modul de comportament al obiectului respectiv.

Codul aferent obiectelor, se defineşte de către utilizator, în

Page 95: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

95

funcŃie de cerinŃele programului şi se execută în momentul apelării metodei respective. Unele dintre metode, posedă cod încorporat, care indică un anumit comportament al obiectului.

Fiecare obiect în Visual FoxPro, recunoaşte şi răspunde la anumite evenimente. Acestea pot fi evenimente externe, iniŃiate de utilizator, sau interne, iniŃiale de către sistemul Visual FoxPro. Evenimentele externe sunt generate de anumite acŃiuni cum ar fi: efectuarea unui clic cu mouse-ul pe un obiect, apăsarea 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ă conŃine informaŃii despre felul cum arată şi se comportă obiectele care-i

aparŃin. Clasa reprezintă deci o noŃiune abstractă care defineşte structura şi

comportamentul obiectelor care-i aparŃin.

Subclase In Visual FoxPro pot fi create clase derivate sau subclase pornind de la clasele de bază. Având o clasă deja definită, putem genera, pornind de la această clasă, o nouă clasă prin operaŃia de derivare. O clasă derivată moşteneşte automat proprietăŃile şi metodele clasei de bază, deci aceste proprietăŃi nu mai trebuie definite în clasa derivată

Tipuri de clase şi obiecte Visual FoxPro conŃine 28 de clase de bază predefinite cu

ajutorul cărora putem crea noi obiecte. Aceste clase se împart la rândul lor în două subcategorii:

1 - clase Container 2 - clase Control

TEME CONTROL

1. Se vor elabora programe de folosire a comenzilor de implementare a structurilor de control şi a comenzilor de intrare/ieşire;

2. Se vor elabora programe de creare şi utilizare a clasei form şi a obiectelor de tip buton de comandă.

BIBLIOGR 1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai N.

Page 96: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

96

AFIE Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, pg. 224-252. 2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 176-200 3.Gabriel Dima, Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora, Bucuresti,1999, pag . 175-186, 159-172. 4.Marin Fotache,Ioan Brava, Cătălin Strâmbei, Liviu CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor profesionale, Editura Polirom Iaşi, 2002, pag. 82-106, 370-417. 5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea aplicaŃiilor cu baze de date în Visual FoxPro, Editura All, Bucureşti, 2001, pag. 217-233, 91-127. 6. Paul Petruş, Visual FoxPro 5.0, Editura Promedia, Cluj, 1999, pag. 112-132. 7. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003, pag. 13-15, 56-69.

Page 97: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

97

7. CREAREA ŞI UTILIZAREA FORMULARELOR ÎN VISUAL FOXPRO

CONCEPTE DE BAZĂ

1. Caracteristici generale 2. Crearea unui nou formular 3. ProprietăŃi şi metode ale formularelor 4. Mediu de date ale unui formular 5. Scrierea codului pentru evenimentele şi metodele unui

formular 6. Salvarea şi rularea unui formular 7. Descrierea şi utilizarea obiectelor grafice

OBIECTIVE 1. Însuşirea tehnicilor de creare a unui formular Visual FoxPro şi de adăugare de obiecte în cadrul formularului respectiv;

2. Cunoaşterea modului de asigurare a proprietăŃilor şi metodelor unui formular;

3. Cunoaşterea principalelor evenimente la nivel de format şi a modului de scriere a codului pentru evenimentele respective;

4. Cunoaşterea obiectivelor grafice ce pot fi într-un formular (proprietate, evenimente): butoane radio, liste, casete de validare, casete de text, butoane de comandă.

RECOMANDĂRI PRIVIND STUDIUL

1. În vederea cunoaşterii modului de creare a unui formular, se recomandă efectuarea de exerciŃii practice, folosind în acest scop Form Wizard şi apoi Form Designer;

2. După crearea formularului se vor studia proprietăŃile aferente unui formular, urmărind aceste proprietăŃi în fereastra Properties;

3. Se vor introduce apoi în formularul creat o serie de obiecte de pe bara Form Controls şi apoi se vor defini proprietăŃile acestora din fereastra Properties;

4. În etapa următoare se vor defini evenimentele aferente formularului şi obiectelor incluse în formular şi se va scrie secvenŃa de comenzi pentru fiecare eveniment în funcŃie de programul pentru care s-a proiectat formularul;

5. În ultima etapă se salvează şi se lansează formularul în execuŃie.

Page 98: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

98

REZULTATE AŞTEPTATE

1. La încheierea studiului acestui modul, utilizatorul trebuie să fie în măsură să creeze un formular cu diferite obiecte încorporate în formular şi să definească proprietăŃile şi evenimentele aferente formularului şi obiectelor aferente.

2. Formularul astfel creat să fie testat pe calculator şi să permită executarea corectă a programului pentru care a fost proiectat.

Page 99: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

99

7.1. CREAREA FORMULARELOR ÎN VISUAL FOXPRO ŞI ADĂUGAREA OBIECTELOR LA FORMUALR

OBIECTIVE 1. Însuşirea modulelor de creare a unui formular: prin

comenzi, cu utilitarele Form Designer sau Form Wizard; 2. Cunoaşterea tehnicilor de adăugare a obiectelor în cadrul

unui formular folosind bara de instrumente Form Controls şi aplicaŃia Form Builder.

CUVINTE CHEIE

- FORM DESIGNER - FORM WIZARD - FORM BUILDER - FORM CONTROLS.

7.1.1. Citirea datelor; Formulare

In 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 afişat pe ecran, sau în cadrul unei ferestre, prin intermediul unor comenzi specifice sau cu generatorul de ecrane. Odată cu apariŃia însă a limbajelor orientate pe obiect, ecranele de introducere date au fost înlocuite cu formulare. Formularul poate fi considerat ca o fereastră având 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 având ca toate celelalte obiecte, proprietăŃi, metode şi evenimente asociate. Acestea definesc aspectul exterior al formularelor şi determină în acelaşi timp comportamentul acestuia în diverse situaŃii. Dintre proprietăŃile unui formular putem menŃiona: nume, dimensiuni, culoare fond, culoare scris. Pe lângă proprietăŃi o formulară mai are ataşate secvenŃe de cod (metode) executabile în anumite situaŃii. Modelul programării orientat pe obiecte, implementat în Visual FoxPro, este şi unul condus de evenimente. Ca urmare, la specificarea unei secvenŃe de cod ataşată unui eveniment, acesta se execută automat ori de câte ori se produce evenimentul respectiv (de exemplu apăsarea unei taste, execuŃia unui clic cu mouse-ul etc.) In cadrul unui formular se pot insera diferite obiecte grafice, care permit citirea şi manipularea datelor de intrare. Aceste obiecte au şi ele asociate anumite proprietăŃi, metode şi evenimente şi permit astfel prelucrarea datelor de intrare sau afişarea unor date din tabelele bazei de date. După creare, formularul poate fi rulat imediat prin selectarea butonului (Run) de pe bara de instrumente standard.

Page 100: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

100

7.1.2. Crearea unui nou formular Crearea unui formular se poate realiza în unul din următoarele moduri: - prin intermediul comenzilor limbajului Visual FoxPro - prin intermediul utilitarului Form Designer - prin intermediul utilitarului Form Wizard În primul caz este necesară cunoaşterea comenzilor de definire obiecte, clase şi proprietăŃi ale formularului şi obiectelor incluse în formular cât şi a comenzilor de definire a procedurilor asociate unor evenimente. Pentru a înlătura inconvenientele definirii formularelor prin program, sistemul Visual FoxPro, dispune de un utilitar special cu ajutorul căruia utilizatorul poate crea mult mai rapid diferite formulare numit Form Designer (constructor de formulare). Alături de acest instrument se mai pot folosi utilitarele Formular Builder şi Formular Wizard. Utilitarul Form Builder (opŃiunea Quik Form) a meniului Form, este utilizat pentru a popula rapid un formular cu câmpuri ale unei tabele. El nu se foloseşte, prin urmare, la crearea unui formular, ci numai pentru introducerea rapidă a componentelor acestuia. Vom crea formularul în formula iniŃială cu Form Designer sau Form Wizard, adăugându-i apoi câmpurile dorite cu Form Builder. De altfel, şi celelalte obiecte introduse într-un formular în meniul Shortcut opŃiunea 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 execuŃie şi care poate fi folosit într-o aplicaŃie mai simplă . După creare, formularele sunt memorate în fereastra Project Manager, secŃiunea Documents, la pictograma cu textul Forms.

7.1.2.1. 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 fiecărui obiect inclus în formular, pe măsură ce acesta se construieşte. Pe durata proiectării formularului, acesta se poate lansa în execuŃie folosind butonul Run şi apoi se poate reveni, din nou, în faza de creare, selectând butonul Modify Form. Pentru crearea unui formular cu ajutorul utilitarului Formular Designer se folosesc următoarele variante:

Page 101: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

101

1. Se selectează din fereastra Project Manager secŃiunea Documents, iconul sau pictograma cu textul Forms. In continuare, tot din cadrul ferestrei Project Manager se selectează butonul New… sau opŃiunea New File din meniul Project. In ambele cazuri, pe ecran apare fereastra New Form, din care se va selecta opŃiunea cu acelaşi nume 2. Se selectează din meniul File, opŃiunea New, care determină afişarea, pe ecran, a ferestrei New. Din această fereastră se selectează butonul radio Form şi apoi opŃiunea New File. 3. Se introduce în fereastra de comenzi comanda:

CREATE FORMULAR <nume-formular>

7.1.2.2. Crearea unui formular cu Form Wizard În cadrul unei aplicaŃii de tip Wizard, la crearea unui obiect aplicaŃia respectivă afişează anumite întrebări, urmând ca pe baza răspunsului ales de proiectant să fie creat un anumit obiect. Form Wizard funcŃionează după acelaşi principiu şi ca atare va solicita din partea proiectantului informaŃii privind: tabelele utilizate, denumirea câmpurilor, modalităŃi de indexare, tipuri de obiecte ce urmează a fi incluse în formular, etc. Toate întrebările referitor la aceste informaŃii sunt concepute în cadrul a 4-6 etape după care vom obŃine un formular care poate fi ulterior modificat. Pentru crearea unui formular cu Formular Wizard se parcurg următorii paşi:

- se selectează din fereastra Project Manager secŃiunea Forms şi apoi butonul New care determină deschiderea ferestrei New Form din care se selectează butonul Form Wizard;

- se selectează din meniul File, opŃiunea New care determină afişarea ferestrei New din care se selectează butonul radio Form şi apoi butonul Wizard;

In ambele cazuri prin selectarea butonului Form Wizard sau Wizard in al doilea caz ,pe ecran se afişează fereastra Wizard Selection cu două opŃiuni: Form Wizard şi One -To-Many Form Wizard. După selectarea tipului de formular dorit se acŃionează butonul OK iar pe ecran apare fereastra Form Wizard. Prin intermediul celor două opŃiuni 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 operaŃii de afişare înregistrări, de modificare, adăugare ş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 defineşte o relaŃie de tip 1-n. Ca urmare se pot afişa înregistrări din tabelul părinte şi cele aferente din tabelul fiu. 7.1.3.Adăugarea obiectelor la un formular

Page 102: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

102

Pentru ca un formular să poată fi rulat şi să execute o anumită prelucrare (încărcarea unui tabel cu date sau actualizarea unui tabel etc.) acesta trebuie să conŃină diferite controale sau obiecte de control cu proprietăŃile configurate şi codul sursă asociat evenimentelor. La un formular se pot adăuga: controale, containere, clase definite de utilizator şi obiecte OLE. Containerele sunt obiecte care pot conŃine alte containere sau controale. Astfel, un formular ca şi container poate conŃine diferite controale (butoane de comandă, casete de validare etc.) Controalele pot face parte din containere, dar nu pot conŃine alte obiecte, adică nu pot fi părinte pentru alte obiecte. Pentru a adăuga un control într-un formular se foloseşte bara cu instrumente Form Controls. Dacă acesta nu este deschisă şi afişată pe ecran, pentru a o deschide se selectează din meniul View opŃiunea Form Controls Toolbar. Această bară conŃine toate obiectele ce pot fi adăugate în cadrul unui formular sub forma unor pictograme. Pentru a adăuga 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.

7.2. PROPRIETĂłI ŞI METODE ALE FORMULARELOR OBIETIVE - cunoaşterea principalelor proprietăŃi şi evenimente

aferente unui formular şi a modului de configurare a acestuia;

- cunoaşterea structurii ferestrei PROPERTIES şi a modului de selectare a proprietăŃilor şi metodelor aferente formularului şi obiectelor incluse în formular;

- cunoaşterea modului de scriere a codului (secvenŃe de comenzi) pentru evenimentele unui formular;

CUVINTE CHEIE

- fereastra PROPERTIES, caseta OBJECT, pagina METODS, evenimentele INIT, LOAD, SHOW, CLICK.

7.2. ProprietăŃi şi metode ale formularelor; Fereastra Properties

Fereastra Properties este comună formularului şi tuturor obiectelor din formular creat cu Visual FoxPro. Cu ajutorul acestei ferestre vizualizăm şi configurăm proprietăŃile şi metodele formularului şi ale obiectelor din formular pe toată durata proiectării acestuia. La deschiderea unui formular, fereastra Properties va afişa proprietăŃile şi metode aferente formularului. Pentru a edita sau modifica aceste proprietăŃi ale formularului sau ale unui alt obiect inclus în formular se va selecta obiectul din caseta Object.

Page 103: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

103

7.2.1. Componentele ferestrei Properties Fereastra Properties conŃine următoarele componente: 1. Zona pentru proprietăŃi şi metode apare în partea stângă de jos a ferestrei şi conŃine proprietăŃile şi metodele pentru obiectul curent selectat (lista Properties and Events). 2. Zona de valori apare în partea dreaptă de jos a ferestrei şi conŃine valorile aferente proprietăŃilor unui obiect. 3. Taburi (pagini)apar în partea superioară a ferestrei, în număr de cinci şi permit vizualizarea proprietăŃilor şi metodelor obiectului curent selectat astfel: dacă se selectează tabul All se afişează toate proprietăŃile şi metodele obiectului curent, iar dacă este selectat unul din celelalte taburi, se afişează doar un subset de proprietăŃi sau metode pentru obiectul curent, în funcŃie de denumirea tabului. 4. Caseta de configurare proprietăŃi (Property setting)această componentă, numită şi cutie de editare se află deasupra zonei dreptunghiulare care conŃine proprietăŃile şi metodele pentru obiectul curent selectat şi afişează valoarea proprietăŃii selectate. 5. Caseta de obiecte (Object) conŃine denumirea obiectului curent selectat, cu care lucrăm la un moment dat. Prin execuŃia unui clic pe pictograma aferentă formularului se afişează într-o listă toate obiectele incluse în formular sub forma unei ierarhii specifice platformei Windows.

Page 104: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

104

7.2.2. Configurarea proprietăŃilor şi metodelor unui formular în timpul proiectării Fereastra Properties afişează la deschidere proprietăŃile şi metodele obiectului curent selectat. Pentru a edita proprietăŃile sau metodele altui obiect, mai întâi 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 proprietăŃi. Dacă modificăm codul unei metode după selectarea metodei se execută un dublu clic pe metoda respectivă având ca efect afişarea ferestrei aferentă metodei în care se poate modifica codul existent sau introduce alt cod, după care fereastra se închide revenindu-se în fereastra Properties. Fereastra aferentă metodei de modificat se poate deschide şi prin selectarea opŃiunii 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 proprietăŃilor sau metodelor unui obiect se au în vedere următoarele aspecte:

1. proprietăŃile protejate la scriere (Read only) sunt scrise în zona Property and Events cu caractere italice în timp ce proprietăŃile read-write sunt scrise cu caractere normale.valorile implicite ale proprietăŃilor apar scrise cu litere normale (Regular) iar valorile modificate de utilizator cu litere îngroşate (Bold). In cazul metodelor modificate, în dreptul acestora apare scris cu litere îngroşate, expresia: [User Procedure].

2. pentru a readuce o metodă sau proprietate modificată la valoarea iniŃială, înainte de a acŃiona tasta Enter se va putea folosi opŃiunea Reset to Default din meniul Shortcut al obiectului respectiv. 4 - în cadrul ferestrei Properties putem atribui proprietăŃilor valori rezultate în urma evaluării unor expresii sau funcŃii, prin introducerea, în caseta de editare, a semnului egal urmat de expresia sau funcŃia respectivă . Exemplu, pentru textul reprezentând titlul unei ferestre (proprietatea Caption) putem introduce în caseta de editare expresia:= ALIAS() pentru a obŃine ca text numele fişierului curent selectat.

o proprietate 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) proprietăŃilor unui formular, acestea devin efective, cu excepŃia cazului în care proprietatea Visible are valoarea .F. 7.2.3. Definirea aspectului exterior al unui formular

Page 105: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

105

Principalele caracteristici ale unui formulae referitoare la aspectul exterior sunt cele privind poziŃia formularului pe ecran şi dimensiunea acestuia. Definirea dimensiunii şi poziŃiei unui formular se realizează prin intermediul următoarelor proprietăŃi: 1.Top şi Left - permit definirea poziŃiei pentru colŃul din stânga sus al ferestrei

formularului. In mod implicit, Visual FoxPro plasează un formular nou în colŃul din stânga sus al ferestrei constructorului de formulare (Top=0, Left=0)

2.AutoCenter - determină poziŃionarea formularului în centrul ferestrei constructorului de formulare, dacă proprietatea AutoCenter are valoarea .T., fără a Ńine cont de valorile proprietăŃilor Left şi Top.

3.Hight şi Width - definesc dimensiunea unui formular, respectiv înălŃimea şi lungimea acesteia, exprimate în pixeli.

3. AlwayOnTop - indică dacă un formular este afişat deasupra celorlalte ferestre deschise. Valoarea implicită este .F. Alte proprietăŃi referitoare la aspectul unui formular sunt următoarele: 1 - Caption - reprezintă titlul formularului sau textul care apare pe bara de titlu

şi care implicit are aceeaşi valoare cu numele formularului definit prin proprietatea Name.

2 - Bordstyle - defineşte 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 proprietăŃi pot fi modificate prin selectarea culorii dorite din fereastra Color Palette sau din fereastra Color care se afişează pe ecran prin execuŃia unui dublu clic pe proprietatea BackColor sau ForeColor din fereastra Properties. 7.2.4. Configurarea metodelor şi proprietăŃilor unui formular prin comenzi

Pentru a configura proprietăŃile sau metodele unui obiect prin comenzi, acesta trebuie mai întâi 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 proprietăŃi. Variabila obiect pentru formular este chiar numele fişierului .scx. ProprietăŃile sau metodele pot fi configurate prin intermediul referinŃelor la obiect, şi proprietate sau metodă , separate prin punct, astfel:

Container. obiect..proprietate = valoare variabilă -obiect.control.metodă

Page 106: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

106

7.2.4.1. Scrierea codului pentru evenimentele/metodele unui formular Fiecare obiect se caracterizează prin atributele stare şi comportament. Starea unui obiect se defineşte prin proprietăŃile sale, iar comportamentul prin metodele pe care pe poate executa şi evenimentele la care poate răspunde. In condiŃiile programării orientate pe obiect şi condusă de evenimente, utilizatorul este cel care controlează programul. Prin urmare, programul aşteaptă ca utilizatorul să facă ceva (apăsarea unei taste, execuŃia unui clic cu mouse-ul) urmând ca programul să răspundă la evenimentul respectiv prin declanşarea unor operaŃii de prelucrare. La apariŃia unui eveniment programul va executa codul metodei asociate evenimentului respectiv. Pentru fiecare obiect inclus într-un formular cât şi pentru formularul respectiv, metodele şi evenimentele aferente apar în fereastra Properties, pagina Methods. Pentru a ataşa cod în cadrul unei metode aferentă unui obiect, se selectează mai întâi obiectul, iar în pagina Methods din fereastra Properties se vor afişa toate metodele şi secvenŃele 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ă opŃiunea Code din meniul shortcut al formularului sau din submeniul View. Fereastra aferentă codului unei metode are următoarea structură : In caseta Object va apare obiectul selectat. Prin acŃionarea butonului din dreapta casetei se va deschide o listă derulantă conŃinând toate obiectele incluse în formular. In partea dreaptă a ferestrei apare caseta Procedure care conŃine metoda pentru care se va scrie cod şi în acest caz prin acŃionarea butonului cu săgeată în jos apar metodele şi evenimentele asociate obiectului selectat. 7.2.4.2. Principalele evenimente şi metode la nivel de formular Pentru un formular există anumite evenimente la care acesta poate răspunde şi pentru care utilizatorul trebuie să introducă comenzi (secvenŃe de cod) în cadrul metodelor asociate evenimentelor respective. Alegerea metodelor în care se va introduce cod, se face în funcŃie de tipul de obiect şi de momentul în care se lansează (apelează ) metoda respectivă şi presupune cunoaşterea de către proiectant a evenimentelor la care formularul şi obiectele incluse în formular poate răspunde. Principalele metode asociate comportamentului unui formular şi obiectelor incluse în formular sunt următoarele: 1. Init; această metodă este apelată la crearea formularului având rolul de

iniŃializare a acesteia. In acelaşi timp fiecare obiect inclus în formular poate

Page 107: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

107

avea metoda sa Init proprie. Aceasta este apelată atunci când 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 iniŃializare a unor variabile de lucru.

3. Unload; este apelată la terminarea programului şi permite transmiterea parametrilor din cadrul formularului către programul apelant prin comanda RETURN cu sintaxa RETURN <variabilă >.

4. Show; permite afişarea pe ecran a unei formulare anterior creată . Dacă pe ecran se afişează mai multe formulare una singură este activă , în sensul că reprezintă pentru utilizator Ńinta intrărilor.

5. GotFocus; trecerea controlului de la o formulară la alta sau în cadrul aceluiaşi formular de la un obiect la altul, este controlată de evenimentele GotFocus (preluare control) şi respectiv LostFocus (pierdere control).

6. SetFocus; permite transferul controlului de la un formular la altul sau de la un obiect la altul, în cadrul aceluiaşi formular, atunci când trecerea are loc prin comenzi introduse în cadrul altor metode.

7. Valid; este una din metodele frecvent utilizate şi permite execuŃia unei secvenŃe de comenzi la trecerea de la un obiect la altul în cadrul formularului. Metoda este deci apelată la părăsirea unui obiect si în funcŃie de valoarea returnată de expresie logică din cadrul comenzilor din Valid, se permite sau nu trecerea la obiectul următor.

8. Refresh; conŃine comenzi pentru reâmprospătarea valorii obiectelor din cadrul formularului ca urmare a unor modificări efectuate cu aceste valori. Exemplu: la calculul stocului ca urmare a unor operaŃii de intrare/ieşire în metoda Valid a câmpurilor Intrări şi respectiv Ieşiri se va introduce comanda. Refresh iar în cadrul metodei Refresh aferenta câmpului Stoc vom introduce comanda Stoc=Stoc+Intrări-Ieşiri

9. Release; se apelează la terminarea programului şi are rolul de a descărca (şterge) formularului din memorie. Astfel dacă avem în cadrul formularului un buton de ieşire, în metoda Click aferentă ,vom apela metoda Release, eventual după închidereabazei de date, astfel:

CLOSE DATABASES THISFORM.RELEASE

10. Click; este de asemenea una dintre metodele cel mai frecvent utilizate, fiind asociată atât butoanelor de comandă cât şi câmpurilor de preluare date din cadrul unui formular. De exemplu la execuŃia unui clic pe un buton de ieşire se va introduce în metoda Click aferentă butonului comenzile de afişare mesaj terminare program şi comanda de ştergere a formularului (Release).

Page 108: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

108

7.2.4.3. Salvarea şi rularea unui formular După construirea unui formular acesta se salvează ca orice fişier, prin selectarea opŃiunii SAVE din File prin care se afişează fereastra Save As în care se introduce numele fişierului reprezintând 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 afişa o casetă de dialog în care se cere confirmarea modificărilor după care pe ecran apare fereastra Save As. Dacă se doreşte salvarea formularului ca definiŃie de clasă se va selecta opŃiunea Save as Class din File. Pentru lansarea în execuŃie a unui formular se pot folosi următoarele procedee:

1. - în fereastra Project Manager se selectează pagina Documents şi apoi opŃiunea Forms. Din cadrul secŃiunii respective se selectează denumirea formularului şi se acŃionează butonul Run.

2. - din submeniul Form (care apare la afişarea unui formular pe ecran) se selectează opŃiunea 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 următoarele variante:

• se execută un clic pe butonul de închidere al formularului; • se selectează opŃiunea CLOSE din meniul de control al formularului; • se introduce comanda RELEASE în fereastra de comenzi sau în program,

• codul metodei sau evenimentului Click a unui buton de ieşire astfel:Thisform.Release

Page 109: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

109

7.3. DESCRIEREA ŞI UTILIZAREA OBIECTELOR GRAFICE OBIECTIVE 1. Cunoaşterea principalelor obiecte grafice folosite în cadrul

unui formular şi legătura lor cu sursa de date; 2. Cunoaşterea proprietăŃilor şi evenimentelor pentru

principalele tipuri de obiecte ale unui formular şi a modului de configurare a acestora.

CUVINTE CHEIE

OPTION GRUP LIST BOX DROP DOWN CHECK BOX COMBO BOX TEXT BOX COMMAND BUTTON.

7.3.1. 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 execuŃie: - obiecte vizuale - obiecte non-vizuale 3- după posibilitatea de a avea legătură cu datele de prelucrat: - obiecte legate de date - obiecte nelegate de date 4- după modul de utilizare - formuri - controale Aceste clasificări de ordin general sunt aplicabile oricăror 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 acŃionarea 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 setând 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 afişată pe ecran pentru obiectul TextBox (câmp editare) va fi valoarea câmpului Salar din tabela Angajat. Orice modificare a valorii obiectului va determina automat şi modificarea acesteia din

Page 110: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

110

sursa de date. Valoarea proprietăŃii ControlSource poate fi şi numele unei variabile de memorie, a cărei valoare se va afişa în câmpul de editare a obiectului. In acelaşi timp valoarea respectivă din sursa de date este memorată într-o zonă aferentă unei proprietăŃi a obiectului numită Value. Aceasta se poate numi valoarea obiectului, ea fiind valoarea pe care obiectul o înmagazinează. Atribuind o valoare acestei proprietăŃi vom putea modifica valoarea câmpului din sursa de date. Dacă acŃionăm asupra unui obiect care nu este legat cu o sursă de date, proprietatea Value este singura care se schimbă. După execuŃia formularului din care face parte obiectul, valoarea respectivă se pierde. Legătura dintre obiectul şi sursa de date se face în funcŃie de tipul de obiect. Ca urmare tipul de date din sursă depinde de tipul de obiect. Astfel un obiect de tip CheckBox nu poate fi pus în legătură cu o sursă de date de tip caracter deoarece el acceptă valori logice. 7.3.2. Punerea la dispoziŃia utilizatorului a unui set de opŃiuni predefinite In cazul introducerii de date într-o tabelă printr-un formular, există posibilitatea selectării, pentru anumite câmpuri 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 agenŃii comerciali ai unei firme sunt în număr finit, sunt memorate într-o tabelă separată . La încărcarea 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 conŃine anumite câmpuri din tabela secundară . Prin selectarea unor câmpuri din acest obiect, datele aferente sunt introduse automat în tabela care se încarcă. In felul acesta se oferă utilizatorului un set de opŃiuni 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 următoarele obiecte: 1. Grup de butoane de opŃiuni (Option Group) 2. Casete cu listă şi liste derulante (ListBox, DropDown, ListBox) 3. Casete de validare (CheckBox) 7.3.3. Utilizarea grupurilor de butoane de opŃiuni (Option Group) Grupurile de butoane de opŃiuni, reprezintă obiecte de tip container şi conŃin butoane de opŃiuni sau butoane radio. Ele permit utilizatorului alegerea unei opŃiuni din mai multe variante posibile şi nu introducere de date. Astfel, putem folosi un grup de butoane pentru a specifica modul de afişare a datelor unor prelucrări (la imprimantă, pe ecran, într-un fişier) sau pentru a selecta anumite

Page 111: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

111

înregistrări dintr-un tabel (prima, ultima, următoarea, precedenta). Un grup de butoane de opŃiuni, se reprezintă pe ecran sub forma unui dreptunghi care conŃine două sau mai multe cerculeŃe urmate fiecare de câte un text. Fiecare cerculeŃ poate conŃine punct sau spaŃiu în funcŃie de faptul dacă butonul a fost sau nu selectat. Grupul de butoane de opŃiuni poate apare şi sub forma unui grup de butoane de comandă textul cu numele butonului fiind afişat pe butonul respectiv. Cea mai importantă dintre proprietăŃi este ButtonCount, care se defineşte înainte de a eticheta butoanele individuale din cadrul grupului şi reprezintă numărul de butoane din grup. Prin modificarea acestei proprietăŃi utilizatorul poate include în grup numărul de butoane dorit. O altă proprietate importantă este Value, care indică la nivelul grupului de butoane, numărul de ordine al butonului selectat. La afişarea 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 selectării unui buton celelalte se deselectează automat. O altă proprietate este Control Source prin care se face legătura cu o sursă de date (câmp sau variabilă ). La nivel de grup, câmpul sau variabila va conŃine fie numărul de ordine al butonului selectat fie prompterul acestuia (textul aferent butonului selectat) în funcŃie de tipul câmpului sau variabilei. Textul aferent fiecărui buton din grupul de butoane este memorat de proprietatea Caption. 7.3.4. Utilizarea casetelor de validare (CheckBox) Aceste obiecte se folosesc pentru a specifica o stare cum ar fi: adevărat sau fals, activat sau fals, activat sau dezactivat, deschis sau închis, fiind reprezentate pe ecran printr-o casetă care poate conŃine un simbol de bifare sau spaŃiu, în funcŃie de selectarea sau nu a obiectului, urmate de un text. In 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 când utilizatorul selectează o casetă de validare în interior apare semnul de bifare. Ca şi în cazul butoanelor de opŃiuni, casetele de validare pot apare în formă grafică, respectiv sub formă de butoane având afişat pe buton titlul sau o imagine, prin setarea proprietăŃii Style.

7.3.4.1. Utilizarea casetelor cu listă şi listă derulantă (List Box şi Dropdown List Box)

Casetele cu listă (ListBox) şi cele cu listă derulantă (Dropdown List) conŃin elemente de un anumit tip, afişate parŃial sau total pe ecran, într-un dreptunghi.

Page 112: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

112

Intr-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 execuŃia unui clic pe butonul cu săgeată în jos din dreapta casetei, se afişează o listă derulantă , cu toate elementele casetei. Lista derulantă sau expandabilă reprezintă un obiect ComboBox şi este de două feluri în funcŃie de proprietatea Style a obiectului: - cu posibilitatea de completarea manuală a elementului de selectat. Aceasta

permite pe lângă 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ă , fără posibilitatea de a introduce date. (Style=2 Dropdown ListBox). Casetele cu listă (ListBox) se utilizează în cazul în care există spaŃiu suficient pe form şi dorim să mărim perspectiva utilizatorului asupra datelor din care trebuie să aleagă, în caz contrar, pentru a face economie de spaŃiu 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 opŃiuni predefinite, din care acesta poate selecta opŃiunea sau opŃiunile dorite. In acest fel se simplifică în mod considerabil proceduta de introducere date la încărcarea 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 lângă faptul că necesită timp, măreşte probabilitatea de introducere a unor date eronate. 7.3.4.2. Introducerea datelor ce nu pot fi predeterminate In cazul în care utilizatorul nu poate anticipa valorile ce urmează a fi preluate în cadrul unui obiect de control se pot folosi următoarele controale: - casete de text - casete de editare - casete combinate.

7.3.4.3. 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 oricărui tip de date cu excepŃia celor de tip Memo şi General. Prin intermediul lor utilizatorul poate adăuga sau modifica datele unor câmpuri din înregistrările unui tabel. Valoarea afişată în casetă este stocată în variabila sau câmpul asociat casetei definit prin proprietatea Control Source, cât şi în zona aferentă proprietăŃii Value aferentă casetei.

Page 113: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

113

7.3.4.4. 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 suprafaŃa formularului. După definirea obiectului se setează proprietăŃile acestuia şi se defineşte conŃinutul metodelor asociate evenimentelor pentru caseta de text. O modalitate mai simplă de creare şi configurare a proprietăŃilor 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 opŃiunii Builder din meniul Shortcut al obiectului.

7.3.4.5. 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 încadrării lor într-un anumit interval. Acest obiect se foloseşte, în special, în cazul datelor numerice. Utilizatorul poate alege valoarea de introdus, fie prin acŃionarea unor butoane, fie prin tastarea valorii datei respective. Obiectul de tip Spinner apare ca şi un câmp de editare cu două butoane, unul de incrementare, altul de decrementare, plasate în partea dreaptă a câmpului de editare (casetei). Prin acŃionarea butonului de incrementare sau decrementare, cu ajutorul mouse-ului, are loc creşterea sau descreşterea valorii din câmpul de editare, cu o valoare fixă stabilită de utilizator. Valoarea minimă şi respectiv maximă a câmpului de editare cât şi cea cu care se modifică cele două valori se stabilesc la proiectarea formului care conŃine obiectul de tip Spinner. Acest obiect se poate utiliza pentru introducerea de date într-un câmp din cadrul unei tabele, sau ar putea reprezenta valoarea indicatorului de înregistrări dintr-o tabelă, în vederea poziŃionării pe înregistrarea respectivă, pentru modificare sau ştergere.

7.3.4.6. 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 afişează pe ecran sub forma unui dreptunghi tridimensional, conŃinând în interiorul său un text sau o imagine. Textul scris pe buton se defineşte prin proprietatea Caption ca la orice obiect de control, iar imaginea prin proprietatea Picture şi reprezintă un fişier .BMP sau .ICO.

Page 114: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

114

In 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 apăsarea tastei Enter sau spaŃiu, indiferent de poziŃia cursorului. Pentru a defini un buton de tip implicit va trebui ca proprietatea Default să aibă valoarea adevărat (.T.). Pe ecran, un astfel de buton apare cu marginea din dreapta şi de jos îngroşate. Prin apăsarea tastei Enter se va executa automat codul din cadrul metodei asociate evenimentului Click a butonului respectiv. Selectarea unui astfel de buton se realizează prin execuŃia unui clic pe butonul respectiv. Evenimentul cel mai frecvent aferent unui astfel de control este Click Event. Ca urmare, codul pentru acŃiunile de executat la activarea unui buton de comandă se introduc în metoda Click asociată evenimentului Click Event.

Page 115: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

115

REZUMAT Formularul poate fi considerat ca o fereastră având 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 având ca toate celelalte obiecte, proprietăŃi, metode şi evenimente asociate. Acestea definesc aspectul exterior al formulare şi determină în acelaşi timp comportamentul acestuia în diverse situaŃii. ModalităŃi de creare a unui formular Crearea unui formular se poate realiza în unul din următoarele moduri: - prin intermediul comenzilor limbajului Visual FoxPro - prin intermediul utilitarului Form Designer - prin intermediul utilitarului Form Wizard Adăugarea obiectelor la un formular Pentru ca un formular să poată fi rulat şi să execute o anumită prelucrare (încărcarea unui tabel cu date sau actualizarea unui tabel etc.) acesta trebuie să conŃină diferite controale sau obiecte de control cu proprietăŃile configurate şi codul sursă asociat evenimentelor. La un formular se pot adăuga: controale, containere, clase definite de utilizator şi obiecte OLE. Containerele sunt obiecte care pot conŃine alte containere sau controale. Astfel, un formular ca şi container poate conŃine diferite controale (butoane de comandă, casete de validare etc.) Controalele pot face parte din containere, dar nu pot conŃine alte obiecte, adică nu pot fi părinte pentru alte obiecte. Pentru a adăuga un control într-un formular se foloseşte bara cu instrumente Form Controls. Dacă acesta nu este deschisă şi afişată pe ecran, pentru a o deschide se selectează din meniul View opŃiunea 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 rămâne liberă suprafaŃa formularului. Prin plasarea barei pe marginea ecranului aceasta se transformă într-o linie verticală sau orizontală, operaŃia de mutare fiind numită ancorare. Fereastra Properties Fereastra Properties este comună formularului şi tuturor obiectelor

Page 116: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

116

din formular creat cu Visual FoxPro. Cu ajutorul acestei ferestre vizualizăm şi configurăm proprietăŃile şi metodele formularului şi ale obiectelor din formular pe toată durata proiectării acestuia. La deschiderea unui formular, fereastra Properties va afişa proprietăŃile şi metode aferente formularului. Pentru a edita sau modifica aceste proprietăŃi ale formularului sau ale unui alt obiect inclus în formular se va selecta obiectul din caseta Object. Configurarea proprietăŃilor şi metodelor unui formular în timpul proiectării Fereastra Properties afişează la deschidere proprietăŃile şi metodele obiectului curent selectat. Pentru a edita proprietăŃile sau metodele altui obiect, mai întâi 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 proprietăŃi. Scrierea codului pentru evenimentele/metodele unui formular Fiecare obiect se caracterizează prin atributele stare şi comportament. Starea unui obiect se defineşte prin proprietăŃile sale, iar comportamentul prin metodele pe care pe poate executa şi evenimentele la care poate răspunde. Pentru a ataşa cod în cadrul unei metode aferentă unui obiect, se selectează mai întâi obiectul, iar în pagina Methods din fereastra Properties se vor afişa toate metodele şi secvenŃele 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ă opŃiunea 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 următoarele: 1. Init; această metodă este apelată la crearea formularului având rolul de iniŃializare 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

Page 117: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

117

transmiterea parametrilor din cadrul formularului către programul apelant prin comanda RETURN. 4. Show; permite afişarea pe ecran a unei formulare 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 execuŃia unei secvenŃe de comenzi la trecerea de la un obiect la altul în cadrul formularului. 8. Refresh; conŃine comenzi pentru reâmprospătarea valorii obiectelor din cadrul formularului ca urmare a unor modificări efectuate cu aceste valori. 9. Release; se apelează la terminarea programului şi are rolul de a descărca (şterge) formularului din memorie. 10. Click; este de asemenea una dintre metodele cel mai frecvent utilizate, fiind asociată atât butoanelor de comandă cât şi câmpurilor de preluare date din cadrul unui formular 11. RelaŃionarea tabelelor din baza de date In Visual FoxPro relaŃiile pe care le creăm între tabele cu ajutorul Constructorului bazei de date (Database Designer) se numesc relaŃii persistente. In afara acestora se pot defini şi relaŃii temporare sau dinamice prin comenzi introduse în programele de prelucrare. Ca urmare relaŃiile temporare sunt disponibile numai în momentul rulării programului în care au fost definite după care ele nu mai există. Tabelele între care se creează o relaŃie se numesc: tabelă principală sau părinte şi respectiv tabelă secundară sau fiu. Intre cele două tabele se pot defini următoarele tipuri de relaŃii: - relaŃie una-la-una; prin care unei înregistrări din tabela părinte îi

corespunde o singură înregistrare în tabela fiu (copil); - relaŃii una-la-mai-multe; prin care unei înregistrări din tabela

părinte îi corespund mai multe înregistrări în tabela copil; - relaŃie mai-multe la-una; prin care pentru o înregistrare în tabela

copil putem avea mai multe înregistrări în tabela părinte; - relaŃie mai-multe-la-mai-multe; prin care unei înregistrări din

tabela părinte îi pot corespunde mai multe înregistrări în tabela copil şi invers adică unei înregistrări din tabela copil îi pot corespunde mai multe înregistrări în tabela părinte.

12. Asigurarea integrităŃii datelor din tabelele legate între ele prin relaŃii permanente

Printre mecanismele care asigură integritatea bazei de date se numără şi cele privind integritatea entităŃilor şi integritatea

Page 118: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

118

referenŃială. Integritatea entităŃilor este implementată prin specificarea în

cadrul unei tabele, a faptului că nu pot accepta valori nule câmpurile care reprezintă chei primare. 13. Integritatea referenŃială (referenŃial integrity-RI) defineşte un ansamblu de reguli, care permit menŃionarea integrităŃii datelor din tabelele legate între ele, la operaŃiile de modificare, adăugare şi ştergerea datelor din tabelele respective, astfel încât să nu existe înregistrări neparticipante la relaŃie. Implementarea acestor reguli între tabele se realizează prin intermediul unor restricŃii numite restricŃii pentru integritate referenŃială (RI – constraints). 14. Specificarea restricŃiilor de integritate referenŃială şi generarea automată a procedurilor aferente se realizează prin intermediul Generatorului de Integritate ReferenŃială (Referential Integrity Builder). Aceasta permite, de asemenea, precizarea tabelelor părinte şi fiu din cadrul unei relaŃii şi a evenimentelor din sistem care impun mediului Visual FoxPro să verifice regulile definite.

TEME CONTROL

1. Se vor elabora programe de folosire a comenzilor de implementare a structurilor de control şi a comenzilor de intrare/ieşire;

2. Se vor elabora programe de creare şi utilizare a clasei form şi a obiectelor de tip buton de comandă.

BIBLIOGRAFIE

1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, pg. 259-307.

2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 286-297

3. Gabriel Dima ,Mihai Dima, Bazele Visual FoxPro 5.0, Editura Teora ,Bucuresti,1999, pag . 205-308. 4. Marin Fotache,Ioan Brava, Cătălin Strâmbei, Liviu CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor profesionale, Editura Polirom Iaşi, 2002, pag. 253-286. 5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea aplicaŃiilor cu baze de date în Visual FoxPro, Editura All, Bucureşti, 2001, pag. 240-277. 6. Paul Petruş, Visual FoxPro 5.0, Editura Promedia, Cluj, 1999, pag. 280-408. 7. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003, pag. 70-82.

Page 119: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

119

8. RAPOARTE ŞI MENIURI CONCEPTE DE BAZA

- Raport din punct de vedere conceptual - Componentele unui raport în VFP - Controalele raportului - Constructorul de rapoarte - Gestiunea rapoartelor (creare, modificare, exploatare

şi ştergere) - AsistenŃi pentru gestiunea rapoartelor şi utilizarea lor; - Meniuri şi rolul lor; - Fereastra constructorului de meniuri; - OpŃiunile posibile la generarea meniurilor şi

submeniurilor; - Crearea şi modificarea meniurilor; - Exploatarea meniurilor.

OBIECTIVE 1. Familiarizarea cu semantica generală legată de rapoarte.

2. Familiarizarea cu structura rapoartelor din Visual FoxPro.

3. Formarea deprinderilor de creare şi utilizare a rapoartelor.

4. Familiarizarea cu noŃiunea de meniu şi elementele sale componente

5. Crearea abilităŃii de creare şi utilizare meniurilor în Visual FoxPro.

RECOMANDĂRI PRIVIND STUDIUL

5. Se vor proiecta din punct de vedere conceptual machete de rapoarte şi de meniuri.

6. Se vor studia cu atenŃie constructorii celor două categorii.

7. Se vor crea diferite rapoarte şi meniuri pentru aplicaŃii economice.

8. Se vor testa operaŃiile şi opŃiunile referitoare la managementul celor două categorii.

REZULTATE ASTEPTATE

După parcurgerea acestui modul utilizatorul trebuie să fie în măsură să definească şi folosească corect rapoartele şi meniurile şi să implementeze pe baza lor aplicaŃii complexe din informatica economică şi de afaceri.

Page 120: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

120

8.1. RAPOARTE ÎN VISUAL FOXROO

OBIECTIVE 1. Familiarizarea cu semantica generală legată de rapoarte. 2. Familiarizarea cu structura rapoartelor din Visual

FoxPro. 3. Formarea deprinderilor de creare şi utilizare a

rapoartelor NOłIUNI CHEIE

- Raport - Componentele unui raport în VFP - Controalele raportului - AsistenŃi şi utilizarea lor

În literatura de specialitate există definiŃii mai mult sau mai puŃin formalizate ale acestui obiect. “Raport – prezentarea informaŃiilor referitoare la o anumită temă. efectuată obicei într-o formă tipărită. … Programele de baze de date pot oferi funcŃii speciale de creare şi generare de rapoarte” [Microsoft99]. “Raportul este o extragere a datelor din baza de date. El poate fi tipărit pe ecranul calculatorului, sau pe orice alt dispozitiv de ieşire” [Kroenke92]. Orice raport are ataşate 2 fişiere. O tabelă sistem specială cu extensia .FRX, în care sunt

memorate specificaŃiile raportului, adică caracteristicile raportului şi elementele sale

componente. Acest fişier este interpretat de un modul al SGBD pentru afişarea raportului

respectiv.

Pentru orice raport avem două momente im portante:

• crearea machetei raportului (simplist crearea raportului); • exploatarea acestei machete (vizualizarea raportului).

8.1.1. Structura unui raport Structura rapoartelor diferă în principiu, în funcŃie de formatul de afişare al datelor şi de

complexitatea acestuia. Datele pot fi afişate în raport, pe linii, pe coloane sau combinat, în

funcŃie de domeniul pentru care se elaborează raportul. In ceea ce priveşte complexitatea

rapoartelor, unele pot afişa 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 înregistrări totalizatoare ( totaluri pentru anumite coloane sau câmpuri) cât şi un total

general, la nivelul întregului raport.

Page 121: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

121

In Visual FoxPro, rapoartele reprezintă un obiect de tip Report. Din acest punct de vedere, el are o structură compusă din două părŃi: 1. Mediul de date asociat raportului (Data Environment) unde se definesc

datele aferente raportului sub forma de tabele. 2. Structura de afişare; conŃine benzile sau zonele care compun raportul şi

obiectele Structura de date ; include datele aferente raportului şi este reprezentată prin incluse în raport, prin care se realizează legătura cu sursa de date.

8.1.2. 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 afişat. 3. Lansarea generatorului de rapoarte (Report Designer) prin care se

afişează pe ecran macheta de raport. Raportul astfel obŃinut 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 legătura cu sursa

de date. 6. Salvarea şi previzualizarea raportului.

8.1.2.1. Crearea unui raport cu utilitarul Report Designer Pentru a crea un raport vid (fără nici un obiect inclus în el) se pot folosi următoarele variante: 1. se selectează din meniul File opŃiunea 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

secŃiunea Reports. Se selectează apoi butonul New, care determină afişarea pe ecran a ferestrei New Report din care se selectează butonul cu acelaşi nume. Dacă vrem să creăm 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 Fereastră1] [IN [WINDOW] Fereastră2 | IN SCREEN

8.1.2.2. Fereastra constructorului de rapoarte

Page 122: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

122

Ca urmare a folosirii uneia din cele 3 modalităŃi de lansare a constructorului de rapoarte, pe ecran se va afişa fereastra constructorului de rapoarte cu titlul Report Designer-Report1 şi bara cu obiecte de control (ReportControl), iar la meniul sistem se adaugă submeniul Report. SuprafaŃa ferestrei este împărŃită în zone sau benzi, al căror număr depinde de complexitatea raportului. Benzile raportului diferă între ele, atât din punct de vedere al semnificaŃiei acestora, cât şi din punct de vedere al frecvenŃei cu care sunt afişate datele benzii respective. Astfel, va exista o bandă care va conŃine titlul raportului şi care va apare o singură dată pe prima pagină, o bandă cu datele raportului, care va apare de atâtea ori câte înregistrări se vor afişa în raport, o bandă de sfârşit de pagină, etc. In mod implicit, la afişarea ferestrei Report Designer, aceasta conŃine 3 benzi, cu următoarele denumiri şi semnificaŃii: Page Header; conŃine antetul de pagină, care se va afişa la începutul fiecărei 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 afişa datele aferente raportului, respectiv înregistrările din tabela folosită ca sursă de date. Fiecare înregistrare din tabel va ocupa o linie în cadrul acestei zone. Page Footer; reprezintă zonă de sfârşit de pagină, unde se poate afişa numărul de pagină. In mod suplimentar, la raport se mai pot adăuga şi alte benzi, ca urmare a selectării unor

opŃiuni din meniul Report. Aceste benzi sau zone sunt următoarele:

Tip bandă FrecvenŃa de afişare Mod de afişare Title - o singură dată pe raport,

pe prima pagină - prin selectarea opŃiunii Title/Summary din meniul Report

Column Header

- o dată pe coloană - prin selectarea opŃiunii PageSetup din meniul File

Group Header - o singură dată pe grup - prin selectarea opŃiunii Grouping din meniul Report

Group Footer - o singură dată pe grup - prin selectarea opŃiunii Grouping din meniul Report

Column Footer

- o dată pe coloană - prin selectarea opŃiunii PageSetup din meniul File

Summary - o dată pe raport - prin selectarea opŃiunii Title/Summary din meniul Report

SemnificaŃia acestor benzi este următoarea: 1. Title/Summary; Banda Title conŃine titlul raportului şi alte informaŃii

suplimentare cum ar fi: sigla firmei şi eventual antetul de tabel, dacă acesta

Page 123: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

123

nu a fost inclus în antetul de pagină. Această bandă se afişează prin selectarea opŃiunii Title/Summary din meniul Report. Ca efect pe ecran apare fereastra Title/Report cu cele două opŃiuni: Title şi Summary. Fiecare din cele două comutatoare au asociat un alt comutator numit NewPage, la activarea căruia banda respectivă se va afişa pe o pagină nouă.

2. Group Header; include câmpul după care se realizează gruparea datelor în raport şi se afişează o dată pentru fiecare grup. Pentru includerea benzii în raport se va selecta opŃiunea Data Grouping din meniul Report. Banda se poate afişa numai dacă s-a realizat în prealabil gruparea datelor.

3. Group Footer; include informaŃii referitoare la sfârşitul de grup, respectiv totaluri la nivel de grup şi explicaŃiile necesare. Banda se afişează prin selectarea opŃiunii Data Grouping din meniul Report.

4. Column Header; conŃine antetul de coloană şi se poate afişa numai dacă raportul conŃine cel puŃin două coloane. Setarea numărului de coloană se face prin selectarea opŃiunii Column Number din fereastra Page Setup, fereastră care se afişează prin selectarea opŃiunii cu acelaşi nume din meniul File

5. Column Footer; conŃine informaŃii privind sfârşitul de coloană şi se afişează după selectarea numărului de coloane (cel puŃin două) din fereastra Page Setup.

8.1.3. ProprietăŃi ale benzilor şi raportului 1. Fiecare bandă va afişa în raportul final un număr de instanŃe ale sale în

funcŃie 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 proprietăŃi, care pot fi modificate de utilizator. Pentru a se seta aceste proprietăŃi se face un dublu clic pe bara delimitatoare a benzii dorite, având ca efect afişarea pe ecran a unei ferestre cu titlul benzii respective.

3. Toate ferestrele aferente unei benzi au aceeaşi structură, doar denumirea acestora diferă în funcŃie de tipul benzii la care se referă. In cadrul ferestrei aferentă unei benzi se poate seta înălŃimea benzii prin intermediul unui obiect de tip Spinner cu denumirea Hight sau se poate seta aceeaşi dimensiune pentru toate instanŃele unei benzi tot prin intermediul unui spinner cu numele Constant band height.

4. De asemenea, la afişarea unei instanŃe a unei benzi se pot specifica anumite prelucrări pentru două evenimente aferente unei instanŃe, astfel: a) înainte de afişarea fiecărei instanŃe a benzii se poate evalua o expresie

introdusă în caseta On Entry. Dacă expresia este mai complexă, poate fi

Page 124: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

124

construită şi specifică în fereastra Expression Build care se deschide prin selectarea butonului cu trei puncte din dreapta casetei On entry.

b) după fiecare afişare a instanŃei unei benzi se poate evalua o expresie introdusă în caseta On exit sau în fereastra Expression Build.

In afară de proprietăŃile aferente benzilor, un rol important îl au proprietăŃile

aferente raportului în ansamblul său, care se referă la:

- mărimea paginii pe care se va afişa raportul - orientarea paginii - marginile exterioare ale paginii - lăŃimea coloanelor şi spaŃiile dintre ele în cazul unui raport

multicoloană - tipul de imprimantă în cazul tipăririi raportului la imprimantă.

Pentru a seta aceste proprietăŃi se afişează pe ecran fereastra Page Setup, prin selectarea opŃiunii cu acelaşi nume din meniul File Prin selectarea butonului Print Setup se afişează pe ecran o fereastră în care se poate seta tipul de imprimantă, dimensiunea hârtiei utilizate la imprimare şi orientarea acesteia (Portrait sau Landscape). 8.1.4. Adăugarea de controale în cadrul unui raport Toate informaŃiile afişate î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 afişează pe ecran odată cu lansarea constructorului de rapoarte. Bara Report Controls conŃine 6 tipuri de controale. De asemenea, pe bara cu instrumente se mai găseşte butonul Lock care blochează fiecare control selectat, pentru a permite crearea automată a mai multor instanŃe ale obiectului respectiv, cât şi butonul cu săgeată înclinată spre stânga, 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 suprafaŃa raportului, unde dorim să apară obiectul respectiv. Ca efect pe ecran se afişează:

- fereastra Report Expresion; dacă s-a selectat obiectul Field - fereastra Report Picture; dacă s-a selectat obiectul

Picture/OLE

Page 125: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

125

- 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 funcŃie de compelxitatea acestuia, utilizatorul poate modifica proprietăŃile oricărui control, prin efectuarea unui dublu clic pe controlul respectiv. Aşa cum rezultă din structura barei Report Controls, în raport se pot include trei categorii de obiecte:

- blocuri de text - câmpuri - obiecte grafice (linii, dreptunghiuri, imagini).

SemnificaŃia acestora este următoarea: 8.1.4.1. Controlul LABEL

Acest control permite inserarea de texte (şiruri de caractere) în cadrul raportului. Prin folosirea acestui obiect se poate, de exemplu, scrie titlul raportului, antetul de pagină, alte explicaŃii necesare în funcŃie de structura raportului. Prin execuŃia unui dublu clic pe textul existent în raport, se afişează pe ecran fereastra Text. Caseta Object Position permite stabilirea poziŃiei textului referitor la marginile benzii, iar butonul Print When… permite afişarea textului la care se referă numai dacă expresia introdusă în fereastra Print When…este adevărată. Ca urmare, în funcŃie de valoarea unei expresii care se poate referi la câmpuri din tabela sursă, putem afişa sau ascunde un anumit text. Pentru scrierea titlului unui raport, după afişarea în raport a benzii Title, prin selectarea opŃiunii Title Summary din meniul Report, se procdează astfel: - se selectează obiectul Label şi se execută un clic pe bandă în locul de unde

începe introducerea titlului - se introduce titlul prin tastare - se aranjează formatul titlului (font, stil, dimensiune, caractere) prin

intermediul opŃiunii Font din meniul Format - se stabileşte culoarea cu care dorim să scriem textul prin intermediul barei

Color Pallete, de unde se selectează Foreground şi apoi culoarea dorită - se poate încadra titlul într-un dreptunghi prin selectarea obiectului Rectangle

din bara Report Controls. 8.1.4.2. Controlul FIELD

Prin includerea acestui obiect într-un raport se realizează afişarea datelor din câmpurile unui tabel în raportul respectiv. Aceste date pot fi de orice tip, mai puŃin cele de tip General. Prin urmare, pentru a afişa conŃinutul unui câmp dintr-

Page 126: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

126

un tabel în raport, va trebui să includem în raport un obiect de tip Field aferent câmpului respectiv în care se va transfera informaŃia din tabel ,pentru afişare. Expresiile pot conŃine combinaŃii de câmpuri sau funcŃii utilizator. Astfel, pentru afişarea în raport a datei curente se va folosi funcŃia DATE(), iar pentru afişarea numărului de pagină în raport, se va folosi variabila de sistem PAGENO_.

8.1.4.3. Adăugarea unui câmp la raport După selectarea obiectului Field, din bara ReportControl, se execută un click pe suprafaŃa raportului, unde dorim să fie afişat obiectul respectiv. Ca efect, pe ecran apare mai întâi fereastra Report Expression, aferentă câmpului respectiv, unde se pot seta proprietăŃile acestui obiect astfel : 1. în caseta de editare Expression, se introduce sursa de date a câmpului,

respectiv o expresie ce urmează a fi evaluată pentru fiecare apariŃie a benzii. 2. în caseta Format, se introduce formatul de afişare pentru câmpul specificat

în Report Expression, sub forma unui şir de caractere în funcŃie de tipul câmpului respectiv.

3. în secŃiunea Field Position, se defineşte poziŃia câmpului, referitor la banda în care este inclus, prin intermediul opŃiunilor: • Float; poziŃie mobilă a câmpului în funcŃie de dimensiunea obiectelor

deŃinute deasupra lui. • Fix relativ to top of band ; poziŃie fixă faŃă de marginea superioară (de

sus) a benzii • Fix relativ to bottom of band; poziŃie fixă faŃă de marginea inferioară

(de jos) a benzii 4. cu comutatorul Stretch With Overflow; se permite extinderea în funcŃie d

conŃinutul sursei de date (la câmpurile Memo). 5. în caseta Comment; se pot introduce diverse comentarii, care nu se vor

afişa în raport. Ele se pot referi la tipul datelor aferente câmpului respectiv, la modul d afişare în raport a acestora, etc.

6. butonul Calculation ; permite deschiderea unei ferestre numită Calculate Field, unde se pot seta prin intermediul unor opŃiuni modalitate de calcul pentru câmpul respectiv, cum ar fi : suma valorii datelor din câmp, media aritmetică, numărare înregistrări, valoarea minimă sau maximă.

7. butonul Print When ; permite deschiderea unei ferestre cu acelaşi nume, în care se pot preciza condiŃiile de afişare u unui câmp, astfel : • secŃiunea PrintRepeatedValues permite afişarea sa suprimarea afişării

de valori consecutive care se repetă, pentru un anumit câmp prin intermediul butoanelor radio Yes sau No ;

• comutatorul Removeline if Blank ; permite, dacă este selectat, eliminarea din raport a liniilor goale (cu toate câmpurile vide);

Page 127: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

127

• în caseta Print Only Expression is True; se introduce o expresie care se evaluează şi numai dacă este adevărată se afişează conŃinutul câmpului respectiv.

In cadrul ferestrei se selectează fereastra DATE( ), cu dublu clic, din lista Date, funcŃie care va apare şi în caseta Expression for Field on Report, după care se acŃionează butonul OK. Ca efect se revine în fereastra Report Expression unde apare funcŃia DATE( ) în caseta Expression, după care se acŃionează butonul OK. Ca urmare, se deschidere fereastra Report Expression, iar în raport în banda aferentă apare câmpul aferent datei curente astfel: DATE( ). In mod similar se procedează la afişează numărului de pagină, folosind în acest caz variabila de sistem _PAGENO

8.1.4.4. Controalele LINE, RECTANGLE ŞI ROUNDED RECTANGLE

Aceste controale servesc pentru includerea în raport a unor forme geometrice, astfel:

- controlul LINE include în raport linii orizontale sau verticale; - controlul Rectangle permite includerea în raport a unor chenare de formă

dreptunghiulară; - controlul Rounded Rectangle include în raport cercuri ovale sau

dreptunghiuri cu colŃurile rotunjite. Rezultă că, prin intermediul acestor controale putem îmbunătăŃi aspectul unui raport prin

includerea titlului raportului şi a antetului de pagină într-un dreptunghi sau prin sublinierea

unor texte, etc.

După selectarea unuia din cele trei obiecte de pe bara Report Controls se mută cursorul pe suprafaŃa raportului şi se desenează obiectul selectat la mărimea dorită de utilizator, sau se execută un clic în raport în locul unde dorim să apară obiectul, având ca efect afiarea în raport a obiectului respectiv. Pentru a seta proprietăŃile obiectului, se execută un dublu-clic pe obiect, fapt ce determină afişarea pe ecran a ferestrei Rectangle/Line pentru obiectele Line sau Rectangle şi a ferestrei Rounded Rectangle pentru obiectul Rounded Rectangle.

8.1.4.5. Controlul PICTURE/OLE BOUND CONTROL Prin utilizarea acestui control, se poate include într-un raport o imagine preluată dintr-un fişier de tip Bitmap cu extensia .MBP sau .ICO. De obicei aceste imagini se introduc în banda de titlu sau de antet de pagină şi pot reprezenta sigla firmei, care elaborează raportul. Aceste imagini odată introduse în raport nu se modifică odată cu trecerea de la o înregistrare

la alta. Dacă dorim să apară câte o imagine pentru fiecare înregistrare va trebui ca tabela de

Page 128: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

128

date să conŃină un câmp de tip General, care să apară în raport şi în care se introduce obiectul

de tip OLE.

Pentru includerea în raport a unui obiect de tip PICTURE, se selectează obiectul din bara Report Controls şi se face un clic pe suprafaŃa raportului unde dorim să apară imaginea. Ca efect, pe ecran apare fereastra Report Picture. In cadrul acestei ferestre, se selectează mai întâi butonul radio File din zona Picture from, iar în caseta aferentă se introduce calea de acces către fişierul Bitmap. Dacă nu se cunoaşte calea de acces se poate selecta imaginea din fişierele ce apar în fereastra Open care se deschide prin acŃionarea butonului cu trei puncte din dreapta casetei File. Pentru introducerea în raport a unui obiect de tip General, în fereastra Repoart Picture se selectează butonul radio Field în loc de File, iar în caseta aferentă se introduce numele câmpului din tabela selectată.

8.1.4.6. Ajustarea controalelor unui raport

Principalele operaŃii privind ajustarea controalelor unui raport, se referă la :

- redimensionare ; - copiere ; - mutare ; - ştergere ; - aliniere ;

Din meniul View, iar pentru alinierea manuală opŃiunea Snap to Grid din meniul Format prin

care la mutarea unui obiect se Ńine cont de pătrăŃelele de pe suprafaŃa raportului.

- schimbare tip caractere ; - schimbarea culorii ;

8.1.5. Crearea unui raport cu ajutorul asistenŃilor

8.1.5.1. Folosirea utilitarului Quick Report

Pentru popularea unui raport cu date luate direct din tabela definită ca sursă de date a raportului, se foloseşte utilitarul Quick Report care este o aplicaŃie de tip Builder. Lansarea utilitarului se face prin selectarea opŃiunii Quick Report din meniul Report, după crearea unui raport vid cu Report Designer. Prin urmare, după afişarea pe ecran a ferestrei Report Designer, reprezentând meniul vid, se

va selecta opŃiunea Quick Report din meniul Report. Ca efect, pe ecran va apare fereastra

Quick Report.

Dacă în momentul lansării utilitarului Quick Report, nu este deschis nici un tabel, care să reprezinte sursa de date a raportului ce va fi creat, pe ecran se

Page 129: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

129

afişează mai întâi fereastra Open, din care se va selecta tabela dorită după care se va afişa fereastra Quick Report. In funcŃie de opŃiunile selectate din această fereastră va fi creat un raport corespunzător. In acest scop se selectează mai întâi din tabela care reprezintă sursa de date, câmpurile care urmează a fi afişate în raport, prin acŃionarea butonului de comandă Fields… Ca efect pe ecran se deschide fereastra Field Picher. In cadrul acestei ferestre, se selectează câmpurile dorite din secŃiunea All Fields prin mutarea lor în secŃiunea Selected Fields şi se acŃionează butonul OK, având ca rezultat revenirea în fereastra Quick Report. După stabilirea câmpurilor ce urmează a fi afişate se va stabili poziŃia acestora în raport, adică pe orizontală sau verticală, prin selectarea celor două butoane aferente, din secŃiunea Field Layout. In fereastra Quick Report se mai găsesc trei comutatoare cu următoarea semnificaŃie:

- Titles; afişează denumirea câmpurilor în banda de antet de pagină ; - Add Alias ; adaugă aliasul tabelului la denumirile câmpurilor ; - Add Table ; adaugă tabelul în fereastra Data Environment.

După selectarea acestor opŃiuni, prin acŃionarea butonului OK, are loc ieşirea din fereastra Quick Report, iar pe ecran se afişează structura noului raport care conŃine:

- banda de antet de pagină cu denumirea câmpurilor ce vor fi afişate ; - banda Detail cu câmpurile aferente ; - banda de sfârşit de pagină unde se include automat data curentă şi

numărul de pagină. 8.1.5.2. Crearea unui raport cu Report Wizard Crearea unui raport prin utilizarea utilitarului Report Wizard, presupune parcurgerea următoarelor etape:

- se lansează utilitarul Report Wizard şi se selectează apoi tipul de raport

- se parcurg cei şase paşi solicitaŃi de Report Wizard pentru a ajunge la forma finală a raportului.

8.1.5.3. 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 afişează pe ecran se selectează butonul Report Wizard care determină afişarea pe ecran a ferestrei Wizard Selection. O altă modalitate de lansare a generatorului Report Wizard constă în selectarea din meniul File a opŃiunii New. Din fereastra New, care apare pe ecran se va selecta butonul radio Report şi apoi butonul de comandă Wizard, având ca efect

Page 130: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

130

afişarea pe ecran a ferestrei Wizard Selection şi se urmează paşii indicaŃi de acesta. 8.1.6. Mediul de date al unui raport

8.1.6.1. Componenta Data Environment Datele afişate î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, alcătuiesc mediul de date al raportului. Acesta reprezintă în Visual Foxpro un obiect real, în sensul programării orientate pe obiecte, adică are ataşate anumite proprietăŃi şi metode. Mediul de date se defineşte în fereastra Data Environment unde se pot include tabelele şi vederile necesare construirii unui raport. Afişarea ferestrei Data Environment, se poate realiza în unul din următoarele moduri: a. prin selectarea opŃiunii Data Environement din meniul View b. prin selectarea opŃiunii 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 ataşate proprietăŃi, răspund la anumite evenimente şi execută secvenŃe

de cod din metodele aferente.

Ca urmare, utilizatorul poate introduce cod (secvenŃe de instrucŃiuni) în cadrul unor metode pentru evenimentele care însoŃesc datele raportului. ProprietăŃile, metodele şi evenimentele asociate mediului de date, se pot vedea în fereastra Properties afişată prin fereastra opŃiunii 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 operaŃiile legate de gestiunea datelor necesare raportului astfel: - deschide tabelele aferente raportului existente în fereastra Data Environment,

la lansarea în execuŃie a raportului; - aduce în raport datele necesare din tabele; - închide tabelele la terminarea execuŃiei raportului. Pentru includerea în fereastra Data Environment a tabelelor necesare unui raport se pot folosi

următoarele modalităŃi de lucru:

- se face drag-drop cu tabelul dorit din fereastra Project Manager în fereastra Data Environment;

Page 131: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

131

- se selectează opŃiunea 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ă adăugarea tabelelor în cadrul ferestrei Data Environment, se stabileşte indexul care se accesează datele din tabel pentru a fi aduse în raport. In acest scop, în fereastra Proprerties se selectează proprietatea Order, reprezentând ordinea de indexare, pentru tabelul respectiv şi se introduce în caseta aferentă un nume de index sau se alege un index din lista de indecşi a tabelei. După indexare, în fereastra Database Designer, se poate defini o relaŃie temporară între 2 tabele prin operaŃia drag-drop a cheii primare, la cheia externă din tabela fiu.

8.1.6.2. 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,

alături de comanda de previzualizare a raportului. In fraza SELECT, se specifică prin opŃiunea INTO CURSOR <nume_tabel>, numele unei tabele temporare care va conŃine datele necesare raportului,.

3. prin includerea frazei SELECT în metoda aferentă environementului INIT a containerului Data Environment aferent raportului

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 lansării în execuŃie 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 execuŃie a raportului.

8.1.6.3. Gruparea datelor în rapoarte

In practică, foarte frecvent rapoartele trebuie să conŃină informaŃii privitoare la grupe de

articole din tabelele de date pentru care sunt ele elaborate, grupele respective formându-se pe

anumite criterii. Fiecare criteriu de grupare este descris printr-o expresie pe care o numim

expresie de grupare sau cheie de grupare; ea conŃine unul sau mai multe câmpuri ale tabelei

de date pentru care se elaborează raportul. Acele instanŃe pentru care expresia de grupare are

aceeaşi valoare, alcătuiesc un grup. Deci, într-un raport cu datele grupate după o cheie de

grupare, există atâtea grupuri câte valori distincte are cheia de grupare respectivă. În

exemplul anterior, de cate ori se schimbă valoarea cheii care descrie anul se schimbă grupul.

Page 132: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

132

Gruparea datelor se poate realiza pe un nivel sau pe mai multe nivele de grupare. In general, în Visual FoxPro numărul nivelelor de grupare nu este limitat. In cazul grupării datelor, raportul va conŃine pe lângă benzile care s-a văzut deja că le poate conŃine un raport, şi benzile pentru gruparea datelor. Astfel, pentru fiecare nivel de grupare se defineşte o bandă de antet de grup şi o bandă de picior de grup. Antetul, respectiv piciorul fiecărui grup va conŃine informaŃii introductive, respectiv informaŃii de sinteză referitoare la grupul respectiv. Pentru gruparea datelor se selectează opŃiunea Data Grouping din meniul vertical Report sau executând un click cu butonul din dreapta mouse apare meniul vertical contextual din care se poate selecta opŃiunea Data Grouping… .Indiferent de modul de lansare apare chenarul corespunzător care are forma din figura alăturată. 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 câte o expresie de grupare. În cazul nostru am introdus linia de studii, secŃia, 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 (operaŃie de «drag » ) cu butonul din stânga mouse-ului apăsat de butonul din stânga opŃiunii (cel cu săgeată dublă), în sus sau în jos mutând opŃiunea, sau se execută un click cu butonul din stânga mouse-ului şi se tastează Ctrl+PgUP pentru a muta opŃiunea cu o poziŃie în sus, respectiv Ctrel+PgDn pentru a o aduce cu o poziŃie î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, operaŃie care declanşează

apariŃia 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 declanşatorul Delte. OpŃiunea curentă va fi ştearsă, iar opŃiunile următoare vor avansa cu câte o poziŃie.

Fiecare grup poate avea o serie de proprietăŃi specificate prin chenarul Group properties. Selectarea butoanelor din grup are următoarele semnificaŃii: • 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.

Page 133: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

133

• Reprint group header on each page specifică faptul că în situaŃia în care grupul va fi pe mai multe pagini, antetul grupului va fi tipărit pe toate paginile, după antetul de pagină, nu numai pe prima pagină.

• Start group on new page when less than această opŃiune are un contor (spinner) cu care se poate stabili distanŃa minimă (în număr de linii) de la baza paginii la care poate începe antetul unui grup pe pagină.

8.1.6.4. Utilizarea variabilelor în cadrul rapoartelor

În unele situaŃii, de exemplu dacă dorim calculul mediei generale pe grupe sau ani şi dorim să le afişăm în liniile de sumar, avem nevoie de variabile. Variabilele în rapoarte se definesc astfel: • Din meniul sistem selectând opŃiunea Report se selectează din meniul

vertical opŃiunea Variables. • Apare fereastra Report variables. • În această fereastră se definesc numele variabilelor în lista verticală

Variables. Având în vedere că ordinea de definire a variabilelor este importantă, valorile acestora determinându-se în ordinea definirii, această ordine se poate schimba analog ca în paragraful precedent, adică trăgând de săgeata dublă din faŃa numelui variabilei sau executând un click iar apoi tastând PgUp sau PgDn.

• Pentru fiecare variabilă putem stabili valoarea de memorat cu opŃiunea Value to store sau valoarea iniŃială Initial value. Fiecare dintre cele două opŃiuni are câte un chenar de editare unde se poate tasta numele unui câmp sau o expresie. Dacă nu se doreşte 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 operaŃii de agregare. De exemplu, se doreşte calcularea mediei aritmetice mediilor studenŃilor unei grupe. Pentru aceasta avem un chenar cu butoane radio Calculate. Dacă se păstrează selectat butonul Nothing înseamnă că în variabilă se păstrează sau respectiv variabila este iniŃializată cu valoarea expresiei din chenarul de tip text. Altfel se execută operaŃii de agregare asupra expresiei cum ar fi: numărarea, se calcularea sumei, a valorii medii, minimului, maximului, abaterii medii pătratice sau a dispersiei.

• Prin chenarul de selecŃie Release after report se poate stabili ca variabila să fie eliberată după terminarea raportului sau ultima valoare să rămână şi după terminarea raportului.

• Ultima opŃiune este legată de iniŃializarea variabilei şi este Reset at. Aceasta este o listă derulantă care poate avea diferite valori în funcŃie de context. Astfel avem în totdeauna End of Report, dar pot fi End of Pag, End of Column, sau End of Group.

Page 134: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

134

8.1.6.5. Exploatarea rapoartelor Previzualizarea se realizează prin selectarea opŃiunii Print preview din meniul File. Rezultatul este apariŃia imaginii tipărite şi a unei care de instrumente, conform figurii de mai jos, în care butoanele au următoarea semnificaŃie : treci la prima pagină, treci la pagina precedentă, deplasare la o pagină dată, treci la pagina următoare, treci la ultima pagină închide fereastra şi tipăreşte. În bara de instrumente mai apare şi o listă deschisă în care se poate preciza scala de afişare în procente. Exploatarea efectivă a machetei de raport se poate realiza : • Din meniul sistem selectând opŃiunea Run Report din meniul vertical

Report. • Prin comanda REPORT. Dacă se utilizează opŃiunea RUN REPORT apare un chenar de dialog de forma celui de mai jos, cu care se pot fixa parametrii tipăririi. Prin comandă tipărirea, previzualizarea sau memorarea unui raport pe fişier se realizează prin comanda : REPORT FORM Fişier1 | ? [ENVIRONMENT] [domeniu] [FOR lExpresie1] [WHILE lExpresie2] [HEADING cHeadingText] [NOCONSOLE] [NOOPTIMIZE] [PLAIN] [RANGE nPaginăStart [, nPaginăSfârşit]] [TO PRINTER [PROMPT] [NODIALOG] | TO FILE NumeFişier2

[ASCII]] [NAME NumeObiect][SUMMARY] [NORESET] [NOPAGEEJECT] [PREVIEW [[IN] WINDOW NumeFereastră | IN SCREEN] [NOWAIT]] unde FORM Fişier1 | ? – indică numele fişierului machetei de forme sau lansează

fereastra Open pentru deschiderea fişierului respectiv; parametrul este obligatoriu.

ENVIRONMENT] – se foloseşte numai pentru a compatibiliza Visual FoxPro cu FoxPro 2.6.

Domeniu – poate lua valorile ALL, NEXT n, REST şi RECORD n, cu semnificaŃiile cunoscute. Domeniul implicit este ALL, adică se vizualizează toată baza de date.

FOR şi WHILE sunt filtrul global şi local cu semnificaŃiile cunoscute. HEADING – permite definirea unui text care se tipăreşte pe fiecare pagină.

Dacă se utilizează simultan HEADING şi PLAIN, PLAIN are prioritate. NOCONSOLE – inhibă vizualizarea raportului pe ecran. NOOPTIMIZE – inhibă acŃiunea optimizatorului de expresii RUSHMORE.

Page 135: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

135

PLAIN – permite vizualizarea anterelor numai pe prima pagină a raportului, inhibând tipărirea acestor antete pe paginile următoare.

RANGE – permite stabilirea paginii de început şi sfârşit a tipăririi; prin lipsă se tipăreşte tot raportul.

TO PRINTER [PROMPT] [NODIALOG] – indică faptul că tipărirea se doreşte să se efectueze la imprimantă; PROMPT – precizează faptul că se doreşte afişarea chenarului de dialog prin care utilizatorul poate seta imprimanta (este un chenar din Windows). NODIALOG indică faptul că se doreşte ca în timpul tipăririi să nu fie afişate mesaje de dialog.

TO FILE NumeFişier2 [ASCII] – permite stabilirea fişierului text în care va fi salvat raportul. În mod normal raportul este fişier cu extensia .txt. Dacă se doreşte ca să fie fişier ASCII (pentru imprimante postscript) se utilizează parametrul aferent. Trebuie subliniat că graficele nu sunt generate în fişierele ASCII.

NAME NumeObiect – permite definirea unei nume de variabile care să primească proprietăŃile şi metodele obiectului corespunzător raportului. Acest nume poate fi utilizat de evenimente care utilizează obiectul.

SUMMARY – indică faptul că nu se doreşte tipărirea sau vizualizarea conŃinutului zonei de detaliu ci numai a sumarului (care de regulă conŃine date agregate cum ar fi totaluri, subtotaluri, etc.).

NORESET – indică faptul că variabilele system care se iniŃializează la începutul oricărui raport (_PAGENO şi _PAGETOTAL) nu trebuie iniŃializate.

NOPAGEEJECT – indică faptul că utilizatorul nu doreşte eliminarea ultimei pagini la terminarea tipăririi raportului. Nu se poate utiliza în mod comandă ci numai în program (fişiere .prg).

PREVIEW – indică faptul că raportul se previzualizează pe ecran [IN] WINDOW NumeFereastră | IN SCREEN – este un parametru care apare

la majoritatea comenzilor şi stabileşte locul de vizualizare (într-o fereastră utilizator sau tot ecranul).

NOWAIT – se poate utiliza numai în mod programat (nu şi comandă) şi indică faptul că programul nu trebuie să aştepte terminarea previzualizării.

Page 136: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

136

8.2. Meniuri

OBIECTIVE 1. Familiarizarea cu noŃiunea de meniu şi elementele sale componente

2. Crearea abilităŃii de creare şi utilizare meniurilor în Visual FoxPro.

NOłIUNI CHEIE

- Meniuri şi rolul lor; - Fereastra constructorului de meniuri; - OpŃiunile posibile la generarea meniurilor şi

submeniurilor; - Crearea şi modificarea meniurilor; - Exploatarea meniurilor.

« Meniu – listă de opŃiuni din care utilizatorul o poate selecta pe cea necesară pentru o anumită acŃiune, cum ar fi alegerea unei comenzi sau aplicarea unui anumit format unei porŃiuni de document. La mai multe programe de aplicaŃie, în special cele care dispun de interfaŃă grafică, meniurile reprezintă o alternativă mai uşor de învăŃat şi de folosit decât memorarea comenzilor şi a utilizării 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 putând alege

opŃiunea prin tastarea unui identificator (de exemplu numărul opŃiunii în listă).

O aplicaŃie cu meniurile bine proiectate se înŃelege mult mai uşor de către beneficiarii

acesteia.

De regulă principalele funcŃii ale unei aplicaŃii sunt incluse în meniu. Astfel, de exemplu, în VisualFox 8.0 comanda Browse apare ca opŃiune în meniul vertical View. În acelaşi timp alte opŃiuni 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 opŃiuni (denumite şi pad-uri). Acestea, la rândul lor, pot lansa o acŃiune sau un submeniu vertical.

• Meniurile verticale au o serie de opŃiuni I (bare, care la rândul 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.

Page 137: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

137

8.2.1. Crearea unui sistem de meniuri Indiferent de dimensiunea şi complexitatea aplicaŃiei, pentru crearea unui sistem de meniuri sunt necesare o serie de etape. Numărul acestora diferă de la autor la autor. În esenŃă însă această activitate revine la următorii paşi: Pasul 1 : - proiectarea sistemului meniului, care constă în stabilirea locului

acestuia, opŃiunile utilizate şi submeniurile aferente, chei rapide de acces, etc. Pasul 2: - crearea meniurilor şi submeniurilor; Pasul 3: - ataşarea funcŃiilor şi acŃiunilor de opŃiunile meniului cum ar fi :

- afişare unor formulare sau casete de dialog ; - inserarea de cod de iniŃializare de variabile, deschideri de fişiere etc.

înainte activarea opŃiunii ; - inserare secvenŃelor de cod asociate diferitelor evenimente legate de

activarea/dezactivarea opŃiunilor sau meniului ; Pasul 4 : - generarea programului aferent meniului ; Pasul 7 : - testarea sistemului (programului, aplicaŃiei).

8.2.2. Planificarea unui sistem de meniuri

Planificarea unui sistem de meniuri este o operaŃie de analiză şi ca atare se efectuează de

regulă independent de calculator fiind o operaŃiune migăloasă, dar de care depinde în mare

măsură succesul aplicaŃiei, modul în care aceasta va fi receptată de utilizator. Numărul

recomandărilor pentru proiectarea meniurilor poate fi mare şi important.

În faza de proiectare se descriu fiecare opŃiune. 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 funcŃiile fiecărei opŃiuni. Se

stabilesc caracterele de acces (cele subliniate în aşa fel ca ele să nu creeze confuzie. Pentru

unele opŃiuni, de exemplu pentru Ştergerea articolelor marcate (PACK) putem stabili

combinaŃia de taste Ctrl+P.

8.2.3. 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.

Page 138: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

138

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.

8.2.4. 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 [NumeFişier | ?] [NOWAIT] [SAVE] [WINDOW WindowName1]

[IN [WINDOW] WindowName2 | IN SCREEN Din această sintaxă este importantă porŃiunea:

CREATE MENU [NumeFişier | ?] CeilalŃi parametrii fiind deja prezentaŃi în secŃiunile anterioare.

Dacă se lansează deci comanda

CREATE MENU test apare fereastra constructorului de meniuri. Selectând declanşatorul Menu se va construi un meniu orizontal cu opŃiuni sub forma unor meniuri verticale; selectând Shortcut, va apare un meniu vertical cu opŃiuni sub forma unor submeniuri verticale. Dacă nu se precizează numele fişierului sau se tastează semnul întrebării, apare ca şi în cazul creării celorlalte obiecte (tabele, ferestre, rapoarte etc.) se generează temporar cu numele Menu1, iar în momentul în care se doreşte 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ă opŃiunea New din meniul vertical File. 2. Din fereastra New se selectează butonul radio Menu şi declanşatorul

New File. 3. Apare chenarul New Menu şi activitatea se continuă.

Crearea unui meniu din managerul de proiect

1. Se selectează opŃiunea New din meniul vertical File. 2. Din fereastra New se selectează butonul radio Project şi declanşatorul

New File.

Page 139: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

139

3. Apare fereastra constructorului de proiecte (Figura 4.1) din care se poate selecta opŃiunea Other din meniul vertical sau eticheta cu acelaşi nume.

4. Apar opŃiunile meniului vertical din figura de mai jos. 5. Selectând opŃiunea Menu şi declanşatorul New. 6. Apare fereastra New Menu. 8.2.5. Modificarea descrierii meniurilor

Ca şi în cazul creării meniurilor şi în cazul modificării 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ă porŃiunea:

MODIFY MENU [NumeFişier | ?] CeilalŃi parametrii fiind deja prezentaŃi în secŃiunile 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. 8.2.5.1. Modificarea unui meniu cu ajutorul meniului sistem Se selectează opŃiunea Open din meniul vertical File, după care se procedează ca în cazul comenzii MODIFY MENU fără numele fişierului meniu.

8.2.5.2. Modificarea unui meniu din managerul de proiect

Se procedează ca în cazul ii2 din paragraful precedent cu observaŃia că la pasul 5 în loc să se selecteze declanşatorul New se va executa un click dublu pe opŃiunea Menu din meniul vertical Others. Va apare lista meniurilor disponibile în directorul curent. Se efectuează un click pe meniul dorit şi pe declanşatorul Modify, după care se procedează ca în cazul comenzii MODIFY MENU fără numele fişierului meniu. 8.2.6. Stabilirea unor proprietăŃi şi coduri ale meniurilor

Page 140: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

140

Aceste proprietăŃi şi coduri se pot stabili în orice moment al creării sau modificării meniurilor din meniul vertical View. 8.2.6.1. Stabilirea proprietăŃilor generale Pentru stabilirea proprietăŃilor generale se poate realiza selectând din meniul vertical View opŃiunea General Options. Aceasta vizualizează fereastra cu acelaşi nume. Î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 doreşte să editeze o secvenŃă mai masivă de cos poate selecta declanşatorul 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 adăuga meniului sistem, iar dacă se selectează Before sau After, în dreptul butonului apare o listă derulantă din care se poate selecta o opŃiune din meniul sistem în faŃa căruia sau după care să se insereze meniul curent. Dacă se selectează opŃiunile Setup, respective Cleanup din chenarul Menu code, apare câte un chenar în care se pot edita secvenŃele de cod care să fie executate automat la iniŃializarea meniului, respective la ştergerea sa din memorie. OpŃiunea Top level este legat de vizualizarea meniului într-un document SDI (Single Document Interface). Fără a intra în amănunte, precizăm că dacă nu se selectează această opŃiune, Visual FoxPro lucrează în regim MDI (Multiple Document Interface) adică există o fereastră principală, care este rădăcina arborelui de documente. În regim SDI toate documentele sunt independente şi la acelaşi nivel.

8.2.6.2. Stabilirea codului pentru meniu sau submeniuri

Acest cod se poate stabili selectând din meniul vertical View opŃiunea Menu Options. Va apare o fereastră cu numele meniului sau submeniului pentru care se creează sau editează secvenŃa de cod şi zona de editare şi declanşatoarele cu semnificaŃia din fereastra General Options.

8.2.7. Crearea unui meniu rapid

Selectând la crearea unui meniu nou opŃiunea Quick Menu, va apare fereastra constructorului de meniuri în forma de mai jos. Se poate observa că atât opŃiunile meniului orizontal cât şi a celor verticale sunt cele din meniul sistem. Utilizatorul poate modifica acest meniu sau poate genera un meniu cu un nume

Page 141: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

141

dat. Extensia implicită a acestui program va fi MPR. Programul astfel obŃinut poate fi refolosit în meniul care se creează pentru revenirea la meniul sistem. Trebuie să menŃionăm 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, generând pe opŃiunea TERMIN, comanda

SET SYSMENU TO DEFAULT

8.2.8. Construirea efectivă a meniului şi submeniurilor

Fereastra constructorului de meniuri are în stânga 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 opŃiunilor, de exemplu în figura de mai sus \<File. Referitor la aceste texte trebuie să subliniem faptul că, aşa după cum se poate observa, anumite caractere au în faŃă simbolul \. SemnificaŃia acestui fapt este: • Dacă \< este în faŃa unui caracter, acesta va deveni caracter de selecŃie în

sensul cunoscut din Windows, adică, în cadrul numelui opŃiunii din meniu va apare subliniat şi dacă meniul (submeniul) respective este active şi se tastează caracterul respectiv se lansează automat opŃiunea;

• Dacă \ singur apare în faŃa unei opŃiuni, aşa după cum se poate constata din exemplul de mai jos (opŃiunea Creare), această opŃiune va fi scrisă mai slab şi nu este selectabilă. Coloana Result este o listă derulantă în care se poate stabili rezultatul acŃiunii de activare a opŃiunii respective din meniu (submeniu).

Dacă este prima selecŃie a unui element din coloană în dreptul elementului respective apare un declanşator Create. Elementele din lista derulantă pot fi: • Command – indică faptul că prin selectarea opŃiunii respective din meniu se

doreşte executarea unei singure comenzi. Dacă se selectează această opŃiune în dreptul ei apare un chenar de editare a textului comenzii care se doreşte să fie executate în cazul selectării opŃiunii.

• 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 opŃiune dintr-un meniu are un număr (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

Page 142: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

142

opŃiuni, se poate realiza în chenarul Prompt Options. Numele standard de PAD-urilor sistem pot fi obŃinute cu ajutorul funcŃiei SYS(2013).

• Submenu- lansează crearea/editarea unui submeniu. Fereastra de editare a unui submeniu este asemănătoare cu cea a meniului principal (Bară) cu unele mici modificări. Astfel, în locul opŃiunii PAD va apare BAR# care este numărul intern al opŃiunii. De exemplu, tipărirea are numărul intern, care se poate obŃine tot cu funcŃia SYS(2013), sau din crearea unui meniu rapid (QUICK MENU) şi efectuarea unui click pe declanşatorul Edit şi selectarea opŃiunii _mfi_sysprint. De asemenea, spre deosebire de meniul bară, aici declanşatorul INSERT BAR este accesibil. Din figura de mai jos se poate remarca, faptul că opŃiunile dintr-un meniu vertical se pot grupa. Pentru a le grupa se trage o linie orizontală. Pentru a insera o line de separaŃie în coloana Prompt se utilizează combinaŃia \-. Se poate observa de asemenea fără dificultate din figură dacă o opŃiune dintr-un meniu vertical are un submeniu, numele lui este urmat de un vârf de săgeată. Numărul nivelelor de meniuri nu este limitat.

• Procedure – indică faptul că la selectarea opŃiunii corespunzătoare din meniu se doreşte executarea unei proceduri (secvenŃe de comenzi). Dacă se selectează opŃiunea Procedure, apare alături de zona respectivă un declanşator pe care scrie Create la crearea procedurii şi respectiv Edit dacă procedura a fost deja creată şi se doreşte, eventual, modificarea ei.

• Ultima coloană a acestei ferestre este Options. În această fereastră putem stabili opŃiuni legate de obiectul în cauză. Dacă se selectează o opŃiune, de exemplu Vizualizare, în dreptul ei apare un buton pe coloana Options. Efectuând un click pe butonul respective apare chenarul Prompt options cu ajutorul căreia se pot stabili opŃiunile dorite. Această fereastră are mai multe chenare. - Primul chenar Shortcut, are două zone de tip tex, Key Label şi Key

Text, cu ajutorul cărora putem defini combinaŃii de taste pentru apelul scurtcircuitat al meniului sau al opŃiunii, analog metodei binecunoscute din Windows. OpŃiunile au pentru scurtcircuitare Ctrl+tastă. De exemplu, pentru vizualizare se poate utiliza combinaŃia Ctrl+V. Nu se admite combinaŃia Ctrl+J. IniŃial cursorul de inserare este în Key Label iar textul afişat este (Press the key). AcŃionând 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 situaŃia î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 opŃiunea nu este selectabilă. Expresia poate fi construită şi cu ajutorul

Page 143: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

143

Constructorului de expresii, dacă se efectuează un click pe butonul de lângă chenarul de editare.

- În chenarul Message se poate introduce o expresie de tip caracter care după evaluare este afişată pe linia de stare a ferestrei.

- Pad Name/Bar# are semnificaŃia de mai sus, cu observaŃia că Pad Name este utilizabil numai în situaŃia utilizării unuia dintre prompterele diferite de PAD, iar BAR poate fi folosit numai în meniurile contextuale.

- Picture - se utilizează dacă în stânga textului din meniu sau în meniu se afişează un grafic sau se utilizează o resursă sistem.

- Comment – permite editarea unui comentariu ca şi în cazul generării altor obiecte.

Revenind la Menu Designer, în dreapta sus apare lista derulantă Menu Level, cu ajutorul căruia se poate stabili nivelul de meniu care este afişat curent. Dacă se doreşte navigarea în meniu, de exemplu trecerea la meniul bară, se execută un click pe săgeată ş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 declanşatoare INSERT, INSERT BAR, DELETE şi MOVE ITEM. Cu aceste se poate insera o opŃiune înaintea unei alte opŃiuni din meniul bară (INSERT). În acest caz apare o opŃiune cu numele standard New Item. Folosind INSERT BAR apare lista verticală Insert System Menu Bar din care dacă se selectează, de exemplu, New, se obŃine linia \New din figura de mai jos. Dacă se selectează butonul Move Item apare fereastra cu acelaşi nume, iar din lista derulantă To Location se poate selecta locaŃia din meniu unde se doreşte mutarea opŃiunii. Ultima opŃiune din fereastra Menu Designer este Preview, cu care putem vizualiza în orice moment modul de funcŃionare a meniului care se construieşte sau se editează, ca şi în cazul exemplului nostru.

Page 144: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

144

8.2.9. OpŃiunile meniului vertical Menu şi generarea meniurilor

Odată cu lansarea comenzii de creare sau modificare a unui meniu, în meniul bară va apare opŃiunea MENU. Dacă se selectează această opŃiune apare un meniu vertical.

OpŃiunile meniului au fost prezentate anterior rămânând doar opŃiunea de generare. Deci, dacă se salvează fără generare meniul, se obŃine tabela specială cu extensia MNX. Dacă se selectează opŃiunea 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 tastând direct, fie utilizând un sistem Browse cu ajutorul butonului alăturat.

Efectuând 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 opŃiunilor 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ă executând un click cu butonul din dreapta pe un obiect. Meniurile contextuale se creează asemănător cu cele bară, deosebirile fiind date numai de faptul că în chenarul New Menu se selectează declanşatorul Shortcut, în loc de Menu, iar meniul este vertical.

Page 145: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

145

REZUMAT Modulul este format din două unităŃi.

Prima unitate este destinată gestiunii rapoartelor. Problemele principale tratare în această unitate sunt:

1. Structura şi planificarea unui raport, din punct de vedere conceptual;

2. Componentele unui raport în VFP; 3. Controalele raportului şi modul de utilizare a acestora 4. Structura constructorului de rapoarte de rapoarte şi modul de

utilizare a lui; 5. Gestiunea rapoartelor (creare, modificare, exploatare şi

ştergere) 6. AsistenŃi pentru gestiunea rapoartelor atât pentru rapoarte

rapide cât şi utilizarea Wizard-ului. A doua unitate este destinată meniurilor. Principalele probleme tratate se referă la: 1. Probleme conceptuale referitoare la meniuri şi rolul lor; 2. Structura şi utilizarea ferestrei constructorului de meniuri; 3. OpŃiunile posibile la generarea meniurilor şi submeniurilor; 4. Gestiunea meniurilor (creare, modificare, ştergere); 5. Exploatarea meniurilor.

TEME DE CONTROL, APLICAłII

3. Se vor elabora aplicaŃii legate de cele două teme din modul. 4. Se vor elabora aplicaŃii complexe de Informatică Economică

Afaceri, BIBLIOGRAFIE 1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai

N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, p. 310-350.

2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 321-352

3. Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora ,Bucuresti,1999. 4. Marin Fotache,Ioan Brava, Cătălin Strâmbei, Liviu CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor profesionale, Editura Polirom Iaşi, 2002. 5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea aplicaŃiilor cu baze de date în Visual FoxPro, Editura All, Bucureşti, 2001. 6. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003.

Page 146: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

146

9. INTEROGĂRI(QUERIES) ÎN VISUAL FOXPRO CONCEPTE DE BAZA

- Interogarea ca metodă de extragere a datelor; - Sursa datelor; - Tipuri de interogări; - Gestiunea interogărilor; - Interogări şi rolul lor; - Crearea şi modificarea interogărilor; - Rularea interogărilor.

OBIECTIVE 6. Însuşirea tehnicilor de creare a unei interogări Visual FoxPro;

7. Familiarizarea cu structura interogărilor din Visual FoxPro;

8. Formarea deprinderilor de creare şi utilizare a interogărilor;

9. Crearea abilităŃilor de creare şi utilizare a interogărilor în Visual FoxPro.

RECOMANDĂRI PRIVIND STUDIUL

9. Se vor proiecta din punct de vedere conceptual structuri logice de interogări;

10. Se vor studia cu atenŃie modalităŃile de construire a interogărilor;

11. Se vor crea diferite interogări pentru aplicaŃii economice.

REZULTATE ASTEPTATE

După parcurgerea acestui modul utilizatorul trebuie să fie în măsură să definească şi folosească corect interogările şi să implementeze pe baza lor aplicaŃii complexe din informatica economică şi de afaceri.

Page 147: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

147

9.1. CREAREA INTEROGĂRILOR

OBIECTIVE 4. Sursa datelor; 5. Tipuri de interogări; 6. Crearea şi modificarea interogărilor.

NOłIUNI CHEIE

1. Interogare: 2. Tipuri de interogări; 3. Metode de creare; 4. ExecuŃia interogărilor.

9.1.1. Tipuri de interogări:

� de selectie: permit selectarea anumitor inregistrari din tabele pe baza unor criterii de selectie;

� de actiune: realizeaza o actiune (adaugare, actualizare, stergere) asupra unei tabele sau permit crearea unei tabele noi care sa contine anumite campuri selectate pe baza unor criterii

Crearea interogarilor in Visual FoxPro se face utilizand Query Designer prin selectarea optiunii Query->New. Paşi: P1: Se selecteaza tabelele din care se vor utiliza datele; P2: Selectarea campurilor dorite se realizeaza in fereastra Fields, care permite si contruirea de expresii noi cu ajutorul utilitarului Expression Builder (optiunea Functions and Expressions – vezi paragraful Costruirea expresiilor in Expression Builder). Vezi figura 1.

Page 148: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

148

Figura 1: Selectarea si construirea expresiilor ce vor apare in interogare

P3: (opŃional): Vizualizarea si modificarea legaturilor dintre tabele se face in fereastra Join in cazul in care se doreste schimbarea legaturilor. P4: Specificarea criteriilor de selectie se realizeaza in fereastra Filter prin utilizarea operatoriilor (vezi tabelul) si prin crearea de noi expresii cu ajutorul utilitarului Expression Builder (opŃiunea Expressions). Vezi figura 2.

Figura 2: Stabilirea criteriilor de selectie

Operatori: <, >, =, >=, <=, NOT Operatori de comparatie

Page 149: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

149

BETWEEN ... AND ... între două valori (inclusiv). SELECT codp, cant FROM randfact WHERE cant BETWEEN 10 AND 15; IN(listă) egal cu oricare valoare din listă SELECT codf, denumire FROM furnizori WHERE codf IN (7902, 7566, 7788); SELECT codf, denumire FROM furnizori WHERE denumire IN (’ALFA’,’DELTA’); LIKE similar cu un şablon

% - oricâte caractere; _ - un caracter; SELECT denumire, localitate FROM furnizori WHERE localitate LIKE ’S%’; SELECT denumire, localitate FROM furnizori WHERE localitate LIKE ’_A%’; IS NULL are valoarea NULL SELECT codf, denumire FROM furnizori WHERE denumire IS NULL; P5: Ordonarea datelor se realizeaza in ferestra Order By, iar gruparea acestora in functie de un anumit camp se realizeaza in fereastra Group By. Aceste optiuni sunt utilizate numai in cazul interogarilor de grup (ex. Pentru a calcula totalul unei facturi, datele vor fi grupate mai intai in functie de campul nrserie din tabela Facturi si apoi se va aplica functia SUM() pentru insumarea valorilor produselor).

9.1.2. Construirea expresiilor în Expresion Buider Sintaxa generala este:

[Expresie] AS ALIAS unde: [Expresie] este o constructie formata din campuri si functiile oferite de limbaj Alias este o denumire, sinonim pt expresia respectiva Exemplu:

1) RandFact.Cant * RandFact.Pret AS Valoare - se calculeaza valoarea unui produs

2) 0.19 * (RandFact.Cant * RandFact.Pret) AS TVA - se calculeaza valoarea TVA pt un produs

3) Socuri.SI + Stocuri.CI – Stocuri.CE AS Stoc_Final – se calculeaza stocul final pt un produs aflat in depozit

4) SUM(1.19 * (RandFact.Cant * RandFact.Pret)) AS Valoare_Factura – se calculeaza valoarea totala a unei facturi. Atentie! Pt acest tip de expreie trebuie grupate inregistrarile in functie de nrserie in optiunea Group By

Page 150: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

150

5) COUNT( Ranffact.Codp) AS NrProduse – numara totalul produselor pe fiecare factura. Atentie! Pt acest tip de expreie trebuie grupate inregistrarile in functie de nrserie in optiunea Group By 9.2. Nucleul SQL – Structured Query Language

Limbaj standard de interogare a bazelor de date. Implementat în

majoritatea SGBD-urilor, dar nu numai.

Interogarea bazelor de date, fie dintr-un limbaj de nivel înalt (C++,

Pascal, Visual C, Delphi...), fie dintr-un limbaj de programare Web (PHP, ASP,

JSP), se face, cel mai adesea, prin fraze SQL.

SELECT [DISTINCT] { * , atribut [alias] , expresii AS ALIAS ...}

FROM tabelă; WHERE {conditii, precizarea legaturilor dintre tabele} GROUP BY tabela..camp HAVING {conditii impuse valorilor de grup} ORDER BY tabela . camp ASC/DESC unde:

SELECT specifică atributele selectate;

DISTINCT suprimă valorile duplicate; * selectează toate atributele; atribut selectează coloana numită; expresie permite construirea de expresii si valori noi alias denumiri pentru atributele selectate; FROM table specifică tabela ce conŃine coloanele selectate. WHERE clauza permite specificarea conditiilor si a criteriilor

de selectie a datelor GROUP BY se precizeaza campul dupa care vor fi grupate datele in

cazul expresiilor si functiilor de grup (SUM(), AVG(), COUNT(), MIN(), MAX())

HAVING in cazul functiilor de grup conditiile impuse acestora se precizeaza in clauza HAVING

ORDER BY precizeaza ordonarea in functie un anumite campuri ascendent (ASC) –implicit sau descendent (DESC)

Frazele SQL:

� Nu sunt case sensitive; � Pot fi scrise pe mai multe linii;

Page 151: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

151

� Cuvintele cheie nu pot fi prescurtate sau scrise pe mai multe linii; In construirea frazelor SQL se utilizeaza operatorii prezentati anterior la Queries:

Atributele se specifică în ordinea în care se doresc a fi afişate, nu obligatoriu în ordinea în care apar în descrierea tabelelor.

Afişarea se face implicit cu litere mari, la stânga pentru datele de tip dată calendaristică şi caracter, şi la dreapta pentru datele numerice. Valoarea NULL, ca şi în alte limbaje, semnifică valoare ne-disponibilă, ne-alocată, şi nu este acelaşi lucru cu „blank” sau „zero”. Cu ajutorul frazelor select se pot extrage informaŃii din baza de date. Utilizând această instrucŃiune se pot realiza toate cele trei operaŃii specifice modelului relaŃional. SelecŃia: Operator unar, prin care se obŃine o nouă relaŃie care conŃine

toate atributele relaŃiei iniŃiale şi un număr redus de tupluri. Reducerea se face după o condiŃie numită condiŃie de selecŃie.

ProiecŃia: Operator unar, prin care se obŃine o nouă relaŃie care conŃine un număr redus de atribute faŃă de relaŃia iniŃială şi toate valorile sau combinaŃiile distincte de valori ale acestor atribute. Atributele care se regăsesc în relaŃia rezultată se numesc atribute de proiecŃie.

Page 152: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

152

JoncŃiunea: Operator binar, caz particular de produs cartezian. RelaŃia rezultat va conŃine tuplurile corespunzătore atributelor de join care se află într-o anumită relaŃie. Cel mai utilizat caz de joncŃiune este acela în care atributele de join au aceeaşi semnificaŃie, relaŃia în care acestea trebuie să se afle este de egalitate, unul dintre atribute e cheie primară într-una dintre relaŃii, iar celălalt este cheie externă.

EXEMPLE:

1. Sa se selecteze toti furnizorii din tabela furnizori: SELECT * FROM furnizori 2. Sa se selecteze campurile codf, denf si adresa din tabela furnizori: SELECT codf, denf, adresa FROM furnizori 3. Sa se selecteze numai furnizorii din Bucuresti: SELECT * FROM furnizori WHERE adresa LIKE ’%BUCURESTI%’ 4. Sa se selecteze facturile neachitate: SELECT * FROM facturi WHERE stare = ’N’ 5. Sa se selecteze facturile emise de furnizorul cu codul F4: SELECT * FROM facturi WHERE codf = ’F4’

Page 153: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

153

6. Sa se selecteze facturile emise de furnizorii firmei (in clauza WHERE se va preciza conditia de legatura dintre tabele)

SELECT furnizori.*, facturi.* FROM furnizori, facturi WHERE facturi.codf=furnizori.codf 7. Sa se selecteze facturile neachitate emise de furnizorul F4: SELECT furnizori.*, facturi.* FROM furnizori, facturi WHERE facturi.codf=furnizori.codf AND facturi.stare=’N’ AND

facturi.codf = ’F4’ 8. Sa se calculeze valoarea fiecarui produs (valoare =cant* pret)

SELECT facturi.*, randfactura.*, randfactura.cant * randfactura.pret AS Val_Prod FROM facturi, randfactura WHERE facturi.nrserie=randfactura.nrserie

9. Sa se selecteze numai produsele cu valoarea cuprinsa intre 1 si 3 mil: SELECT facturi.*, randfactura.*, randfactura.cant * randfactura.pret AS Val_Prod FROM facturi, randfactura WHERE facturi.nrserie=randfactura.nrserie and randfactura.cant * randfactura.pret BETWEEN 1000000 AND 3000000 10. Sa se calculeze valoarea totala a fiecarei facturi (se utilizeaza functie

SUM() si clauza GROUP BY pt gruparea datelor in functie de facturi.nrserie ) si sa se sorteze descrescator in functie de valoare:

SELECT facturi.*, SUM( randfactura.cant * randfactura.pret ) AS Total_Fact FROM facturi, randfactura WHERE facturi.nrserie=randfactura.nrserie GROUP BY facturi.nrserie ORDER BY Total_Fact DESC

9.3. Crearea interogărilor prin Querz Wizard

Page 154: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

154

O aplicaŃie pe lângă tabele şi formulare, poate conŃine şi interogări şi rapoarte folosite pentru selecŃia şi afişarea datelor necesare utilizatorilor. Interogările pot avea diferite destinaŃii, astfel încât pot fi utilizate şi în cadrul altor componente ale aplicaŃiei. Când utilizăm o interogare în cadrul aplicaŃiei, de fapt, utilizăm o instrucŃiune SELECT – SQL, pe care o putem crea prin intermediul unei interogări scrise în fereastra Proiectantului de Interogări (Query Designer) sau prin codul scris pentru un eveniment sau pentru o procedură. Folosind instrucŃiunea SELECT – SQL avem posibilitatea să combinăm diverse surse de date, să filtrăm înregistrările, să manipulăm datele şi să ordonăm rezultatele, putem, de asemenea, să controlăm rezultatele unei interogări şi locul de stocare al acestora. Pentru a crea o instrucŃiune SELECT – SQL folosim Proiectantul de Interogări sau comenzi: cu ajutorul Proiectantul de Interogări (Query Designer) generăm instrucŃiunea, apoi copiem conŃinutul ferestrei SQL într-o fereastră de cod prin comenzi, scriem instrucŃiunea SELECT – SQL într-o fereastră de cod.

Pentru a afişa rezultatele interogării într-un grafic putem folosi: Graph Wizard, Proiectantul de Interogări sau o instrucŃiune SELECT – SQL. În ultimele două variante trebuie inserat în setul de rezultate un câmp de tip numeric pentru a crea graficul. Putem alege unul din cele şase tipuri de grafice, fiecare cu câte două variante.

Exemplu: Deoarece modul de proiectare şi utilizarea a interogărilor este asemănător vederilor, vom prezenta în continuare modalitatea concretă de proiectare a unei interogări comenzi_qry.qpr creată pe baza unei vederi cu numele comenzi_view. SET DEFAULT TO c:\anca\carte-sgbd SET DATE TO DMY OPEN DATABASE "c:\anca\carte-sgbd\comenzi.dbc" EXCLUSIVE MODIFY DATABASE Prin această secvenŃă de comenzi am specificat directorul curent de lucru, am setat modul de afişare a datei calendaristice la formatul zz/ll/aa, am deschis baza de date comenzi.dbc, care conŃine şi vederea comenzi_view, şi am activat fereastra Database Designer. Din meniul File, opŃiunea New, Query, Wizard, activăm caseta Wizard Selection de unde selectăm opŃiunea Query Wizard pentru a proiecta interogarea cu ajutorul asistentului (Wizard). Specificarea sursei de date şi a câmpurilor. Mai întâi selectăm numele vederii care va furniza sursa de date pentru interogare şi câmpurile care vor face parte din structura interogării, ca în figura 3.

Page 155: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

155

Figura 3. Fereastra Proiectantului de Interogări (Query Wizard)

Specificarea condiŃiei de filtrare a înregistrărilor. În etapa următoare de proiectare vom specifica condiŃia de filtrare a înregistrărilor (figura 4), şi anume, aceea ca interogarea să conŃină numai înregistrările clienŃilor din CRAIOVA.

Figura 4. Specificarea condiŃiei de filtrare a înregistrărilor

Ordonarea înregistrărilor. Pentru ca înregistrările să fie ordonate crescător după data comenzii vom specifica această cerinŃă ca în figura 5.

Page 156: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

156

Figura 5. Specificarea condiŃiei de ordonare a înregistrărilor

Salvarea interogării. Vom salva interogarea în fişierul comenzi_qry.qpr. Fereastra Proiectantului de Interogări (Query Designer) pentru acest fişier este prezentată în figura 6.

Figura 6. Fereastra Proiectantului de Interogări pentru fişierul comenzi_qry.qpr

Comanda SELECT – SQL care generează această interogare are următoarea sintaxă: SELECT *; FROM comenzi!comenzi_view;

Page 157: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

157

WHERE AT("CRAIOVA",Comenzi_view.adresa) > 0; ORDER BY Comenzi_view.datacda Pentru a vizualiza rezultatul interogării folosim comanda DO care are sintaxa DO nume_fişier.ext sau meniul Query, opŃiunea Run Query. În cazul acestui exemplu, comanda DO are următoarea sintaxă: DO comenzi_qry.qpr În urma execuŃiei acestei comenzi se obŃine rezultatul prezentat în figura 7.

Figura 7. Rezultatul interogării comenzi_qry

Exemplu de proiectare a unei interogări cu numele Furnizori folosind BD Evidenta Facturi.

Pentru realizarea interogării se foloseşte varianta Query Wizard.

Page 158: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

158

Pasul 1: se selectează din tabela Furnizori, respectiv, tabela Facturi, câmpurile care vor apare în interogare, cu observaŃia că se preia o singură dată câmpul CUI din tabela Furnizori (el apare şi în structura tabelei Facturi).

Pasul 2: se validează relaŃia creată între cele două tabele prin câmpul comun CUI.

Page 159: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

159

Pasul 3: se poate stabili o condiŃie de filtrare a înregistrărilor, astfel încât

în interogare vor apare numai acele înregistrări din BD care îndeplinesc condiŃia impusă (ex. FURNIZORI.DENUMIRE equals “CRAIOVA”).

Pasul 4: se pot stabili câmpurile după care sunt ordonate datele din

interogare.

Page 160: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

INFORMATICĂ MANAGERIALĂ

160

Pasul 5. Este salvată interogarea în fişierul Furnizori.qpr.

Se pot adăuga în structura interogării pe lîngă câmpurile componente ale tabelelor şi expresii calculate (ex. Facturi.valfaratva*0.19 care determină valoarea tva-ului pt. Fiecare factură şi Facturi.valfaratva*1.19 care determină totalul general al fiecărei facturi).

În figura de mai sus este prezentat rezultatul interogării BD EvidenŃă Facturi. TEME DE 5. Se vor realiza aplicaŃii legate de diferitele tipuri de

Page 161: Informatica manageriala. Cristescu M.didu.ulbsibiu.ro/myself1/x-resurse/resurse/r_1620524323940_Informatica... · cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de

161

CONTROL, APLICAłII

interogări; 6. Se vor elabora aplicaŃii complexe de Informatică Economică

şi de afaceri, BIBLIOGRAFIE 1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai

N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, p. 218-245.

2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 247-285

3. Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora, Bucuresti,1999. 4. Marin Fotache,Ioan Brava, Cătălin Strâmbei, Liviu CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor profesionale, Editura Polirom Iaşi, 2002. 5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea aplicaŃiilor cu baze de date în Visual FoxPro, Editura All, Bucureşti, 2001. 6. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003.