Um novo comando está à sua disposição, permitindo-lhe utilizar fórmulas no seu código. Pode agora encapsulá-las em objectos e chamá-las quando necessário. Não há mais necessidade de escrever o seu código como texto. Agora pode simplesmente passar a sua fórmula no seu comando e já está! Isto é uma grande adição, uma vez que o seu código não é texto, pode beneficiar do destaque da sintaxe e de todas as outras funcionalidades avançadas do editor de código!
Encapsular uma fórmula num objecto
Com a Formula é muito simples encapsular uma fórmula num objecto:
$f:=Formula(ALERT("Hello world"))
E claro, porque a fórmula está encapsulada num objecto, pode encapsulá-la numa propriedade de um objecto e criar os seus próprios métodos de objectos encapsulados:
$f:=New object
$f .message:=Formula(ALERT("Hello world"))
$f .
message(
) // Display alert dialog box with the message "Hello world"
Se quiser passar parâmetros para a sua fórmula, basta usar $1, $2 … como nos seus métodos:
$f:=New object
$f .message:=Formula(ALERT("Olá "+$1)")
$f .message("John")
// Display alert dialog box with the message "Hello John"
Ou se quiser usar o valor de um atributo de um objecto, o comando This comando é a resposta:
$f:=New object
$f .text:="Hello World"
$f .message:=Formula(ALERT(This.text))
$f .
message()
// Display alert dialog box with the message "Hello world"
Finalmente, pode usar um método como fórmula:
$person:=New object
$person .firstName:="John"
$person .lastName:="Smith"
$person .greeting:=Formula(Greeting )
$g :=$person.greeting("olá")
// $g:="hello John Smith"
$g:=$person.greeting("olá")
// $g:="hi John Smith"
Com o comando Greeting método:
$0:=$1+" "+This.firstName+" "+This.lastName
Pode encontrar outros exemplos de como utilizar Formula neste IDH:
Chamando a sua fórmula
Também pode executar um objecto de fórmula sem o definir como propriedade de outro objecto, utilizando o call() e apply() métodos.
$f:=Formula(ALERT(String($1( +" "+$2)))
$f .call(nulo; "Olá"; "mundo")
)
$f .apply(nulo;New collection ("Olá"; "mundo" //formula.apply object methods
Encapsular uma fórmula num objecto a partir de um fio
Há uma forma de utilizar uma versão de texto de uma fórmula para criar um método com o Formula from string comando:
$textFormula:=Request("Por favor digite uma fórmula")
If (ok=1)
$f :=Formula from string($textFormula)
ALERT ("Resultado = "+String($f.call ()))
End if