Die Dokumententabellen von 4D Write Pro haben sich in den letzten Versionen stark verbessert. Wir, das 4D Team, haben uns so sehr dafür eingesetzt, 4D Write Pro zu einem leistungsstarken, vorlagenbasierten Dokumentgenerator zu machen, dass wir bereits Fortschritte wie Kopfzeilen, Datenquellen, Übertragszeilen… veröffentlicht haben, um nur einige leistungsstarke Funktionen zu nennen.
Jetzt, mit 4D v20, sind die Umbruchzeilen an der Reihe, ihren Einzug zu halten!
Meine Damen und Herren, Trommelwirbel, bitte!
Das zu erreichende Ziel
Was auch immer Ihre Tätigkeit ist, Sie müssen auf jeden Fall Listen erstellen.
Diese Listen werden nach Ihren eigenen Kriterien sortiert, und in der Regel ist es notwendig, Gruppen für jede dieser Gruppen zu erstellen, um Summen oder Statistiken zu erhalten. Genau das bietet Ihnen diese neue Funktion von 4D Write Pro!
Wann und wie? Hier ist ein konkretes Beispiel
Wenn eine Tabelle aus einer sortierten Datenquelle gespeist wird, soll eine Umbruchzeile eingefügt werden, wenn sich der dem Sortierkriterium entsprechende Wert ändert.
Stellen Sie sich vor, Sie kennen Menschen aus mehreren Kontinenten, Ländern und Städten.
Sie möchten eine Liste dieser Personen erstellen, die nach Kontinent, Land und Stadt gruppiert ist.
Oder Sie möchten einen Bericht erstellen, der auf der Beziehung zum Unternehmen basiert, und eine Liste der Mitarbeiter erstellen, die nach dem Unternehmen auf jedem Kontinent gruppiert sind.
In beiden Fällen müssen Sie zunächst sicherstellen, dass diese Auswahl nach diesen drei Kriterien sortiert ist.
Fall 1:
ds.people.all().orderBy("continent asc, country asc, city asc")
Fall 2:
ds.People.all().orderBy("worksFor.name asc, continent asc)
Für jedes Sortierkriterium eine Zwischenzeile
Sobald die Datenquelle mit der Tabelle verknüpft ist, werden die Personen in der „Wiederholungszeile“ und in der gewünschten Reihenfolge angezeigt. Schauen wir uns nun an, wie man sie nach Sortierkriterien gruppieren kann.
Verwendung der Schnittstelle
Im Zeilenmenü sind jetzt neue Elemente verfügbar. Sie sind kontextabhängig und werden nur angezeigt, wenn sich der Cursor innerhalb einer Tabelle befindet (und unterhalb der Kopfzeile, falls vorhanden).
Die Formel kann z. B. auf einem Attributnamen (This.item.country) oder einem zugehörigen Attributpfad (z. B. This.item.worksFor.name) oder einer beliebigen anderen Formel (Substring(This.item.name;1;1)) beruhen.
Sobald das Unterbrechungsattribut festgelegt wurde, können Sie die Formel sehen, wenn Sie den Mauszeiger über das Unterbrechungssymbol „S“ (wie in Sort) bewegen.
Oberhalb oder unterhalb von BreakS?
Umbruchzeilen können oberhalb oder unterhalb der wiederholten Zeile (gefüllt durch die Tabellendatenquelle) liegen.
Die Umbrüche werden jedes Mal gerendert, wenn sich der von der Umbruchformel zurückgegebene Wert ändert. Stellen Sie also sicher, dass die Position der Umbrüche mit den Sortierkriterien der Datenquelle übereinstimmt.
Ein neues Zeilenattribut
Das Attribut wk break formula enthält die Formel, deren Ergebnis die Anzeige der Umbruchzeile bestimmt. Allein das Vorhandensein dieses Attributs bewirkt, dass eine Zeile als Umbruchzeile betrachtet wird. Es können beliebig viele Zeilenumbrüche definiert werden, z. B. Formula(This.item.city) für die niedrigste Bruchstufe und Formula(This .item.continent) für die höchste Stufe.
WP SET ATTRIBUTES($row; wk break formula; Formula(This.item.country))
WP RESET ATTRIBUTES($row; wk break formula)
Denken Sie daran:
- Eine Unterbrechungszeile muss sich genau über oder unter einer wiederholten Zeile oder einer anderen Unterbrechungszeile befinden, wenn es mehrere Ebenen gibt. Andernfalls werden sie nicht berücksichtigt.
- Die Anzahl der Ebenen ist auf fünf begrenzt. Wenn Sie eine sechste Ebene hinzufügen, wird kein Fehler ausgelöst, aber sie wird auch nicht gerendert.
- Das Einfügen von Zwischenzeilen in die Tabelle sortiert die Datenquelle nicht. Die Datenquelle muss eigenständig sortiert werden.
Das war’s!
Inhalt der Umbruchzeilen
Zusätzlich zum Text können Umbruchzeilen zwei Arten von Formeln enthalten.
- Die erste Möglichkeit besteht darin, die Elemente zu verwenden, die in den wiederholten Zeilen vorhanden sind oder vorhanden sein könnten (Beispiel: This.breakItems).
Der zurückgegebene Wert ist der letzte Wert, der vor dem Umbruch verwendet wurde (oder der erste Wert, der verwendet wurde, wenn die Umbruchzeile vor den wiederholten Zeilen liegt). - Die zweite Möglichkeit ist neu: Die Eigenschaft breakItems kann nur im Kontext von Umbrüchen verwendet werden (Beispiel: This.breakItems).
Die breakItems sind eine Teilmenge der Quelldaten der Tabelle, die genau den wiederholten Zeilen der betreffenden Umbruchzeile entsprechen.- Um das Beispiel der mehrfachen Umbrüche nach Kontinent-Land-Stadt zu verwenden: Wenn sich der Inhalt ändert, entspricht die Untermenge den Personen des Kontinents (vor der Änderung), und zwar unabhängig davon, ob die Umbruchzeile vor oder nach der wiederholten Zeile platziert wird. Diese Teilmenge kann für Berechnungen wie sum(„salary“), average(„salary“), usw. verwendet werden.
Schließlich legen wir fest, dass diese Teilmengen denselben Typ wie die Quelldaten der Tabelle haben, d. h. eine Entity Selection oder eine Collection.
Mehr Informationen
Weitere Informationen über diese Funktion finden Sie in der Dokumentation.
Schlussfolgerung
Diese neue Funktion zeigt einmal mehr die Leistungsfähigkeit von 4D Write Pro bei der automatischen Dokumentenerstellung.
Mit den Breaks wird ein weiterer Schritt gemacht. Lassen Sie uns wissen, was Sie über das 4D Forum denken.