Neue Option für Formeln aus Zeichenketten!

Als 4D Entwickler haben Sie mit Sicherheit schon Formeln erstellt und verwendet. Sie können über zwei Befehle erstellt werden: Formula und Formula from string. Letzterer wurde gerade in 4D V20 R3 erweitert, so dass er uneingeschränkt von Komponenten verwendet werden kann!

 

Formeln und Ausführungskontext

 

Formeln sind, unabhängig von ihrem Inhalt und eng mit der Datenbank verbunden, aus der sie erstellt werden. Wenn sie aufgerufen werden, werden sie immer in dem Kontext ausgeführt, in dem sie erstellt wurden.

 

Dies gilt für 4D Befehle und Funktionen wie Structure file, aber auch für Formeln, die auf Methodenaufrufen basieren.

 

Ein einfaches Beispiel

Stellen wir uns eine Methode FormatedCurrentDate vor, die eine formatierte Zeichenkette zurückgibt.

#DECLARE($format : Integer)->$formatedDate : Text
$formatedDate:=String(Current date; $format)

Diese Methode kann innerhalb einer Formel verwendet werden, die auf diese Weise erstellt werden kann:

$formula:=Formula from string("FormatedCurrentDate(System date abbreviated)")

In diesem Fall gibt die Formel wie erwartet das formatierte Datum zurück.

$date:=$formula.call()

Wenn sich die Methode und die Formel in derselben Umgebung befinden, ist alles in Ordnung… aber wenn sich diese nicht gemeinsam genutzte Methode in der Host-Datenbank befindet und die Formel, die diese Methode zu verwenden versucht, innerhalb einer Komponente erstellt wird, kann sie nicht ausgeführt werden.

Ein neuer Parameter ist jetzt verfügbar

Die Funktion Formula from string wurde um einen neuen Parameter erweitert, mit dem Sie entscheiden können, in welchem Kontext die Formel ausgeführt werden soll.

#1) sk in der Host-Datenbank ausführen

Wenn wir zum vorherigen Beispiel zurückkehren, bei dem die nicht freigegebene Methode FormatedCurrentDate zur Host-Datenbank gehört, ist es möglich, sie trotzdem von einer Komponente aus auszuführen, indem man die Formel wie folgt erstellt:

$formula:=Formula from string("FormatedCurrentDate(System date abbreviated)";sk execute in host database)
#2) sk execute in current database

Wenn der Wert sk execute in current database übergeben wird (oder einfach weggelassen wird), wird die Formel in der Datenbank ausgeführt, die die Formel erstellt hat“.

Fazit

Mit dieser neuen Option können Sie auf einfache Weise Ihre eigenen Schnittstellenkomponenten (z. B. für 4D Write Pro) erstellen, indem Sie Methoden oder Variablen aus der Host-Datenbank verwenden.

Mehr Freiheit und mehr Möglichkeiten bedeuten auch mehr Verantwortung, aber diese Offenheit ist immer noch sehr praktisch und ermöglicht es den Komponenten, auf extrem einfache Weise auf Funktionen ihrer Host-Datenbanken zuzugreifen.

Zögern Sie nicht, Ihre Eindrücke im Forum zu teilen!

 

 

 

 

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.