Formular- und Unterformularkommunikation leicht gemacht!

Ab 4D v19 R5 hat die Möglichkeit, eine Variable mit einem Unterformular zu verknüpfen, die Möglichkeiten der Schnittstellen und der Kommunikation zwischen Formularen und Unterformularen erweitert. Die Kommunikationsmittel werden nun durch zwei neue Befehle vereinfacht: Sagen Sie Hallo zu OBJECT Get subform container value und OBJECT SET SUBFORM CONTAINER VALUE.

Verbesserte Kommunikation zwischen Formularen und Unterformularen

Zwei neue Befehle

Die neuen Befehle OBJECT Get subform container value und OBJECT SET SUBFORM CONTAINER VALUE müssen im Kontext des Unterformulars verwendet werden.

Der erste – OBJECT Get subform container value – wird am häufigsten verwendet, wenn ein On Bound Variable Change -Ereignis erzeugt wird, d. h. nachdem die Variable (oder der Ausdruck), die mit dem Unterformular des übergeordneten Formulars verbunden sind, geändert wurde. Es wird daher verwendet, um diesen neuen Wert zu lesen.

Der zweite Befehl – OBJECT SET SUBFORM CONTAINER VALUE – wird verwendet, wenn Sie vom Unterformular aus den Wert der Variablen (oder des Ausdrucks) ändern möchten, die mit dem Unterformular im übergeordneten Formular verbunden ist.

Warum diese Befehle?

Bisher gab es zwei Möglichkeiten, diese Informationen zu erhalten.

Der einfachste(und neueste) Weg ist, eine Variable vom Typ Objekt mit dem Unterformular zu verknüpfen. In diesem Fall sind die Attribute dieses Objekts direkt über die Funktion Form innerhalb des Unterformulars zugänglich. Das funktioniert gut, aber die Verwendung eines Objekts, wenn Sie einen einfachen Wert benötigen, ist nicht unbedingt eine gute Praxis.

Die zweite(historischere) Möglichkeit besteht darin, über den Befehl OBJECT Get pointer mit dem Parameter Object subform container einen Zeiger auf die betreffende Variable zu erstellen. Das funktioniert, aber nur, wenn variable mit Unterformularen verbunden ist. Leider ist dies nicht möglich, wenn es sich um eine expression handelt (z. B. Form.myValue), da es nicht möglich ist, einen Zeiger auf einen Ausdruck zu erstellen.

Diese beiden Befehle stellen also die bequemste und einfachste Lösung für einfache Fälle dar! Die Programmierung der häufigsten Fälle wird dadurch vereinfacht. Der Code wird besser lesbar und leichter zu pflegen sein.

Viel Spaß beim Programmieren mit 4D!

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.