Scrivere i propri metodi per gli oggetti

Tradotto automaticamente da Deepl

È disponibile un nuovo comando che consente di utilizzare le formule nel codice. È ora possibile incapsularle in oggetti e richiamarle quando necessario. Non è più necessario scrivere il codice come testo. Ora è sufficiente passare la formula nel comando e il gioco è fatto! Questa è un’ottima aggiunta: poiché il codice non è testo, si può beneficiare dell’evidenziazione della sintassi e di tutte le altre funzionalità avanzate dell’editor di codice!

Incapsulare una formula in un oggetto

Con il comando Formula è molto semplice incapsulare una formula in un oggetto:

$f:=Formula(ALERT("Hello world"))

Naturalmente, poiché la formula è incapsulata in un oggetto, è possibile incapsularla in una proprietà di un oggetto e creare i metodi dell’oggetto incapsulato:

$f:=New object
$f .message:=Formula(ALERT("Hello world"))
$f .message() // Display alert dialog box with the message "Hello world"

Se volete passare dei parametri alla vostra formula, basta usare $1, $2 … come nei vostri metodi:

$f:=New object
$f .message:=Formula(ALERT("Ciao "+$1))
$f .message("John")
// Display alert dialog box with the message "Hello John"

Se invece si vuole utilizzare il valore di un attributo di un oggetto, il comando This è la risposta:

$f:=New object
$f .text:="Hello World"
$f .message:=Formula(ALERT(This.text))
$f .message()
// Display alert dialog box with the message "Hello world"

Infine, è possibile utilizzare un metodo come formula:

$person$g:=New object
$person .firstName:="John"
$person .lastName:="Smith"
$person .greeting:=Formula(Greeting )
$g :=$person.greeting("ciao")
// $g:="hello John Smith"
:=$person.greeting("ciao")
// $g:="hi John Smith"

Con il metodo Greeting metodo:

$0:=$1+" "+This.firstName+" "+This.lastName

Si possono trovare altri esempi di utilizzo di Formula in questa HDI:

HDI_NuovaFormula

Richiamo della formula

È anche possibile eseguire un oggetto formula senza impostarlo come proprietà di un altro oggetto, utilizzando i comandi call() e apply().

$f:=Formula(ALERT(String($1+" "+$2))
$f .call(null; "Hello"; "world")
$f .apply(null;New collection ("Hello"; "world"
) //formula.apply object methods

Incapsulare una formula in un oggetto a partire da una stringa

Esiste un modo per utilizzare una versione testuale di una formula per creare un metodo con il metodo Formula from string comando:

$textFormula:=Request("Digitare una formula")
If (ok=1)
$f :=Formula from string($textFormula)
ALERT ("Risultato = "+String($f.call ())
End if

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.