Escribir sus propios métodos para los objetos

Traducido automáticamente de Deepl

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"))
$f
.message() // 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:

HDI_NuevaFórmula

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

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.