Uso delle formule nelle collezioni e comandi di richiamo

Tradotto automaticamente da Deepl

Quando si usano le collezioni con un metodo membro che necessita di un metodo di callback, molti di voi ci hanno chiesto un modo più semplice.

L’avete chiesto e noi l’abbiamo fatto!

A partire da 4D v19 R6, 4D consente di utilizzare una formula per definire un callback nelle funzioni membro di una collezione, le funzioni EXECUTE METHOD IN SUBFORM, CALL FORM, e CALL WORKER . Se si riesce a ridurre il codice a una semplice espressione, è possibile passarlo direttamente nella formula senza utilizzare un metodo.

Formula HDI nei comandi

formula in COLLECTIoN

È ora possibile utilizzare la formula come callback nei metodi dei membri: .every(), .filter(), .find(), .findIndex(), .map(), .orderByMethod(), .reduce(), .some(), .sort()

Ad esempio, se si vuole filtrare l’insieme per trovare tutti i membri maggiori di 0, è possibile farlo su una riga:

$result:=$c.filter(Formula($1.value>0))

Come si può vedere qui sopra, per essere più semplici e leggibili, abbiamo reso facoltativo il valore $1.result nelle formule.

Naturalmente, è sempre possibile utilizzare il codice:

$c:=New collection
$c.push(1;-5; -3; -1;3; -4; -6; -2;10)
$result:=$c.filter("NumberGreaterThan0")

ma potete usare anche le formule per riferirvi a un metodo e così beneficiare del completamento del codice per trovare il nome del metodo e sfruttare la ridenominazione automatica se cambiate il nome del metodo:

$c:=New collection
$c.push(1;-5; -3; -1;3; -4; -6; -2;10)
$result:=$c.filter(Formula(NumberGreaterThan0))

con il metodo NumberGreaterThan0:

#DECLARE ($param:Object)
$param.result:=$param.value>0

formula nei comandi

È possibile utilizzare una formula per definire un callback nei metodi EXECUTE METHOD IN SUBFORM, CALL FORM, e CALL WORKER .

Come per le collezioni, è possibile utilizzare le espressioni senza dover creare un metodo:

// Close the windows in the context of the form
CALL FORM($windows;formula(CANCEL))

oppure riferirsi a un metodo in uno dei due modi seguenti:

EXECUTE METHOD IN SUBFORM("Subform"; Formula(UpdateField))

oppure

EXECUTE METHOD IN SUBFORM("Subform"; "UpdateField")

Provate tutte queste nuove funzionalità con l’HDI qui sopra e non esitate a dare il vostro feedback sul forum!

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à.