Máte k dispozici nový příkaz, který vám umožní používat v kódu vzorce. Nyní je můžete zapouzdřit do objektů a v případě potřeby je volat. Už nemusíte psát kód jako text. Nyní stačí předat vzorec v příkazu a je to! Je to skvělý doplněk, protože váš kód není text, můžete využívat zvýrazňování syntaxe a všechny další pokročilé funkce editoru kódu!
Zapouzdření vzorce do objektu
S Formula příkazu je velmi jednoduché zapouzdřit vzorec do objektu:
$f:=Formula(ALERT("Hello world"))
A protože je vzorec zapouzdřen v objektu, můžete jej samozřejmě zapouzdřit do vlastnosti objektu a vytvořit vlastní zapouzdřené metody objektu:
$f:=New object
$f .message:=Formula(ALERT("Hello world"))
$f .
message(
) // Display alert dialog box with the message "Hello world"
Pokud chcete svému vzorci předávat parametry, stačí použít $1, $2 … jako ve svých metodách:
$f:=New object
$f .message:=Formula(ALERT("Hello "+$1))
$f .message("John")
// Display alert dialog box with the message "Hello John"
Nebo pokud chcete použít hodnotu atributu objektu, můžete použít příkaz This příkaz je řešením:
$f:=New object
$f .text:="Hello World"
$f .message:=Formula(ALERT(This.text))
$f .
message()
// Display alert dialog box with the message "Hello world"
Nakonec můžete metodu použít jako vzorec:
$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"
Pomocí příkazu Greeting metodou:
$0:=$1+""+This.firstName+" "+This.lastName
Můžete najít další příklady použití Formula v tomto HDI:
Volání vašeho vzorce
Objekt vzorce můžete také spustit, aniž byste jej nastavili jako vlastnost jiného objektu, pomocí příkazu call() a apply().
$f:=Formula(ALERT(String($1+""+$2))
$f .call(null; "Hello"; "world")
)
$f .apply(null;New collection ("Hello"; "world" //formula.apply object methods
Zapouzdření vzorce do objektu z řetězce
Existuje způsob, jak použít textovou verzi vzorce pro vytvoření metody s příkazem Formula from string příkazem:
$textFormula:=Request("Zadejte prosím vzorec")
If (ok=1)
$f :=Formula from string($textFormula)
ALERT ("Výsledek ="+String($f.call ()))))
End if