Psaní vlastních metod pro objekty

Automaticky přeloženo z Deepl

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:

HDI_NewFormula

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

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.