4D v18 R5 introduit une nouvelle commande qui simplifie l’écriture de votre code : VP SET CUSTOM FUNCTIONS. Elle crée des fonctions personnalisées dans 4D View Pro qui exécutent les formules 4D.
Grâce à cette commande, vous pouvez désormais permettre aux commandes 4D, aux champs, aux variables, aux méthodes ou à toute expression arbitraire d’être utilisés dans vos formules de cellules. Par exemple, il n’est pas nécessaire de créer une méthode pour utiliser une simple variable dans 4D View Pro, il suffit de la passer comme paramètre à votre Formula.
VP SET CUSTOM FUNCTIONS permet à 4D View Pro d’accéder à :
- variables 4D
- champs
- méthodes
- les commandes 4D
Lors de l’événement on load, vous devez déclarer toutes les expressions 4D auxquelles vous souhaitez accéder dans 4D View Pro.
Tout d’abord, créez un objet et utilisez l’attribut de l’objet pour définir le nom d’appel de votre méthode :
$o:=New object
//Name of the function in 4D View Pro: "DRIVERS_LICENCE"
$o .DRIVERS_LICENCE:=New object
Ensuite, ajoutez un attribut formula qui contient la formule basée sur votre expression. Cette expression sera calculée lorsqu’elle sera utilisée dans vos cellules.
Si votre fonction DRIVERS_LICENCE fait référence à :
- une variable globale :
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicence)
- un tableau de champs :
$o.DRIVERS_LICENCE.formula:=Formula(Users)DriverLicence)
- une méthode :
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicenceState)
- une commande 4D :
$o.DRIVERS_LICENCE:=Formula(Choose(DriverLicence; "Obtained"; "Failed"))
- une expression 4D :
$o.DRIVERS_LICENCE.formula:=Formula(ds.Users.get($1).DriverLicence)
$o .DRIVERS_LICENCE.parameters:=New collection
$o .DRIVERS_LICENCE.parameters.push(New object("nom" ; "ID" ; "type" ; Is longint) ))
Vous pouvez ajouter une description de ce que fait votre fonction :
$o.DRIVERS_LICENCE.summary:="Renvoie le résultat du permis de conduire"
Et si vous faites référence à une méthode, vous pouvez ajouter quelques paramètres comme le nom et le type des paramètres attendus par votre fonction :
$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("name" ; "First name" ; "type" ;Is text))
$o .BIRTH_INFORMATION.parameters.push(New object("name" ; "Birthday" ; "type" ;Is date))
$o .BIRTH_INFORMATION.parameters.push(New object("name" ; "Time of birth" ;
Lorsque vous avez fini de remplir votre objet avec toutes les informations, vous devez le rendre disponible dans 4D View Pro. Il suffit de le passer à la commande VP SET CUSTOM FUNCTIONS commande :
VP SET CUSTOM FUNCTIONS("ViewProArea" ; $o)
Et voilà ! La nouvelle fonction est disponible dans 4D View Pro :