Rapoarte Înglobate (Subrapoarte)
Rapoarte Înglobate (Subrapoarte)
Uneori sunt necesare rapoarte foarte complexe care conțin blocuri de date suplimentare inserate în puncte particulare din design. Deși multe dintre aceste rapoarte pot fi concepute folosind o aranjare a benzilor FastReport, uneori devine prea complicat. În aceste circumstanțe, este necesar să se folosească obiectul „Subraport”
.
Când un obiect „Subraport” este inserat într-un design, FastReport adaugă automat o pagină nouă, care este conectată la „Subraport”. Un astfel de raport înglobat seamănă cu un raport pe mai multe pagini în ceea ce privește structura designului. Singura diferență este că raportul înglobat este afișat într-o locație specifică pe pagina de bază a designului, și nu după aceasta. Când acest raport este generat, de îndată ce obiectul „Subraport” este întâlnit, motorul de raportare generează pagina subraportului conectat în întregime. După aceea, generarea continuă cu restul paginii de bază a designului.
Obiecte „Subraport” suplimentare pot fi inserate într-o pagină de design a subraportului, crescând astfel adâncimea înglobării. Un exemplu de raport înglobat poate fi găsit în raportul '3C0 - Raport de Management al Călătoriilor' care se află în meniul programului 'Personal | Managementul Călătoriilor | Rapoarte'.
Merită menționat că abilitatea FastReport de a folosi subrapoarte permite înglobarea profundă a datelor. Amintiți-vă că numărul de niveluri de date în FastReport este limitat la doar șase atunci când se folosesc benzile de date Detaliu în loc de obiectul "Subraport".
Subrapoarte Alăturate
Două sau mai multe obiecte „Subraport” pot fi plasate alăturat pe aceeași bandă de date:

Această design permite rapoarte în care ieșirea de date a fiecărui „Subraport” are lungimi variate de rânduri/înregistrări, sau înălțimi variate sau grade de întindere:

Așa cum este ilustrat, FastReport continuă să genereze pagina de bază a designului doar după ce cel mai lung "Subraport" s-a terminat. Proprietatea 'Aliniere Verticală' poate fi de asemenea folosită pentru a ajusta alinierea obiectului “Text” în cadrul fiecărui subraport.
Limitări în Utilizarea Subrapoartelor
Deoarece subrapoartele sunt plasate pe pagina de bază a designului, ele nu pot conține niciuna dintre benzile următoare: “TitluRaport/TitluSubraport”, “TitluPagină/TitluSubpagină/FundalPagină” sau “TitluColoană/TitluSubcoloană”. Dacă oricare dintre aceste benzi sunt plasate pe o pagină de raport înglobat, ele nu vor fi recunoscute. Din același motiv, nu are sens să schimbați opțiunile oricărei pagini de raport înglobat, deoarece opțiunile paginii de raport de bază suprascriu cele ale oricăror pagini înglobate.
Nu plasați obiecte sub obiectul "Subraport":

Dacă acest lucru este făcut, atunci obiectele create în subraport vor suprapune tot ce este plasat sub obiectul subraport pe pagina principală de design, iar ieșirea va fi ceva de genul acesta:

Pentru a afișa obiecte sub sau după un raport înglobat, folosiți o bandă copil:

Această metodă este de asemenea folosită atunci când mai multe Subrapoarte trebuie plasate unul sub altul. Folosiți o bandă copil pentru fiecare Subraport și legați-le împreună, setând proprietatea copil a Child1 la Child2, și așa mai departe.
Opțiunea PrintOnParent
Obiectul "Subraport" are o proprietate "PrintOnParent" care poate fi uneori utilă. Această proprietate este False în mod implicit.
De obicei, un subraport este generat ca un set de benzi pe pagina de raport de bază. Când este așa, înălțimea benzii părinte care conține obiectul "Subraport" nu este controlată de benzile din subraport, adică nu poate fi întinsă. Dacă proprietatea "PrintOnParent" a subraportului este setată pe True, fie în inspectorul de obiecte, fie în meniul contextual, obiectele din subraport sunt imprimate fizic pe banda care conține obiectul "Subraport". Această bandă poate fi făcută să se întindă și poate avea obiecte întinse plasate pe ea:
