Wäre es nicht toll, wenn Sie einfach ein Formular öffnen und ihm einige Parameter übergeben könnten, um Ihre Formularobjekte zu initialisieren? Wie wäre es, wenn Sie die Daten auch wieder zur Verarbeitung zurückbekommen könnten, nachdem sie vom Benutzer geändert wurden? 4D v16 R5 macht Ihre Codierung so viel einfacher, indem es die Kommunikation mit Formularen erheblich vereinfacht.
Wenn Sie bisher Daten (die nicht aus der Datenbank selbst stammen, sondern berechnet oder extern sind) für mehrere Benutzer anzeigen wollten, hatten Sie zwei Möglichkeiten: Entweder Sie schreiben komplexen Code, um die Datenanzeige in mehreren Prozessen zu handhaben, oder Sie erstellen so viele Formulare wie nötig mit einer Reihe globaler Variablen. Sie wissen jedoch, dass globale Variablen aus Sicht des Arbeitsspeichers keine optimierte Art der Programmierung darstellen.
Vergessen Sie also Ihren komplexen Code und Ihre globalen Variablen! Mit 4D v16 R5 können Sie einfach ein Objekt an Ihr Formular binden und es intern mit dem neuen BefehlForm verwenden. Schmerzfrei…und leistungsstark!
Übergabe von Parametern an ein Formular
Es ist jetzt möglich, Parameter in einem Objekt an ein Formular zu übergeben, indem man den DIALOG Befehl zu übergeben. Jede Eigenschaft dieses Objekts ist dann im Kontext des Formulars über den Form Befehl.
C_LONGINT($Fenster)
C_OBJECT($Adresse)
$Adresse:=NeuesObjekt
$Adresse.Firmenname:="4D"
$Adresse.Nachname:="Dupont"
...
$window:=Formularfenster öffnen("AddressForm";Dialogfeld für bewegliches Formular)
// Das Formular wird mit dem Objekt $address im Parameter
geöffnet // Dies ermöglicht die Änderung des Objekts $address im Formular mit dem Befehl Form
DIALOG("AddressForm";$address)
FENSTER SCHLIESSEN($window)
ALERT("Neuer Firmenname ist: "+$address.CompanyName)
Im Formular „AddressForm“ müssen Sie nur den Befehl Form Befehl in der Datenquelle des Formularobjekts verwenden:
Wenn der Benutzer das Dialogfenster schließt, sind die eingegebenen Werte in der aufrufenden Methode über das Objekt $address verfügbar.
Übergabe von Parametern an ein Unterformular
Genauso, wie Sie ein Objekt mit dem Befehl DIALOG Befehl ein Objekt an ein Formular übergeben, können Sie auch ein Objekt über die Eigenschaftsliste an einen Unterformularbereich übergeben. Dann können Sie es im Unterformular mit dem Form Befehl verwenden. Im folgenden Beispiel ist das Objekt InvoiceAddress an das Unterformular gebunden.