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!