"Lista subiectelor" raport
"Lista Subiectelor" Raport
Deschide registrul de rapoarte și creează un raport nou. Setează numele raportului la "Lista Subiectelor". Deschide designerul selectând elementul de meniu “Design...” în asistent. În designer, fă clic pe butonul “Raport nou” pentru a crea automat un design de raport de bază cu trei benzi ("Titlul raportului", "Date principale” și "Subsol pagină"). Pe tab-ul "Date" trage și plasează un obiect “TfrxDlDBTable” pe locul de muncă. Setează proprietatea "TableName" la 'tHE_SetSubj'. În această tabelă sunt stocate date despre subiecte.
Acum să proiectăm raportul. Mai întâi, adaugă un obiect “Text” care conține textul "Lista Subiectelor" în banda "TitlulRaportului".
Apoi, conectează banda “Date principale” la setul nostru de date. Acest lucru se poate face în oricare dintre cele trei moduri:
- dublu-clic pe bandă
- selectează “Editare...” din meniul contextual al benzii
- sau fă clic pe proprietatea “DataSet” a benzii în inspectorul de obiecte.
Acum plasează patru obiecte “Text” (care vor afișa numele subiectului, adresa, telefonul și faxul din setul de date) pe bandă. Să facem acest lucru în mai multe moduri diferite pentru a demonstra câteva caracteristici ale designerului.
Primul mod este să plasezi un obiect “Text” pe bandă și să tastezi "[DlDBTable1."acSubject"]" în el. Acesta este cel mai puțin convenabil mod, deoarece legătura câmpului trebuie introdusă manual, cu posibilitatea de a tasta greșit textul. Puțin mai ușor este să folosești designerul de expresii - dublu-clic pe obiectul “Text” și fă clic pe butonul din stânga pe tab-ul “Text” al ferestrei editorului care se deschide. Pentru a insera câmpul nostru, dublu-clic pe numele câmpului în designerul de expresii. Fă clic pe butonul OK pentru a închide dialogul și a vedea legătura câmpului inserată în obiectul “Text”.
Al doilea mod de a adăuga câmpul din baza de date la obiectul “Text” este prin setarea a două proprietăți în inspectorul de obiecte. Plasează un al doilea obiect “Text” pe bandă, fără a scrie nimic în fereastra editorului. Setează proprietățile obiectului folosind inspectorul de obiecte:
DataSet = 'DlDBTable1'
DataField = 'acAddress'
Ambele proprietăți sunt prezentate ca o listă, așa că selectează pur și simplu valoarea necesară din lista derulantă folosind mouse-ul.
Al treilea mod este să “tragi și să plasezi” câmpul necesar din panoul “Arbore de date” în raport. Acesta este cel mai simplu și ușor mod, dar înainte de a face acest lucru, debifează caseta “Creează antet” de la baza panoului “Arbore de date”, altfel un al doilea obiect “Text”, conținând numele câmpului, este creat pe lângă obiectul legăturii câmpului în sine. În acest mod, selectează câmpul “acPhone” și trage-l pe bandă.
Al patrulea mod necesită ca opțiunea designerului “Afișează lista câmpurilor derulante” să fie activată (prin meniul principal “Vizualizare>Opțiuni”) și banda să fie deja conectată la setul de date. Plasează un obiect “Text” gol pe bandă și plasează cursorul deasupra obiectului – un buton derulant va apărea la capătul din dreapta. Fă clic pe acest buton pentru a deschide lista câmpurilor din baza de date și selectează câmpul ”anFax”.

Designul raportului nostru este complet.

Fă clic pe butonul "Previzualizare" pentru a vedea rezultatul.

Aliasuri
În raportul anterior, sursa de date a fost numită DlDBTable1, câmpurile au fost numite “acSubject,” “acAddress”, “acPhone,” și “acFax” și ne-am referit la ele în raport folosind ceva de genul "[DlDBTable1.“acSubject”]". Este ușor de înțeles? Nu chiar. Ar fi mai clar dacă sursa de date și câmpul ar fi numite “Subiecte” și “Adresă” respectiv. Există o problemă, “DlDBTable1” este numele componentei, în cadrul căreia spațiile nu sunt acceptate și “acSubject” este numele câmpului din baza de date, care nu poate fi schimbat fără restructurarea bazei de date. Cu toate acestea, există o soluție. Putem folosi pseudonime sau aliasuri pentru aceste elemente. În FastReport atât setul de date, cât și câmpurile sale au o a doua proprietate de nume cunoscută sub numele de UserName, adică un alias, care poate fi schimbat cu ușurință. Ori de câte ori unei componente i s-a dat un alias (adică UserName a fost schimbat din valoarea sa implicită), acest alias trebuie folosit în FastReport - proprietatea Name a componentei nu va fi recunoscută.
Este foarte ușor să setezi aliasuri pentru o sursă de date și câmpurile sale în FastReport. Acest lucru se face în mediul Delphi. Pentru a deschide editorul de aliasuri, dublu-clic pe componenta "DlDBTable1" sau folosește meniul său contextual. Poți modifica aliasurile setului de date și câmpurilor în editor și, de asemenea, specifica care câmpuri sunt necesare în raport. Să redenumim setul de date și câmpurile după cum urmează:

Aliasul pentru setul de date poate fi, de asemenea, modificat fără a folosi editorul de aliasuri, schimbând proprietatea “UserName” a componentei "DlDBTable1" .
După ce am făcut acest lucru, acum trebuie să modificăm raportul, deoarece numele setului de date și câmpurilor au fost schimbate. Pentru a modifica numele câmpurilor în obiectele raportului, este cel mai ușor să folosești al patrulea mod descris în secțiunea "Lista Subiectelor". Muta cursorul mouse-ului peste obiectul “Text” astfel încât butonul din capătul din dreapta al obiectului să apară, fă clic pe buton și selectează câmpul din listă. Urmând acest lucru, originea datelor din setul de date și câmpurile sale devine mai evidentă.
Notă: Este mai bine să atribui aliasuri chiar de la începutul designului raportului pentru a evita necesitatea de a redenumi ulterior toate câmpurile dintr-un raport.
Variabile
Pe lângă aliasuri, există o altă modalitate de a ajuta designerul de rapoarte să seteze nume mai ușor de înțeles pentru câmpurile DB și alte elemente de informație. Un nume de câmp din baza de date sau orice expresie poate fi asociat cu o variabilă. Pentru a crea și a lucra cu variabile în FastReport, selectează elementul de meniu “Raport/Variabile...”.
Lista de variabile din FastReport are o structură pe două niveluri. Primul nivel conține pur și simplu categoria, iar al doilea nivel conține variabila în sine. Această clasificare a variabilelor este convenabilă atunci când lista de variabile este foarte lungă. O listă de variabile trebuie să conțină cel puțin o categorie, ceea ce înseamnă că variabilele nu pot fi situate la nivelul superior. În plus, numele categoriilor nu pot fi incluse în rapoarte, așa că fiecare nume din listă trebuie să fie unic.
Să ilustrăm utilizarea variabilelor cu următorul exemplu. Să presupunem că avem două surse de date: prima este “DlDBTable1” cu câmpul “acSubject” și a doua este “DlDBTable2” cu câmpurile “OrderNo” și “Date”. Putem asocia următoarea listă de variabile cu câmpurile:
Clienți
Numele clientului
Comenzi
Numărul comenzii
Data comenzii
unde “Clienți” și “Comenzi” sunt două categorii. Deschide editorul de variabile și creează această structură folosind butoanele “Categorie nouă”, “Variabilă nouă” și “Editare”. Pentru a lega variabilele de câmpurile din baza de date, selectează o variabilă și dublu-clic pe câmpul din baza de date necesar din panoul din dreapta. Legătura către câmpul din baza de date va fi afișată în panoul de jos. Variabila este acum asociată cu această expresie, astfel încât valoarea variabilei devine valoarea expresiei. Dacă este necesar, expresia poate fi editată sau modificată manual și orice funcții FastReport sau alte variabile pot fi utilizate în cadrul acesteia. Amintește-ți că categoriile nu trebuie asociate cu nicio expresie.

După ce lista de variabile a fost creată, închide editorul de variabile. Acum putem insera variabilele în raport. Spre deosebire de câmpurile din baza de date, există mai puține metode de inserare. Putem fie să inserăm o variabilă în textul obiectului manual tastând “[Numele clientului]”, fie putem trage o variabilă din panoul Arbore de date pe pagina raportului, caz în care comutăm pe tab-ul “Variabile” din acest panou.