Dječje grupe
Dječje grupe
Kada trebamo da dijelovi grupe imaju različita svojstva, dijelimo je na nekoliko grupa. Prva ostaje ista, a ostale su podređene njoj (Dječja grupa). Mnoge takve grupe su na izvještaju '241 - Račun' koji se može pronaći u izborniku 'Robna | Izdanje'. Na ovom izvještaju možemo pronaći mnoge grupe koje imaju različite uvjete za vidljivost. Uvjeti su u ovom slučaju definirani u skripti. Dječje grupe se također koriste u slučaju kada je na grupi objekt čija se visina mijenja, a udaljenost do donjih objekata mora ostati ista. Svaka dječja grupa, osim posljednje, mora imati dodijeljeno svojstvo "Dijete", a njegova vrijednost je naziv sljedeće dječje grupe u grupi. Također, roditeljska grupa prve dječje grupe u grupi mora imati dodijeljeno svojstvo "Dijete". Ako želimo da sljedeće dječje grupe u grupi mogu biti vidljive (ako odgovaraju uvjetu za vidljivost), morate omogućiti svojstvo "PrintChildIfInvisible" za dijete i na roditeljskoj grupi.
Pogledajmo primjer!
Može doći do problema kada jedno polje u izvještaju ima sadržaj varijabilne duljine. Da bismo to simulirali u našem primjeru, smanjimo širinu objekta Bio.“Zajedničko ime” na 2,5 cm i omogućimo svojstvo “Stretch” za ovaj objekt i također za grupu “Podaci prvog nivoa”. Omogućite sve okvire za sve objekte kako bi učinci funkcije istezanja bili jasni. Dizajn sada generira izvještaj poput ovog:

Ovdje prvi objekt polja Bio.“Zajedničko ime” sadrži puno teksta i rastegnut je u dva reda. To uzrokuje da se objekt polja Bio.“Duljina (cm)” koji se nalazi ispod njega pomakne prema dolje. To se događa jer su svi objekti po defaultu postavljeni na "ShiftMode" svojstvo "smAlways", što znači da se pomiču prema dolje ako iznad njih postoji objekt koji se može istegnuti (objekt “Tekst” s omogućenom “Stretch” svojstvom). Udaljenost pomaka ovisi o tome koliko je objekt iznad istegnut.
Ali to nije ono što želimo da se dogodi na našoj oznaci - želimo da se objekt “Duljina, cm.” također pomakne za istu količinu. To se može postići korištenjem posebnog tipa grupe FastReport koji se zove “Dječja” grupa. “Dječja” grupa je povezana s (i prikazana nakon) svojom roditeljskom grupom. Dodajte “Dječju” grupu u dizajn i povucite dva objekta “Tekst” u nju, kao što je ovdje prikazano:

Povežite grupu MasterData s Dječjom grupom, postavljajući njezino “Dijete” svojstvo na “Child1” u inspektoru objekata. Sada, svaki put kada se grupa MasterData ispisuje, Dječja grupa se ispisuje odmah nakon nje:

Titula “Duljina, cm:” sada se točno poravnava s poljem vrijednosti “50”. Da biste spriječili da se dječja grupa premjesti na sljedeću stranicu ako na stranici nema dovoljno bijelog prostora (i postane takozvana 'siročad' od svoje roditeljske grupe), omogućite svojstvo “KeepChild” roditeljske grupe u inspektoru objekata.