4D Write Pro und Formeln

Mit 4D v18 R2 ist 4D Write Pro in der Lage, Formelobjekte in Dokumenten zu verwalten. Zu diesem Zweck wurden vier neue Befehle eingeführt: WP Get formulas, WP Insert formula, WP Compute formulas, und WP Freeze formulas. Sie können alle mit intuitiven Zielen wie Dokument, Textkörper, Kopfzeile usw. verwendet werden. Und wie die Namen der Befehle schon vermuten lassen, handelt es sich bei den Formeln nicht mehr um Textausdrücke, sondern um leistungsstarke Formelobjekte!

HDI: GetSetFormulas

Alles auf einmal

Der erste Befehl, WP Get formulas, ermöglicht das Abrufen aller Formeln innerhalb eines bestimmten Ziels. Natürlich ist das erste Ziel, das einem in den Sinn kommt, das gesamte Dokument selbst, aber es könnte auch ein spezifischerer Teil des Dokuments sein, wie z. B. der Textkörper, der zweite Abschnitt, die linke Kopfzeile, was auch immer! Dieser Befehl gibt eine Sammlung von Objekten zurück, die formula, range (wenn der Ausdruck inline ist) oder anchoredID enthalten, wenn der Ausdruck mit einem verankerten Bild verbunden ist.

Hinweis: Das Objekt formula hat jetzt ein lesbares Attribut namens source. Dieses Attribut ist sehr nützlich für das Auffinden und Ersetzen von Aktionen. (siehe unten)

Die Befehle WP Compute formulas und WP Freeze formulas können auf sehr ähnliche Weise verwendet werden(d. h. unter Verwendung eines Ziels). Sie können alle Ausdrücke des Dokuments neu auswerten oder nur die Ausdrücke in den Fußzeilen einfrieren. Einfach und logisch.

// find all expressions of the document
C_COLLECTION($_expressions)
$_expressions :=WP Get formulas(WParea)

einer nach dem anderen

Der vierte Befehl, WP Insert formula, ermöglicht das Einfügen eines Ausdrucks (als Formelobjekt) in einen beliebigen Bereich. Er kann auch verwendet werden, um bestehende Ausdrücke zu ersetzen (nachdem sie mit dem Befehl WP Get formulas gefunden wurden).

Hier ein einfaches Beispiel für eine Ersetzung: Ihr Dokument enthält current date Ausdrücke, die Sie alle durch eine formatierte Zeichenfolge wie„Donnerstag, 14. November 2019“ ersetzen möchten.

// define what to find
$find:=Formula(Current date)
// define the replacement
$formula :=Formula(String(Current date;System date long))
// find all expressions of the document
$_ expressions :=WP Get formulas(WParea)
// query the collection (could have been done on previous line, but easier to read this way!)
$_ expressions:=$_expressions .query("formula.source = :1";$find.source)
// then replace each expression with the new one
For each ($expression;$_ expressions )

WP INSERT FORMULA ($expression.range;$formula;wk replace)
End for each

Weitere Verbesserungen

Einige bestehende Ausdrücke wurden ebenfalls verbessert und vereinfacht. Reservierte lokale Variablen wie $wp_pageCount oder $wp_author wurden jetzt für veraltet erklärt, auch wenn sie noch unterstützt werden. Sie wurden durch die besser lesbare und modernere This.property ersetzt . Hier ist die vollständige Liste der verfügbaren Eigenschaften:

$wp_subject -> This.subject
$wp_author -> This.author
$wp_company -> This.company
$wp_notes -> This.notes
$wp_dateCreation -> This.dateCreation
$wp_dateModified -> This.dateModified
$wp_pageNumber -> This.pageNumber
$wp_pageCount -> This.pageCount
$wp_title -> This.title

Leistungsfähiger, einfacher

Wir sind sicher, dass die Verwendung dieser nativen Befehle die Verwaltung von Formeln in 4D Write Pro Dokumenten deutlich vereinfachen wird. Lesen Sie die vollständige Dokumentation und werfen Sie einen Blick in die HDI-Datenbank für weitere Informationen!

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.