4D Write Pro: Übertragbare Zeilen sind verfügbar!

Die Verwendung von Tabellen in 4D Write Pro Dokumenten kommt häufiger vor, zumal es möglich ist, ihnen eine Datenquelle zuzuordnen, die automatisch ihre Zeilen füllt!

Wenn die Anzahl der Zeilen größer wird, ist es üblich, dass diese Tabellen automatisch in mehrere Teile aufgeteilt werden, um einen Seiten- oder Spaltenumbruch zu ermöglichen. In dieser Situation ist es manchmal praktisch, am Ende jedes Teils der jeweiligen Tabelle (automatisch!) eine „Zwischensummen“-Zeile einzufügen. Ja, das ist richtig, das ist in 4D v19 R7 möglich.

Demo-Datenbank

Ein Bild sagt mehr als tausend Worte.

Ein Bild ist immer besser als eine lange Erklärung. Hier sehen Sie, was wir erreichen wollen:

Wie Sie sehen können, enthält jeder Tabellenteil – mit Ausnahme des letzten – eine zusätzliche Zeile, die hier zur Anzeige einer Zwischensumme verwendet wird.

Dies ist oft notwendig, manchmal sogar gesetzlich vorgeschrieben, z. B. bei der Bearbeitung langer Rechnungen.

EINE ZEILE in der Vorlage, so VIELE wie nötig im Enddokument

Wie in der Einleitung erwähnt, ist diese Funktionalität für alle Tabellen verfügbar. Sie wird jedoch nur berücksichtigt, wenn die Tabellen mit einer Datenquelle (einer Collection oder einer Auswahl von Entitäten) verbunden sind. Sobald diese Eigenschaft aktiviert ist, wird die Zeile, die unmittelbar auf die „wiederholte“ Zeile folgt, zur Übertragszeile.

blank

Die Aktivierung dieser Eigenschaft kann über das INterface erfolgen…

In beiden Schnittstellen (Symbolleiste und Seitenleiste) enthält das Tabellenmenü ( ) einen neuen Punkt „Untere Übertragszeile“.

 

blankblank

… Oder durch Programmierung

WP SET ATTRIBUTES($table ; wk bottom carry over row ; True | False)

DUPLIZIERT ODER NICHT?

Es ist wichtig zu verstehen, dass diese Zeile, die in der Vorlage eindeutig ist, so oft wie nötig dupliziert wird, sobald das Dokument ausgewertet wird.

Beachten Sie, dass dies nicht notwendig ist, wenn die Tabelle in einen einzigen Block „passt“. In diesem Fall wird die Übertragszeile im ausgewerteten Dokument nicht dargestellt.

Andernfalls wird sie am Ende jedes Blocks mit Ausnahme des letzten Blocks eingefügt. Logischerweise sollte der letzte Teil der geteilten Tabelle keine Zwischensumme, sondern eine „Gesamtsumme“ enthalten. Aus diesem Grund ist die Übertragszeile in der Vorlage nicht die letzte Zeile, sondern es folgen die letzten Zeilen der Tabelle.

DER INHALT DER ÜBERTRAGSZEILEN

Wie soll der Inhalt der Zellen in dieser Übertragszeile definiert werden?

Wie Sie vielleicht schon erraten haben, wird ein neues Attribut eingeführt: previousItems, das wie folgt verwendet werden kann:

This.previousItems.sum("Preis")

This.previousItems liefert, je nach Datenquelle der Tabelle, entweder eine Collection oder eine Auswahl von Entitäten.

Diese Menge enthält alle Elemente, die bereits auf der aktuellen Seite und den vorherigen Seiten ausgewertet wurden. Sie können alle verfügbaren Funktionen (min/max/sum/etc.) für Collections oder Entity-Auswahlen anwenden!

Beachten Sie, dass This.previousItems zwar hauptsächlich für die Verwendung in Übertragszeilen gedacht ist, seine Verwendung aber nicht auf diesen speziellen Kontext beschränkt ist. Es kann überall in der Tabelle (außer in Kopfzeilen) mit unterschiedlichen Werten in jedem Kontext verwendet werden.

Schlussfolgerung

Diese neue Eigenschaft macht es möglich, komplexen Code loszuwerden und Tabellen bei automatischen Seitensprüngen anzureichern.
Viel Spaß beim Erstellen schöner Vorlagen und beim Vermeiden komplexer Codierung! Und wie immer ist Ihr Feedback sehr willkommen. Beteiligen Sie sich an der Diskussion im 4D Forum.

Weitere Informationen über Übertragszeilen können in der Dokumentation nachgelesen werden.

Roland Lannuzel
- Product Owner & 4D Experte - Nach seinem Studium der Elektronik arbeitete Roland als Entwickler und Berater in der industriellen IT-Branche, wo er Lösungen für Kunden mit einer Vielzahl von Datenbanken und Technologien entwickelte. In den späten 80er Jahren verliebte er sich in 4D und setzte es bei der Entwicklung von Geschäftsanwendungen wie Buchhaltungs-, Abrechnungs- und E-Mail-Systemen ein. 1997 trat er schließlich in das Unternehmen ein und leistete einen wertvollen Beitrag, indem er Spezifikationen, Testtools und Demos entwarf, Schulungen durchführte und auf vielen Konferenzen für die 4D Community sprach. Er gestaltet die Zukunft von 4D aktiv mit, indem er neue Funktionen und Datenbankentwicklungstools definiert.