Benzi copil
Benzi copil
Când avem nevoie ca părțile benzii să aibă proprietăți diferite, o împărțim în mai multe benzi. Prima rămâne aceeași, iar restul sunt subordonate acesteia (Bandă copil). Multe astfel de benzi sunt pe raportul '241 - Factură' care poate fi găsit în meniul 'Bunuri | Emisie'. Pe acest raport putem găsi multe benzi care au condiții diferite pentru vizibilitate. Condițiile sunt în acest caz definite în script. Benzile copil sunt folosite și în cazul în care pe bandă se află un obiect al cărui înălțime se schimbă, iar distanța față de obiectele inferioare trebuie să rămână aceeași. Fiecare bandă copil, cu excepția ultimei, trebuie să aibă atribuită proprietatea "Child", valoarea acesteia fiind numele următoarei benzi copil din grup. De asemenea, banda părinte a primei benzi copil din grup trebuie să aibă atribuită proprietatea "Child". Dacă dorim ca următoarele benzi copil din grup să fie vizibile (dacă se potrivește condiției pentru vizibilitate), trebuie să activăm proprietatea "PrintChildIfInvisible" a benzii copil și a benzii părinte.
Să vedem un exemplu!
Poate apărea o problemă atunci când un câmp dintr-un raport are un conținut de lungime variabilă. Pentru a simula acest lucru în exemplul nostru, să reducem lățimea obiectului Bio.“Nume comun” la 2,5 cm și să activăm proprietatea “Stretch” pentru acest obiect și, de asemenea, pentru banda “Date de prim nivel”. Activați toate liniile de cadru pentru toate obiectele astfel încât efectele funcției de întindere să fie clare. Designul acum generează un raport ca acesta:

Aici, primul obiect câmp Bio.“Nume comun” conține mult text și este întins pe două linii. Acest lucru face ca obiectul câmp Bio.“Lungime (cm)” situat dedesubt să fie mutat în jos. Acest lucru se întâmplă deoarece toate obiectele au proprietatea "ShiftMode" setată pe "smAlways" în mod implicit, ceea ce înseamnă că se mută în jos dacă există un obiect întindibil (un obiect “Text” cu proprietatea “Stretch” activată) deasupra lor. Distanța mutată depinde de cât de mult este întins obiectul de deasupra.
Dar aceasta nu este ceea ce dorim să se întâmple pe eticheta noastră - dorim ca obiectul “Lungime, cm.” să fie, de asemenea, mutat cu aceeași cantitate. Acest lucru poate fi realizat folosind un tip special de bandă FastReport numit bandă “Child”. O bandă “Child” este legată de (și afișată după) banda părinte. Adăugați o bandă “Child” în design și trageți cele două obiecte “Text” în ea, așa cum este arătat aici:

Legătura banda MasterData la banda Child, setând proprietatea sa “Child” la “Child1” în inspectorul de obiecte. Acum, de fiecare dată când banda MasterData se imprimă, banda Child este imprimată imediat după aceasta:

Titlul “Lungime, cm:” se aliniază acum exact cu câmpul său de valoare “50”. Pentru a preveni ca o bandă copil să fie mutată pe pagina următoare dacă nu există suficient spațiu alb pe pagină (și devenind așa-numita 'orfană' de banda sa părinte), activați proprietatea “KeepChild” a benzii părinte în inspectorul de obiecte.