4D v18 R5 introduz um novo comando que simplifica a escrita do seu código: VP SET CUSTOM FUNCTIONS. Cria funções personalizadas em 4D View Pro que executam fórmulas 4D.
Graças a este comando pode agora permitir que comandos 4D, campos, variáveis, métodos, ou qualquer expressão arbitrária sejam utilizados nas suas fórmulas celulares. Por exemplo, não há necessidade de criar um método para utilizar uma variável simples no View Pro 4D, basta passá-la como parâmetro para o seu Formula.
VP SET CUSTOM FUNCTIONS permite o acesso ao 4D View Pro:
- 4D variáveis
- campos
- métodos
- Comandos 4D
Durante o evento on load, é necessário declarar todas as expressões 4D a que se pretende aceder no 4D View Pro.
Primeiro, crie um objecto e utilize o atributo do objecto para definir o nome de chamada do seu método:
$o:=New object
//Name of the function in 4D View Pro: "DRIVERS_LICENCE"
$o .DRIVERS_LICENCE:=New object
Depois, adicione um atributo formula que contém a fórmula baseada na sua expressão. Esta expressão será calculada quando utilizada nas suas células.
Se a sua função DRIVERS_LICENCE se referir a:
- a uma variável global:
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicence)
- uma tabela de campo:
$o.DRIVERS_LICENCE.formula:=Formula([Users]DriverLicence)
- um método:
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicenceState)
- um comando 4D:
$o.DRIVERS_LICENCE:=Formula(Choose(DriverLicence; "Obtained"; "Failed"))
- uma expressão 4D:
$o.DRIVERS_LICENCE.formula. :=Formula(ds.Users.get($1).DriverLicence $o)
$o .DRIVERS_LICENCE.New collection.parameters:=
.DRIVERS_LICENCE. .parameters.push(New object("nome"; "ID"; "tipo"; Is longint))
Pode acrescentar uma descrição do que a sua função faz:
$o.DRIVERS_LICENCE.summary:="Devolve o resultado da carta de condução"
.
E se se referir a um método, pode adicionar alguns parâmetros como o nome e o tipo dos parâmetros esperados pela sua função:
$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"; "nome"; "tipo";Is text))
$o .BIRTH_INFORMATION.parameters.push(New object("nome"; "data de nascimento"; "tipo";Is date))
$o .BIRTH_INFORMATION.parameters.push(New object("nome"; "hora de nascimento";
Quando terminar de preencher o seu objecto com toda a informação, precisa de o tornar disponível no 4D View Pro. Basta passá-lo para o VP SET CUSTOM FUNCTIONS comando:
VP SET CUSTOM FUNCTIONS("ViewProArea"; $o)
E voilà! A nova função está disponível em 4D View Pro: