Детски бендови
Детски Бендови
Кога ни се потребни делови од бендот да имаат различни својства, го делиме на неколку бендови. Првиот останува ист, а останатите му се подредени (Детски бенд). Многу такви бендови се на извештајот '241 - Фактура' кој може да се најде во менито 'Стоки | Издавање'. На овој извештај можеме да најдеме многу бендови кои имаат различни услови за видливост. Условите во овој случај се дефинирани во скриптата. Детските бендови исто така се користат во случај кога на бендот има објект чии висини се менуваат, а растојанието до долните објекти мора да остане исто. Секој детски бенд, освен последниот, мора да има назначено својството "Детски", а неговата вредност е името на следниот детски бенд во групата. Исто така, родителскиот бенд на првиот детски бенд во групата мора да има назначено својството "Детски". Ако сакаме следните детски бендови во групата да можат да бидат видливи (ако одговараат на условот за видливост), мора да го овозможите својството "PrintChildIfInvisible" на детскиот и на родителскиот бенд.
Да погледнеме пример!
Може да настане проблем кога едно поле во извештајот има содржина со променлива должина. За да го симулираме ова во нашиот пример, да го намалиме ширината на објектот Bio.“Задолжително име” на 2.5 см и да го овозможиме својството “Stretch” за овој објект и исто така за бендот “Прв ниво податоци”. Овозможете ги сите рамки за сите објекти за да ефектите од функцијата за истегнување бидат јасно видливи. Дизајнот сега генерира извештај како овој:

Тука првото поле на Bio.“Задолжително име” содржи многу текст и е истегнато во две линии. Ова предизвикува објектот Bio.“Должина (см)” кој се наоѓа под него, да биде поместен надолу. Ова се случува затоа што сите објекти имаат своето својство "ShiftMode" поставено на "smAlways" по подразбирање, што значи дека се поместуваат надолу ако има истеглив објект (објект “Текст” со овозможено својство “Stretch”) над нив. Растојанието на поместувањето зависи од тоа колку е истегнат објектот над нив.
Но, ова не е она што сакаме да се случи на нашата етикета - сакаме објектот “Должина, см.” исто така да биде поместен за истата количина. Ова може да се постигне со користење на специјален тип на бенд во FastReport наречен “Детски” бенд. “Детски” бенд е поврзан со (и се прикажува по) својот родителски бенд. Додадете “Детски” бенд во дизајнот и повлечете ги двата “Текст” објекти во него, како што е прикажано тука:

Поврзете го бендот MasterData со детскиот бенд, поставувајќи го неговото својство “Детски” на “Child1” во инспекторот за објекти. Сега, секој пат кога бендот MasterData печати, детскиот бенд се печати веднаш по него:

Насловот “Должина, см:” сега точно се совпаѓа со неговото поле за вредност “50”. За да се спречи детскиот бенд да биде преместен на следната страница ако нема доволно бело место на страницата (и да стане т.н. 'осиромашен' од својот родителски бенд), овозможете го својството “KeepChild” на родителскиот бенд во инспекторот за објекти.