Sie haben uns gesagt, wie sehr Sie sich eine Funktion zur dynamischen Erstellung von Formularen wünschen, die vollständig an die Bedürfnisse Ihrer Endbenutzer angepasst ist. Nun, wir haben Sie erhört, und 4D v16 R6 now eröffnet neue Möglichkeiten mit dynamischen Formularen! Dynamische Formulare, die als Vorschau in 4D v16 R6 zur Verfügung stehen, ermöglichen es Ihnen, Ihre Formulare programmatisch in einem Objekt zu erstellen oder sie aus einer Textdatei zu laden. Aber das ist nur die Spitze des Eisbergs, den wir für Sie aufgeschlagen haben…
Dynamische Formulare – Datenbankbeispiel
Dynamische Formulare Vorteile
In dynamischen Formularen wird der gesamte Inhalt des Formulars – Seiten, Formularobjekte und die Eigenschaften für jedes Objekt – in einem Textformat (JSON-Format) beschrieben. Dynamische Formulare können also in einem Objekt oder in einer Datei gespeichert werden. Für eine reibungslose Migration ist es möglich, beide Arten von Formularen in einer Datenbank zu haben, d . h. sowohl reguläre Formulare (in einem binären Format in der .4DB-Datei gespeichert) als auch dynamische Formulare(als Text irgendwo auf der Festplattegespeichert ).
Dynamische Formulare können mit kompilierten oder eigenständigen Anwendungen verwendet werden. Der Vorteil der neuen Formulare im Vergleich zu regulären binären Formularen ist, dass Sie sie einfach durch Aktualisierung der JSON-Datei ändern können … ohne die Anwendung neu kompilieren zu müssen. Das gibt Ihnen große Flexibilität bei der Bereitstellung.
Die Verwendung dynamischer Formulare hat auch noch andere große Vorteile. Hatten Sie schon einmal einen Kunden, der eine Änderung der Schriftart für alle Formularobjekte wünschte? Mit dynamischen Formularen ist das so einfach wie das „Suchen und Ersetzen“ in einer Textdatei!
Wenn Sie nun ein bestimmtes Formular per E-Mail an einen Mitarbeiter senden möchten, müssen Sie nur eine einzige Textdatei anstelle des gesamten Datenbankpakets versenden. Dynamische Formulare machen es auch einfach, ein Formular in einer anderen Anwendung wiederzuverwenden, ohne dass es in eine andere Datenbank verschoben werden muss … einfach eine einzelne Datei kopieren/einfügen und schon ist es fertig!
Befehle, die dynamische Formulare unterstützen
Von nun an können alle 4D Befehle, die einen Formularnamen verwenden, auch eine Formularbeschreibung als Objekt oder Dateipfad akzeptieren :.
- DIALOG
- FORM SET INPUT
- FORM SET OUTPUT
- OBJECT SET SUBFORM
- OBJECT GET SUBFORM
- FORM LOAD
- Print form
- Current form name
„HELLO WORLD“ Beispiel
Formularbeschreibung aus einer Textdatei
Nehmen wir ein einfaches Beispiel mit nur Text und einer Schaltfläche:
Die textuelle Beschreibung des Formulars lautet wie folgt:
{ ... list of form parameters ... "pages": [ ... list of form pages ... null, ... page 0 ... { ... page 1 ... "objects": { ... list of form objects in page 1 ... "text": { "type": "text", "text": "Hello World !", "left": 20, "top": 20, "width": 200, "height": 20 }, "button": { "type": "button", "text": "OK", "left": 120, "top": 40, "width": 100, "height": 20 } }}] }
Und hier ist der Code, um dieses Formular in einem Dialog zu laden:
DIALOG ("/RESOURCES/helloWorld.json")
Die Grammatik wird durch ein JSON-Schema definiert. Die Dokumentation enthält auch eine vollständige Liste der Attribute, die in dynamischen Formularen verwendet werden können, sowie Einzelheiten darüber, welche Attribute von jedem Formularobjekt unterstützt werden. Vergessen Sie nicht, dass Sie mit dem JSON Validate verwenden können, um zu überprüfen, ob das JSON in Ihrer Formularbeschreibung mit dem JSON-Schema übereinstimmt.
Ein Formular in einem Objekt erstellen
Nun wollen wir dieses Formular vollständig dynamisch machen, indem wir es nur mit Code aufbauen!
// Build form description
$label:=New object("type"; "text"; "text"; "Hello World!";"top";20;"left";20;"width";200;"height";20)
$button :=New object("type";"button";"text";"OK";"top";40;"left";120;"width";100;"height";20)
$page :=New object("objects";New object("label";$label; "button";$button))
$form :=New object("pages";New collection(Null;$page); "windowTitle"; "My first dynamic form"; "rightMargin";20; "bottomMargin";20)
// Load the form in a dialog
$w:=Open form window($form)
DIALOG (
$form)
Wie Sie sehen, können Sie Ihre Formulare flexibel nach Ihren Bedürfnissen gestalten. Sobald Sie Ihre Formulare in eine Datei oder ein Objekt geschrieben haben, können Sie sie wie normale Formulare verwenden.
Wie sieht es mit der Bearbeitung von Formularen aus?
Im Moment gibt es keinen anderen Mechanismus zur Bearbeitung Ihrer dynamischen Formulare als einen Texteditor. Aber das wird nicht so bleiben! Ein Formular-Editor speziell für dynamische Formulare ist auf dem Weg. Und wann? Bleiben Sie dran.