Scopul tutorialului
Acest tutorial arata modul prin care pot fi generate rapoarte ale tabelelor intr-o aplicatie visual foxpro. Mai jos este prezentat atat modul de generare a unui raport pentru o singura tabela cat si modul de generare a unui raport pentru doua tabele legate intre ele pe baza unei chei. Exemplul nostru se bazeaza pe generarea rapoartelor pentru tabelele unei aplicatii care permite gestionarea sau evidenta produselor unui magazin de bijuterii. La finalul acestui tutorial veti putea genera rapoarte pe baza inregistrarilor din tabele.
Cum fac un raport pentru o tabele in foxpro
Presupunem ca avem deja creat un proiect in Visual Foxpro. In cazul in care nu stiti cum se face un proiect in visual foxpro atunci puteti citi articolul precedent despre cum fac un proiect nou in visual foxpro.
Din Project Manager se selecteaza sectiunea Reports (ca in imaginea de mai jos) si se apasa butonul New.
Alegem tipul raportului. Vom opta pentru Report Wizard deoarece acest tool de la visual foxpro va genera raportul pentru noi.
Pentru o singura tabela se va alege optiunea Report Wizard apoi se apasa butonul ok.
Alegem tabela pentru care dorim sa generam un raport. In exemplul nostru alegem tabela PRODUSE. In plus putem alege care campuri ale tabelei pot aparea in raport. Noi am ales campurile: Nume_p, Categorie, Material si Stoc. Se vede in imaginea de mai jos ca nu am ales sa afisam campurile Nr_crt (care reprezinta id-ul produsului), Producator si Pret.
Acesta este tabela PRODUSE ce contine 4 inregistrari. In cazul nostru avem produsele unui magazin de bijuterii.
Avem posibiliatea sa ne grupam rezultatele in functie de un camp al tabelei. Pentru simplicitate nu vom selecta niciun camp si apasam butonul Next.
Formularul de mai jos ne va permite sa algem un design prestabilit pentru raportul nostru. Acest design va fi generat in mod automat si e posibil sa intampinam probleme de grafica. Dupa ce am ales stilul apasam butonul Next.
In functie de numarul de campuri pe care dorim sa-l afisam putem opta pentru modul portrait sau landscape la orientarea paginii pentru raport. Noi vom alege Landscape deoarece avem destul de multe campuri de afisat. Apasam Next.
Avem posibilitatea de a sorta crescator sau descrescator rezultatele raportului. Alegem campurile pe baza carora efectuam sortarea (in cazul nostru alegem numele produsului, campul Nume_p). Apasam Next.
Ultimul pas in generarea raportului consta in salvarea raportului pe hard-disk. De regula, raportul se salveaza in directorul proiectului. Utilizatorul va fi intrebat in momentul salvarii cu privire la numele ce doreste sa il atribuie fisierului. Se apasa butonul Finish.
Putem vedea noul raport generat prin apasarea butonului Preview. Dupa cum se observa in imaginea de mai jos, raportul nostru nu arata tocmai bine. Numele producatorului a fost adaugat gresit. Astfel de erori pot aparea cand avem multe campuri de afisat sau campurile au o dimensiune foarte mare. Ce putem face? Vom modifica, manual, ceea ce wizard-ul de la foxpro a generat. Practic, vom aseza cum dorim elementele raportului. In imaginea de mai jos se poate observa o unealta denumita Print Preview care permite navigarea printre paginile raportului, dimensionarea raportului precum si printarea acestuia.
Revenim la fereastra Project Manger si de aceasta data in sectiunea Reports vom vedea raportul nostru. Avem posibiliatea de a-l vedea, sterge sau modifica. Se va alege optiunea Modify, actiune care va afisa modul de editare al unui rapot ca in imaginea de mai jos. Se vede clar ca eticheta PRODUCATOR a fost pozitionata gresit. Putem aseza/ordona dupa cum dorim aceste etichete.
Putem schimba ceea ce ne-a generat visual foxpro. De exemplu vom schimba eticheta Nr Crt in Nr. Acest lucru se poate face dand dublu click pe eticheta si schimband valoarea din campul Caption ca in imaginea de mai jos.
Se observa ca am modificat pozitia etichetei pentru campul Producator si am lungit putin liniile verticale ce despart valorile raportului.
Salvam noile modificari aduse raportului si mergem din nou in fereastra Project Manager ca sa vedem cum arata acum raportul nostru. Se observa ca, de aceasta data, datele din tabel sunt mult mai bine pozitionare. Am obtinut astfel un raport pentru tabela PRODUSE, raport care va afisa toate inregistrarile din aceasta tabela.
Cum fac un raport one-to-many pentru doua tabele
In capitolul precedent am aratat cum sa generam un raport pentru o tabela oarecare. In acest exemplu vom genera un raport bazat pe datele din doua tabele. Scenariul este urmatorul:
- avem tabela VANZARI (Contine produsele vandute intr-un magazin de bijuterii. Aici se gaseste doar id-ul produsului care a fost vandut)
- avem tabela PRODUSE (contine produsele unui magazin de bijuterii)
- dorim sa afisam toate produsele vandute afisand numele produselor, data vanzarii si pretul vanzarii (e posibil sa vindem mai multe produse vandute , acest lucru se afla in canput Buc care reprezinta numarul de bucati vandute)
Acesta este continutul tabelei VANZARI.
La fel ca si la capitolul anteriot din Project Manager se selecteaza sectiunea Reports (ca in imaginea de mai jos) si se apasa butonul New.
Vom opta pentru din nou pentru Report Wizard.
De aceasta data vom alege optiunea One-to-Many Report Wizard dupa care apasam butonul ok.
Prima data vom alege tabela parinte. Adica alegem acea tabela care presupune ca unei vanzari ii corespund mai multe produse. Din aceasta tabela avem nevoie sa afisam doar 3 campuri: Pret (valoarea tranzactiei), Data_v (data vanzarii) si Nr_buc (numarul de produse vandute). Se apasa Next.
In continuare alegem ce de-a doua tabela. Din tabela PRODUSE avem nevoie doar de numele produsului asa ca vom selecta doar acest camp apoi apasam Next.
Pasul urmator presupune specificarea relationarii dintre tabele. In exemplul de mai jos legam campul id_produs din tabela VANZARI cu campul nr_crt (ce reprezinta idul-ul produsului) din tabela PRODUSE. Pentru a nu aparea confuzie am putea denumi campul nr_crt in id_produs si relationarea ar fi mai simpla iar generatorul de rapoarte ar recunoste automat aceasta relationare dintre tabele. Dupa ce am specificat campurile prin care se leaga cele doua tabele apasam butonul Next.
Si de aceasta data putem sorta rezultate afisate in raport in functie de campurile tabelelor. Sortarea poate fi crescatoare sau descrescatoare. Apasam Next.
Se alege un stil automat pentru raport.
Se salveaza pe hard-disk raportul configurat. Se recomanda salvarea raportului in directorul proiectului foxpro.
Asa arata raportul generat de catre foxpro. De cele mai mutle ori nu vom fi multumiti de modul automat prin care foxpro genereaza rapoarte asa ca se recomanda modelarea manuala a acestora.
Putem adauga elemente noi in rapoartele generate actionand ca in imaginea de mai jos. Instrumentele de mai jos va permit adaugarea de etichete , campuri noi, patrate, linii etc.Toate aceste elemente pot imbunatati aspectul raportului.
Dupa ce am adaugat cateva elemente noi in raportul nostru putem observa ca acesta arata mult mai bine. Fiecare patrat poate fi colorat si personalizat.
Concluzii
Visual FoxPro ofera niste intrumente exceptionale pentru generarea unor rapoarte. Utilizarea Wizard-ului este foarte simpla si permite afisarea si printarea rezultatelor dintr-una sau mai multe tabele.
Scris de