Kindbänder
Kind Bänder
Wenn wir benötigen, dass Teile des Bands unterschiedliche Eigenschaften haben, teilen wir es in mehrere Bänder auf. Das erste bleibt gleich, und die restlichen sind ihm untergeordnet (Kindband). Viele solcher Bänder sind im Bericht '241 - Rechnung' zu finden, der im Menü 'Waren | Ausgabe' zu finden ist. In diesem Bericht können wir viele Bänder finden, die unterschiedliche Bedingungen für die Sichtbarkeit haben. Die Bedingungen sind in diesem Fall im Skript definiert. Kindbänder werden auch verwendet, wenn sich auf dem Band ein Objekt befindet, dessen Höhe sich ändert, und der Abstand zu den unteren Objekten gleich bleiben muss. Jedes Kindband, außer dem letzten, muss die Eigenschaft "Kind" zugewiesen bekommen, deren Wert der Name des nächsten Kindbands in der Gruppe ist. Auch das Elternband des ersten Kindbands in der Gruppe muss die Eigenschaft "Kind" zugewiesen bekommen. Wenn wir möchten, dass die nächsten Kindbänder in der Gruppe sichtbar sein können (wenn es den Bedingungen für die Sichtbarkeit entspricht), müssen Sie die Eigenschaft "PrintChildIfInvisible" des Kindes und des Elternbands aktivieren.
Schauen wir uns ein Beispiel an!
Es kann ein Problem auftreten, wenn ein Feld in einem Bericht Inhalte variabler Länge hat. Um dies in unserem Beispiel zu simulieren, reduzieren wir die Breite des Bio.“Gemeinsame Bezeichnung” Objekts auf 2,5 cm und aktivieren die “Stretch” Eigenschaft für dieses Objekt und auch für das “Erste Datenlevel” Band. Aktivieren Sie alle Rahmenlinien für alle Objekte, damit die Auswirkungen der Dehnungsfunktion klar zu sehen sind. Das Design gibt jetzt einen Bericht wie folgt aus:

Hier enthält das erste Bio.“Gemeinsame Bezeichnung” Feldobjekt viel Text und wird auf zwei Zeilen gestreckt. Dies führt dazu, dass das Bio.“Länge (cm)” Feldobjekt, das sich darunter befindet, nach unten verschoben wird. Dies geschieht, weil alle Objekte standardmäßig die Eigenschaft "ShiftMode" auf "smAlways" eingestellt haben, was bedeutet, dass sie nach unten verschoben werden, wenn sich ein dehnbares Objekt (ein “Text” Objekt mit aktivierter “Stretch” Eigenschaft) über ihnen befindet. Der verschobene Abstand hängt davon ab, wie stark das Objekt darüber gedehnt wird.
Aber das ist nicht das, was wir auf unserem Etikett haben wollen - wir möchten, dass das Objekt “Länge, cm.” ebenfalls um den gleichen Betrag verschoben wird. Dies kann erreicht werden, indem ein spezieller FastReport-Bandtyp namens “Kind” Band verwendet wird. Ein “Kind” Band ist mit seinem Elternband verknüpft (und wird nach ihm angezeigt). Fügen Sie ein “Kind” Band zum Design hinzu und ziehen Sie die beiden “Text” Objekte hinein, wie hier gezeigt:

Verknüpfen Sie das MasterData-Band mit dem Kindband, indem Sie seine “Kind” Eigenschaft im Objektinspektor auf “Kind1” setzen. Jetzt wird jedes Mal, wenn das MasterData-Band gedruckt wird, das Kindband sofort danach gedruckt:

Der Titel “Länge, cm:” stimmt jetzt genau mit seinem Wertefeld “50” überein. Um zu verhindern, dass ein Kindband auf die nächste Seite verschoben wird, wenn nicht genügend Weißraum auf der Seite vorhanden ist (und sozusagen 'verwaist' von seinem Elternband wird), aktivieren Sie die “KeepChild” Eigenschaft des Elternbands im Objektinspektor.