Bei der Anwendungsentwicklung ist es oft notwendig, Formulare dynamisch zu erstellen. So kann es beispielsweise erforderlich sein, ein auf die Bedürfnisse des Benutzers zugeschnittenes Suchformular zu erstellen. In 4D gibt es zwei Hauptansätze für die Erstellung dynamischer Formulare: entweder wird das gesamte Formular programmatisch erstellt oder es werden Objekte zu einem bestehenden Formularlayout hinzugefügt. Bei der zweiten Möglichkeit war es bisher möglich, Objekte mit OBJECT DUPLICATEzu duplizieren und die Datenquelle mit OBJECT SET DATA SOURCEzu duplizieren und die Datenquelle zu modifizieren, alles mit einem klassischen Zeiger-basierten Ansatz.
Mit 4D 20 R10 gibt es neue und leistungsfähige Befehle, OBJECT SET DATA SOURCE FORMULA und OBJECT Get data source formuladie Möglichkeit, eine Formel als Datenquelle für Formularobjekte zu verwenden. Darüber hinaus können Sie Formeln dynamisch wichtigen Eigenschaften von Listboxen mit dem LISTBOX SET PROPERTY Befehl dynamisch Formeln für wichtige Listbox-Eigenschaften zuweisen, z. B. für das aktuelle Element, die aktuelle Position des Elements und die ausgewählten Elemente.
Dies eröffnet den Weg zu einem moderneren, flexibleren und lesbareren Ansatz, insbesondere dank Ausdrücken wie Form.xx oder den Klassen.
Neue Befehle zur Manipulation der Datenquelleneigenschaft
Es wurden zwei neue Befehle hinzugefügt, um die Datenquelleneigenschaft zu ändern:
OBJECT SET DATA SOURCE FORMULA ( {* ;} object ; formula)
OBJECT Get data source formula ( {* ;} object) : formula
Beispiel 1: Aktualisieren der Formel
Nehmen wir an, wir haben eine Texteingabe mit dem Namen „myInput“ in einem Formular, und wir wollen seine Datenquelle mit der Formel „Form.myText“ verbinden.
$myFormula:=Formula(Form.myText)
OBJECT SET DATA SOURCE FORMULA (*; "myInput"; $myFormula)
Beispiel 2: Abrufen der Formel
Um die Formel abzurufen, die mit einem Formularobjekt verbunden ist, z. B. einer Texteingabe namens „myInput“, können Sie einfach schreiben:
$formula:=OBJECT Get data source formula(*; "meineEingabe")
Diese neuen Befehle erleichtern die Erstellung von generischen, wiederverwendbaren Formularvorlagen, die dynamisch konfiguriert werden können.
Erweiterte Funktionen für ListBoxen
Diese Eigenschaften sind über die folgenden Konstanten mit den Befehlen LISTBOX Get property und LISTBOX SET PROPERTY zugänglich:
- lk current item expression
- lk current item pos expression
- lk selected items expression
Beispiel:
LISTBOX SET PROPERTY(*; "myListBox"; lk selected items expression; "Form.selectedItems")
Schlussfolgerung
Mit OBJECT SET/GET DATA SOURCE FORMULA und den neuen Listbox-Eigenschaftskonstanten bietet 4D eine neue, elegante und leistungsstarke Möglichkeit, dynamische Schnittstellen zu erstellen.
Durch die Einbeziehung von Formeln und objektorientierter Programmierung können Sie jetzt Formulare erstellen, die anpassungsfähiger, wartungsfreundlicher und leichter zu lesen sind.
