4D v18 R5 introduce un nuovo comando che semplifica la scrittura del codice: VP SET CUSTOM FUNCTIONS. Crea funzioni personalizzate in 4D View Pro che eseguono le formule 4D.
Grazie a questo comando è possibile utilizzare nelle formule delle celle comandi, campi, variabili, metodi o qualsiasi espressione arbitraria di 4D. Ad esempio, non è necessario creare un metodo per utilizzare una semplice variabile in 4D View Pro, basta passarla come parametro al vostro Formula.
VP SET CUSTOM FUNCTIONS consente a 4D View Pro di accedere a:
- Variabili 4D
- campi
- metodi
- Comandi 4D
Durante l’evento on load, è necessario dichiarare tutte le espressioni 4D a cui si vuole accedere in 4D View Pro.
Per prima cosa, create un oggetto e utilizzate l’attributo dell’oggetto per definire il nome del metodo:
$o:=New object
//Name of the function in 4D View Pro: "DRIVERS_LICENCE"
$o .DRIVERS_LICENCE:=New object
Quindi, aggiungere un attributo formula che contenga la formula basata sull’espressione. Questa espressione verrà calcolata quando verrà utilizzata nelle celle.
Se la funzione DRIVERS_LICENCE fa riferimento a:
- una variabile globale:
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicence)
- una tabella di campi:
$o.DRIVERS_LICENCE.formula:=Formula([Users]DriverLicence)
- un metodo:
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicenceState)
- un comando 4D:
$o.LICENZA_DI_GUIDA:=Formula(Choose(DriverLicence; "Obtained"; "Failed"))
- un’espressione 4D:
$o.DRIVERS_LICENCE.formula:=Formula(ds.Users.get($1).DriverLicence)
$o .DRIVERS_LICENCE.parameters:=New collection
$o .DRIVERS_LICENCE.parameters.push(New object("nome"; "ID"; "tipo"; Is longint))
È possibile aggiungere una descrizione di ciò che fa la funzione:
$o.DRIVERS_LICENCE.summary:="Restituisce il risultato della patente di guida"
.
E se si fa riferimento a un metodo, si possono aggiungere alcuni parametri come il nome e il tipo dei parametri attesi dalla funzione:
$oIs time
$oBIRTH_INFORMATIONsummary.BIRTH_INFORMATION:=New object
$o .BIRTH_INFORMATION.formula:=Formula(BirthInformation)
$o .BIRTH_INFORMATION.parameters:=New collection
$o .BIRTH_INFORMATION.parameters.push(New object("nome"; "tipo";Is text))
$o .BIRTH_INFORMATION.parameters.push(New object("nome"; "compleanno"; "tipo";Is date))
$o .BIRTH_INFORMATION.parameters.push(New object("nome"; "ora di nascita";
Quando si finisce di riempire l’oggetto con tutte le informazioni, è necessario renderle disponibili in 4D View Pro. È sufficiente passarle al comando VP SET CUSTOM FUNCTIONS comando:
VP SET CUSTOM FUNCTIONS("ViewProArea"; $o)
E voilà! La nuova funzione è disponibile in 4D View Pro: