Tienes a tu disposición un nuevo comando que te permite utilizar fórmulas en tu código. Ahora puedes encapsularlas en objetos y llamarlas cuando sea necesario. Ya no es necesario escribir tu código como texto. Ahora puedes pasar tu fórmula en tu comando y ¡ya está! Esta es una gran adición, ya que su código no es texto, puede beneficiarse del resaltado de sintaxis y de todas las demás funcionalidades avanzadas del editor de código.
Encapsular una fórmula en un objeto
Con el comando Formula es muy sencillo encapsular una fórmula en un objeto:
$f:=Formula(ALERT("Hola mundo"))
Y, por supuesto, como la fórmula está encapsulada en un objeto, puedes encapsularla en una propiedad de un objeto y crear tus propios métodos de objeto encapsulados:
$f:=New object
.
$f .message:=Formula(ALERT("Hola mundo"))
$fmessage(
) // Display alert dialog box with the message "Hello world"
Si quieres pasar parámetros a tu fórmula, sólo tienes que usar $1, $2 … como en tus métodos:
$f:=New object
$f .message:=Formula(ALERT("Hola "+$1))
$f .message("Juan")
// Display alert dialog box with the message "Hello John"
O si quieres utilizar el valor de un atributo de un objeto, el This es la respuesta:
$f:=New object
$f .text:="Hola Mundo"
$f .message:=Formula(ALERT(This.text))
$f .
message()
// Display alert dialog box with the message "Hello world"
Por último, puedes utilizar un método como fórmula:
$person:=New object
$person .firstName:="John"
$person .lastName:="Smith"
$person .greeting:=Formula(Greeting )
$g :=$person.greeting("hola")
// $g:="hello John Smith"
$g:=$person.greeting("hola"
)
// $g:="hi John Smith"
Con el Greeting método:
$0:=$1+" "+This.firstName+" "+This.lastName
Puedes encontrar otros ejemplos de cómo usar Formula en este IDH:
Llamada a la fórmula
También puedes ejecutar un objeto de fórmula sin establecerlo como propiedad de otro objeto utilizando los botones call() y apply().
$f:=Formula(ALERT(String($1+""+$2))
$f .call(null; "Hola"; "mundo")
)
$f .apply(null;New collection ("Hola"; "mundo" //formula.apply object methods
Encapsular una fórmula en un objeto de una cadena
Hay una forma de utilizar una versión de texto de una fórmula para crear un método con el Formula from string comando:
$textFormula:=Request("Por favor, escriba una fórmula")
If (ok=1)
$f :=Formula from string($textFormula)
ALERT ("Resultado = "+String($f.call ()))
End if