Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » baze de date
Generatoare in Visual Fox Pro

Generatoare in Visual Fox Pro


Generatoare in Visual Fox Pro

Din punctul de vedere al utilizatorului, interfata unei aplicatii este formata din meniuri, ferestre, obiecte de control etc., implementarea acestor elemente realizandu-se prin intermediul programelor de introducere a datelor. La randul lor aceste programe pot fi obtinute fie "manual", caz in care utilizatorul introduce continutul programului linie cu linie, fie "automat" pe baza optiunilor specificate anterior de catre utilizator, folosindu-se asa numitele generatoare. Ultima metoda este folosita mai cu seama de incepatori deoarece nu necesita cunoasterea limbajului de programare.

Generatoarele sunt instrumente incorporate in pachetul VFP care printr-un minim de informatii oferite de utilizator permit executarea rapida a unei game largi de actiuni asupra tabelelor sau a bazelor de date. Aceste generatoare asigura realizarea usoara a ecranelor, meniurilor, rapoartelor, interogarilor si a etichetelor fara a scrie programe sursa, operatie dupa care VFP genereaza codul necesar pentru includerea acestor elemente in aplicatii. Practic principiul de functionare a generatoarelor cere ca utilizatorul sa-si specifice, prin intermediul interfetei VFP, optiunile si cerintele sale, iar VFP sa genereze programe obiect. Desi nu inlocuiesc in totalitate munca de programare, prin "schitele /machetele" pe care le realizeaza generatoarele pentru formulare, rapoarte si alte componente se obtin importante economii de timp pe parcursul dezvoltarii unei aplicatii. Avantajul folosirii generatoarelor este dat de posibilitatea obtinerii unor programe performante cunoscand doar comenzile de baza ale limbajului FoxPro.



1 Generatorul de rapoarte (Report Designer)

Crearea unui raport este echivalenta cu specificarea de catre utilizator a unei structuri pe baza careia datele din tabele vor fi afisate pe ecran, tiparite la imprimanta sau salvate intr-un fisier text.

Lansarea generatorului de rapoarte se poate realiza fie in modul de lucru asistat (meniul File, optiunea New, butonul radio Report, pictograma New File sau Wizard fie in fereastra de comenzi cu comanda CREATE REPORT care are formatul general:

CREATE REPORT [<nume_fisier>| ?]

[NOWAIT] [SAVE]

[WINDOW <nume_fereastra1>]

[IN [WINDOW] <nume_fereastra2> | IN SCREEN

Optiunile acestei comenzi au acelasi rol ca si in cazul comenzii MODIFY COMMAND. Extensia implicita pentru fisierele astfel obtinute este .frx.

Indiferent de modalitatea de lansare in bara meniului sistem devine disponibil meniul Report:

Generatorul de rapoarte deschide fereastra de configurare in care urmeaza a fi definita structura viitorului raport, pe baza tabelei /tabelelor din baza de date activa.

In fereastra de configurare sunt folosite si facilitatile oferite de bara de instrumente Report Controls Toolbar activata din meniu View:

Utilizatorul stabileste continutul si forma raportului prin intermediul a patru tipuri de obiecte explicative/ suplimentare.

Folosind Report Controls Toolbar din meniu View se poate realiza rafinarea unui raport prin introducerea unor texte explicative (cu ajutorul pictogramei Label) si a unor linii si chenare (cu ajutorul pictogramelor Line, Rectangle sau Rounded Rectangle). In plus, pot fi introduse si obiecte care admit tehnologia OLE (folosind pictograma Picture /OLE Bound Control).

Fereastra de configurare este structurata implicit pe trei benzi orizontale, care de fapt se constituie in zone ale unei pagini de raport:

-Page Header (banda superioara de pagina);

-Detail (banda de detalii);

-Page Footer (banda inferioara de pagina).

Page Header este zona in care se pot plasa informatii constante sau variabile precum: titlu, antet, numar de pagina, data calendaristica etc. Continutul acestei benzi apare in partea superioara a fiecarei pagini de raport.

Detail este zona care formeaza corpul propriu-zis al raportului si contine de obicei informatii extrase direct din tabele sau calculate pe baza acestora. Pentru a lansa constructorul de expresii (Expression Builder) se activeaza pictograma Field - ab - din Report Controls Toolbar. In expresiile ce vor fi evaluate odata cu executia raportului pot fi folosite campuri din tabele, variabile de memorie, constante si operatori. Optional se poate cere verificarea corectitudinii expresiei construite, daca se activeaza butonul de comanda Verify. In urma verificarii, dupa caz sistemul afiseaza mesajele "Expression is valid" sau "Syntax error".

Page Footer este zona care poate contine informatii fixe sau variabile (precum data calendaristica, numarul de pagina etc.)care vor apare in partea inferioara a fiecarei pagini de raport.

Pe langa aceste benzi, in functie de optiunile utilizatorului, un raport poate fi prevazut si cu alte benzi suplimentare: Title (banda de titlu); Summary (banda rezumat); Group Header (banda superioara de grup); Group Footer (banda inferioara de grup).

Benzile de titlu si rezumat sunt incluse in raport cu ajutorul optiunii Title /Summary.din meniul Report. Banda Title poate contine un simplu nume de raport sau chiar un intreg paragraf introductiv in care sunt prezentate informatii generale privind continutul raportului. Continutul acestei benzi apare o singura data in partea superioara a raportului. Banda Summary contine informatii care sintetizeaza continutul raportului, aparand o singura data la sfarsitul acestuia.

Daca utilizatorul doreste prezentarea datelor din tabele sub forma de grupe de articole, dupa anumite criterii, se va folosi optiunea Data Grouping. din meniul Report. Activarea acestei optiuni determina includerea in raport pentru fiecare grup in parte a perechii de benzi Group Header si Group Footer. Banda Group Header va contine informatii stabilite de utilizator pentru identificarea mai usoara a fiecarui grup in parte. Banda Group Footer contine rezumate si /sau subtotaluri realizate pe baza informatiilor din grup. Pentru o grupare corecta a articolelor in raport, inaintea lansarii generatorului trebuie realizata indexarea tablei /tabelelor dupa campurile ce vor constitui criterii de grupare. Intr-un raport sunt admise maximum douazeci de niveluri de grupare a articolelor.

VFP permite obtinerea asa numitelor rapoarte rapide prin folosirea din meniul Report a optiunii Quick Report. Aceasta optiune deschide fereastra prin care se stabileste configuratia de baza a raportului:

Butoanele de comanda Field layout stabilesc modul in care vor fi plasate campurile in banda de detalii (pe coloane sau pe randuri).

Caseta de validare Titles, daca este activata, plaseaza in banda Page Header, ca nume de coloane, numele campurilor.

Caseta de validare Add alias ataseaza la numele campurilor din banda de detalii si aliasul tabelei din care fac parte.

Caseta de validare Add table to data environment, daca este activata, salveaza informatiile privind starea mediului VFP odata cu salvarea raportului.

Butonul de comanda Fields. permite selectarea, cu ajutorul ferestre Field Picker a campurilor ce se vor regasi in raport:

Se observa ca butonul implicit este All care preia in raport toate campurile tabelei curente. Pentru extragerea doar a anumitor campuri, dupa selectarea lor din lista All fields se foloseste butonul Move pentru a le transfera in zona Selected fields. Anularea selectiilor se realizeaza cu butoanele Remove sau Remove All. Lista From table permite selectarea tabelelor pe baza carora va fi obtinut raportul.

Exemplu: Folosind tabela student.dbf sa se obtina un raport cu titlul "SITUATIA SCOLARA" in care articolele sa fie grupate dupa denumirea sectiei. Pentru fiecare sectie se va calcula media generala, iar in finalul raportului se va calcula media generala pe facultate.

USE student

INDEX ON specializ TO sectie

CREATE REPORT student

Previzualizarea raportului astfel obtinut se poate realiza folosind optiunea Preview din meniul View, rezultatul fiind:


VFP ofera si posibilitatea obtinerii unui raport rapid fara a deschide fereastra de configurare Report Designer. In acest scop este folosita comanda:

CREATE REPORT <nume_fisier1>| ? FROM <nume_fisier2>[FORM | COLUMN]

[FIELDS <lista_campuri>] [ALIAS][NOOVERWRITE] [WIDTH <nr_coloane>]

Aceasta comanda permite definirea structurii noului raport, direct prin clauzele componente.

Primul nume de fisier indica numele raportului ce se creeaza. Daca se foloseste ? se deschide fereastra Create in care se precizeaza numele raportului si locatia pentru salvare.

Clauza FROM precizeaza numele tabelei sursa din care vor fi preluate datele in raport.

Clauzele FORM | COLUMN stabilesc modalitatea de plasare a campurilor in banda Detail (pe randuri sau pe coloane).

Clauza FIELDS stabileste pentru banda Detail doar campurile incluse in lista. In absenta clauzei in raport sunt preluate toate campurile tabelei curente.

Clauza ALIAS permite atasarea aliasului tabelei la numele campurilor din raport.

Clauza NOOVERWRITE interzice "suprascriearea" unui raport existent.

Clauza WIDTH stabileste latimea paginii de raport (numar de coloane).

Exemplu: Folosind tabela student.dbf sa se creeze raportul lista.frx in care campurile numest, prenume, media sunt plasate pe coloane:

USE student

CREATE REPORT lista FROM student COLUMN FIELDS numest, prenume, media

Modificarea structurii unui raport creat anterior se poate realiza cu ajutorul comenzii MODIFY REPORT care are formatul

MODIFY REPORT [<nume_raport>| ?][[WINDOW <nume_fereastra1>][IN [WINDOW] <nume_fereastra2> | IN SCREEN]][NOENVIRONMENT][NOWAIT][SAVE]

Clauzele au functiuni similare cu cele prezentate la comenzile anterioare. Aceasta comanda este echivalenta cu optiunea Open din meniul File.

Executarea unui raport se realizeaza folosind comanda REPORT FORM care are formatul general:

REPORT FORM<nume_raport>| ?[ENVIRONMENT] [<domeniu>] [FOR<expr_log1>] [WHILE <expr_log2>][HEADING <text_banda_superioara>][NOCONSOLE]

[NOOPTIMIZE][PLAIN][RANGE <nr_pag_start> [,<nr_pag_stop>]]

[PREVIEW [WINDOW <nume_fereastra>][NOWAIT]][TO PRINTER[PROMPT]|

TO FILE<nume_fisier_text>[ASCII]][NAME ,nume_obiect>][SUMMARY]

Ne oprim in continuare doar asupra clauzelor care nu au fost prezentate anterior.

Clauza PLAIN determina afisarea continutului benzii Page Header doar pe prima pagina a raportului.

Clauza PREVIEW permite previzualizarea raportului inaintea tiparii lui.

Clauza RANGE stabileste intervalul de pagini care vor fi incluse in rezultatul executiei raportului.

Pentru a crea rapoarte bazate pe mai multe tabele sau doar pe anumite date dintr-un tabel, in prealabil trebuie realizata o interogare. Acest caz va fi discutat in cadrul paragrafului 6.4.3 Crearea filtrelor.

3.Generatorul de meniuri (Menu Designer)

Pentru a veni in sprijinul utilizatorului final VFP ofera posibilitatea gruparii mai multor proceduri, functii si comenzi intr-o singura aplicatie. In cazul aplicatiilor complexe devine necesara folosirea unui program principal cu rolul de a stabili, succesiunea de lansare in executie a componentelor aplicatiei. In general un asemenea program este construit in jurul unui meniu principal care defineste cadrul dialogului cu utilizatorul pe diverse niveluri, stabilind totodata legatura univoca intre functiile unui program si cerintele privind prelucrarea.

In VFP un astfel de program poate fi realizat, in principal prin:

-scrierea linie cu linie a comenzilor speciale de obtinere a unui meniu (DEFINE MENU, DEFINE BAR, DEFINE POPUP etc.);

-utilizarea generatorului de meniuri.

Lansarea generatorului de meniuri poate fi realizata fie folosind interfata VFP (meniul File, optiunea New, butonul radio Menu, pictograma New File), fie comanda CREATE MENU care are formatul general:

CREATE MENU [<nume_meniu> | ?][NOWAIT] [SAVE]

[WINDOW <nume_fereastra1>][IN [WINDOW] <nume_fereastra2> | IN SCREEN]

Clauzele comenzii au acelasi rol ca si in cazul comenzilor prezentate anterior.

La lansarea generatorului se deschide fereastra New Menu care are structura:

Fereastra de configurare a meniului Menu Designer este structurata in zonele: Prompt, Result si Options.

Zona Prompt este o zona de editare in care utilizatorul introduce numele elementelor meniului.

Zona Result la randul sau este structurata pe doua subzone astfel:

-prima subzona permite selectarea dintr-o lista ascunsa a tipului elementului de meniu ce se defineste (submeniu, procedura, comanda etc.);

-a doua subzona in care, dupa caz, sunt disponibile butoanele Create sau Edit (cand se creeaza sau se modifica un submeniu (submenu) sau o procedura ( procedure)) sau o zona de editare text (cand se defineste o optiune bara meniu (pad), o optiune submeniu(Bar# ) sau o comanda(command)).

VFP adauga implicit ca ultim element din meniul utilizator, meniul Format, ale carui optiuni pot fi folosite la formatarea fonturilor in fereastra de comenzi si in programul generat.

Zona Options permite stabilirea unor caracteristici suplimentare pentru elementele meniului (scurtaturi, conditii de salt, mesaje, comentarii).

In aceeasi fereastra de configurare este posibila si modificarea definitiilor anterioare prin folosirea butoanelor din zona Item (Insert, Insert Bar si Delete ).

Odata cu deschiderea ferestrei de configurare in bara meniu sistem devine disponibil si meniu Menu care are urmatoarele optiuni:

Optiunea Quick Menu poate fi selectata numai daca in fereastra de configurarea a meniului nu au fost definite elemente si este folosita pentru crearea unei structuri complete de meniu, bazata pe structura meniului sistem VFP. Cu ajutorul acestei optiuni poate fi modificata structura implicita a meniului sistem VFP prin adaugarea unor noi optiuni, stergerea unor optiuni, modificarea numelui sau a ordinei de aparitie a optiunilor in meniu, asa cum se poate observa din fereastra urmatoare:

Optiunile Insert Item si Delete Item sunt echivalente ca functiune cu butoanele de comanda Insert si Delete din zona Item a ferestrei Menu Designer. Optiunea Insert Bar este selectabila numai pentru introducerea unei optiuni bara in cadrul unui submeniu.

Optiunea Generate genereaza codul obiect pentru un program care sa realizeze meniul pe baza optiunilor din fereastra de configurare. Fereastra Generate Menu are structura:

In aceasta fereastra se cere specificarea fisierului destinatie (in zona Output File).

Optiunea Preview este echivalenta ca functie cu butonul de comanda Preview si asigura previzualizarea meniului cu elementele definite in fereastra de configurare curenta.

Exemplu: Sa se genereze un meniu prin care sa se gestioneze fondul de carte dintr-o biblioteca. Vor fi consultate tabelele: books.dbf, cititori.dbf si imprumut.dbf care sunt prezentate in continuare:

 

 

In bara meniu vor fi plasate pad-urile: BAZA DE DATE, OPERATIUNI, LISTE si IESIRE.

BAZA DE DATE va contine submeniurile: FOND DE CARTE, CITITOR, si IMPRUMUT. Fiecare dintre aceste submeniuri este structurat in procedurile ADAUGARE si STERGERE si submeniul MODIFICARE. La randul sau submeniul MODIFICARE este alcatuit din doua proceduriSTRUCTURA (pentru modificarea structurii tabelei curente) si INREGISTRARI (pentru modificarea intr-o fereastra Browse a inregistrarilor tabelei:

OPERATIUNI va contine procedura SORTARE de sortare a tabelei books.dbf dupa mai multe chei (editura, n_autor, p_autor) si submeniul INDEXARE care la randul sau este structurat pe trei proceduri in functie de tipul de fisier index ce se obtine:fisier index simplu (bookinds.idx cu cheia de indexare editura); fisier index compus structural (books.cdx cu etichetele autor, titltu si an in functie de cheia de indexare folosita); fisier index compus nestructural (editura.cdx cu eticheta editura).

LISTE va contine doua proceduri pentru listarea imprumuturilor(SIT INPRUMUTUROLOR) si a cititorilor (SIT CITITORILOR):

Situatia imprumuturilor se va obtine prin executarea unui filtru (xbooks.qpr) definit ca procedura distincta de interogare SQL si apelata prin meniu. Aceasta procedura contine o fraza SELECT cu structura:

SELECT BOOKS.COTA, BOOKS.TITLU,; BOOKS.ANUL_AP, BOOKS.EXIST,;

IMPRUMUT.NR_PERMIS;

FROM BOOKS, IMPRUMUT;

WHERE BOOKS.COTA = IMPRUMUT.COTA;

AND BOOKS.EXIST = .F.;

ORDER BY BOOKS.COTA, BOOKS.TITLU

Ambele liste din meniul LISTE se vor prezenta ca rapoarte (sitimpr.frx si sitcit.frx) a caror structura este stabilita anterior.

IESIRE va asigura parasirea meniului prin predarea controlului fie ferestrei de comanda (prin comanda SET SYSMENU TO DEFAULT), fie sistemului de operare Windows (prin comanda QUIT). Pentru aceste comenzi se vor defini in zona Options scurtaturi de apelare prin combinarea tastelor CTRL +X si respectiv CTRL + C.

Pe baza elementelor definite in fereastra de configurare a meniului Menu Designer cu ajutorul optiunii Generate din meniul Menu sistemul genereaza codul pentru programul meniu.mpr

Exemplificam in continuare, partial, executarea procedurilor din submeniul LISTE.

Teste grila:

1Care din urmatoarele tipuri de date din VFP se refera la date numerice?

a.      [ ] general

b.      [ ] integer

c.      [ ] double

d.      [ ] logical

e.      [ ] date

2. Care clauza din comanda USE permite accesul mai multor utilizatori la o tabela?

a.      ] SHARED

b.      ] ALIAS

c.      ] EXCLUSIVE

d.      ] AGAIN

3. Care dintre urmatoarele comenzi permit realizarea tuturor operatiunilor de actualizare a inregistrarilor dintr-o tabela?

a.      ] LIST STRUCTURE

b.      ] MODIFY STRUCTURE

c.      ] BROWSE

d.      ] LIST

4. .Comanda GO -1

a.      ] este echivalenta cu SKIP -1

b.      ] muta pointerul pe inregistrarea precedenta

c.      ] schimba valoarea functiei RECNO()

5. Daca dupa crearea unei tabele cu numele FACTURI se da comanda:

INDEX ON VALFACT TAG VAL_FACT

a.      ] se creeaza fisierul FACTURI.CDX

b.      ] VALFACT este indexul principal

c.      ] la comanda LIST, inregistrarile vor fi ordonate dupa valoarea facturii

d.      ] apare un mesaj de eroare

6. Care dintre urmatoarele comenzi de codificare a structurilor repetitive gestioneaza si pointerul de inregistrare?

  1. [ ] DO CASE.ENDCASE
  2. [ ] DOWHILE.ENDDO
  3. [ ] SCAN.ENDSCAN

7. . In descrierea unui meniu in fereastra de lucru a generatorului de meniuri, specificarea textului explicativ al optiunii (care se va afisa in linia de meniu) se va face in coloana:

  1. [ ] PROMPT
  2. [ ] RESULT
  3. [ ] OPTIONS
  4. [ ] MENIU LEVEL

8.Ce se afiseaza pe ecran in urma executiei urmatoarei proceduri?

NRC = 7

FOR I = 1 TO 4

NRC = NRC + 3

ENDFOR

? NRC

a.      ] 19

b.      ] 12

c.      ] nimic

9. Care din urmatoarele comenzi se utilizeaza pentru codificarea structurilor repetitive:

a.[ ] SCANENDSCAN

b.[ ] DO CASE ENDCASE

c.[ ] DO WHILEENDDO

d.[ ] FORENDFOR

10.Lansarea generatorului de meniuri se poate face prin comanda:

a.[ ] CREATE MENU

b.[ ] GENERATE MENU

c.[ ] MENU FROM

d.[ ] MODIFY MENU





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.