Die Verwendung von Formeln in Sammlungen und Rückrufbefehlen

Wenn Sie Sammlungen mit einer Member-Methode verwenden, die eine Callback-Methode benötigt, haben uns viele von Ihnen nach einer einfacheren Möglichkeit gefragt.

Sie haben gefragt, wir haben geliefert!

Ab 4D v19 R6 erlaubt 4D die Verwendung einer Formel zur Definition eines Rückrufs in den Sammlungsfunktionen, der EXECUTE METHOD IN SUBFORM, CALL FORM, und CALL WORKER Befehle. Wenn Sie Ihren Code auf einen einfachen Ausdruck reduzieren können, können Sie ihn direkt in die Formel übertragen, ohne eine Methode zu verwenden.

HDI-Formel in Befehlen

formel in sAMMlUnG

Sie können nun Formeln als Rückruf in den Methoden der Mitglieder verwenden: .every(), .filter(), .find(), .findIndex(), .map(), .orderByMethod(), .reduce(), .some(), .sort()

Wenn Sie zum Beispiel die Sammlung filtern möchten, um alle Mitglieder zu finden, die größer als 0 sind, können Sie dies in einer Zeile tun:

$result:=$c.filter(Formula($1.value>0))

Wie Sie oben sehen können, machen wir das $1.result in den Formeln optional, um es einfacher und lesbarer zu machen.

Natürlich können Sie immer den Code verwenden:

$c:=New collection
$c.push(1;-5; -3; -1;3; -4; -6; -2;10)
$result:=$c.filter("NumberGreaterThan0")

Sie können aber auch Formeln verwenden, um auf eine Methode zu verweisen und so von der Code-Vervollständigung profitieren, um Ihren Methodennamen zu finden, und die automatische Umbenennung nutzen, wenn Sie den Namen Ihrer Methode ändern:

$c:=New collection
$c.push(1;-5; -3; -1;3; -4; -6; -2;10)
$result:=$c.filter(Formula(NumberGreaterThan0))

mit der Methode NumberGreaterThan0:

#DECLARE ($param:Object)
$param.result:=$param.value>0

Formel in Befehlen

Sie können eine Formel verwenden, um einen Rückruf in der Methode EXECUTE METHOD IN SUBFORM, CALL FORM, und CALL WORKER Befehlen definieren.

Wie bei den Sammlungen können Sie Ausdrücke verwenden, ohne eine Methode erstellen zu müssen:

// Close the windows in the context of the form
CALL FORM($windows;formula(CANCEL))

oder auf eine Methode mit einer der beiden folgenden Möglichkeiten verweisen:

EXECUTE METHOD IN SUBFORM("Subform"; Formula(UpdateField))

oder

EXECUTE METHOD IN SUBFORM("Subform"; "UpdateField")

Probieren Sie all diese neuen Funktionen mit dem obigen HDI aus, und zögern Sie nicht, Ihr Feedback im Forum zu geben!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.