Oftmals besteht eine so lange Ausgabe aus mehreren Abschnitten, wo ein Umbruch zwischen einigen von ihnen völlig in Ordnung wäre, während ein Umbruch innerhalb eines Abschnitts unerwünscht wäre. Die neue LL25-Funktion ermöglicht genau in dieser Situation das gewünschte Verhalten.
Als Beispiel habe ich Jeff Atwoods Programmer’s Bill of Rights für die Verwendung in einer Tabelle mit freiem Inhalt angepasst. Die Zeilendefinitionen der Tabelle sehen so aus:
und die resultierende Ausgabe sieht so aus:
Beachten Sie, wie der letzte Block direkt nach der Kopfzeile umgebrochen wird, obwohl die Eigenschaft „Datenzeilen zusammenhalten“ auf true gesetzt ist. Der Grund ist einfach – „Datenzeilen zusammenhalten“ bezieht sich auf alle Zeilen. List & Label erkennt schnell, dass nicht genügend Platz vorhanden ist, um alle Zeilen zusammenzuhalten, und bricht die Zeilendefinitionen deswegen um. Aber das ist nicht das, was hier erwünscht ist. Es wäre toll, zumindest die Überschriften mit ihren (nicht umgebrochenen) Absätzen zusammenhalten zu können. Um dies zu erreichen, setzen Sie einfach die neue Eigenschaft „Zeilendefinitionen zusammenhalten > Zeilengruppen“ auf true. Als nächstes weisen Sie den Zeilen einen Zeilengruppenindex – der der zweite Teil dieses neuen Features ist – zu und stellen Sie sicher, dass Überschrift und Absatz den gleichen Index erhalten:
Auf diese Weise können Sie Abschnitte auswählen, die zusammengehalten werden sollen, und nicht den ganzen Block, der sowieso nie passen würde. Das Ergebnis ist dann natürlich wie erwartet:
Dies ermöglicht einen wesentlich flexibleren Umgang mit dem Umbruchsverhalten in List & Label 25. Es kann auch z.B. für lange Rechnungsfußzeilen verwendet werden, um Steuerinformationen in einem Block zu halten und gleichzeitig andere Fußzeilen frei umbrechen zu lassen.
Danke für das Feedback – ich mag es auch :)!
Richtig cooles und hilfreiches Feature! Danke
Funktioniert das nur, wenn die Darstellungsbedingung der Zeilen gleich ist?
Das ist gut möglich – die Berechnung für das Zusammenhalten passiert in dem Moment, wenn die Zeilen ausgelöst werden.
Wenn die Darstellungsbedingungen dann unterschiedlich sind und der eigentlich zusammenzuhaltende Block gar nicht am Stück ausgegeben wird (bzw. auch nicht klar ist, ob er überhaupt irgendwann ausgegeben wird, es könnte ja auch eine komplexe, datenabhängige Bedingung sein) wird der Block dann auch getrennt werden.