Une nouvelle commande est à votre disposition pour vous permettre d’utiliser des formules dans votre code. Vous pouvez désormais les encapsuler dans des objets et les appeler en cas de besoin. Il n’y a plus besoin d’écrire votre code sous forme de texte. Maintenant, vous pouvez simplement passer votre formule dans votre commande et c’est tout ! C’est un excellent ajout, puisque votre code n’est pas du texte, vous pouvez bénéficier de la coloration syntaxique et de toutes les autres fonctionnalités avancées de l’éditeur de code !
Encapsuler une formule dans un objet
Avec la commande Formula il est très simple d’encapsuler une formule dans un objet :
$f:=Formula(ALERT("Hello world"))
Et bien sûr, puisque la formule est encapsulée dans un objet, vous pouvez l’encapsuler dans une propriété d’un objet et créer vos propres méthodes d’objet encapsulé:
$f:=New object
$f .message:=Formula(ALERT("Hello world"))
$f .
message(
) // Display alert dialog box with the message "Hello world"
Si vous voulez passer des paramètres à votre formule, utilisez simplement $1, $2 … comme dans vos méthodes :
$f:=New object
$f .message:=Formula(ALERT("Hello "+$1))
$f .message("John")
// Display alert dialog box with the message "Hello John"
Ou si vous voulez utiliser la valeur d’un attribut d’un objet, la commande This est la solution :
$f:=New object
$f .text:= "Hello World"
$f .message:=Formula(ALERT(This.text))
$f .
message()
// Display alert dialog box with the message "Hello world"
Enfin, vous pouvez utiliser une méthode comme une formule :
$person:=New object
$person .firstName:= "John"
$person .lastName:= "Smith"
$person .greeting:=Formula(Greeting )
$g :=$person.greeting("hello")
// $g:="hello John Smith"
$g:=$person.greeting("hi")
// $g:="hi John Smith"
Avec la Greeting la méthode :
$0:=$1+ " "+This.firstName+" "+This.lastName
Vous trouverez d’autres exemples d’utilisation de Formula dans cette HDI :
Appel de votre formule
Vous pouvez également exécuter un objet de formule sans le définir comme propriété d’un autre objet en utilisant les touches call() et apply().
$f:=Formula(ALERT(String($1+" "+$2))
$f .call(null ; "Hello" ; "world")
)
$f .apply(null;New collection ("Hello" ; "world" //formula.apply object methods
Encapsuler une formule dans un objet à partir d’une chaîne de caractères
Il est possible d’utiliser une version texte d’une formule pour créer une méthode avec la méthode Formula from string commande :
$textFormula:=Request("Veuillez saisir une formule")
If (ok=1)
$f :=Formula from string($textFormula)
ALERT ("Résultat = "+String($f.call ()))
End if