4D View Pro lhe permite chamar métodos projeto 4D desde suas fórmulas. O uso dos métodos projeto 4D amplia as possibilidades de seus documentos 4D View Pro. Os métodos 4D podem receber parâmetros da área 4D View e devolver valores. Por razões de segurança, só os métodos que tiverem sido explicitamente permitidos podem ser chamados pelo usuário.
Para ser chamado em uma fórmula 4D View Pro, um método projeto deve ser:
- Referenciado: declarado explicitamente usando o comando #title id="905272"/] (recomendado) ou o comando VP SET ALLOWED METHODS
- Executável: pertence ao banco de dados local ou a um componente carregado com a opção "Compartido por componentes e o banco de dados local". (ver Compartilhar métodos projeto)
- Não está em conflito com uma função 4D View Pro existente: se chamar a um método projeto com o mesmo nome que uma função integrada 4D View Pro, se chama à função
Nota: se nem o comando #title id="905272"/] nem VP SET ALLOWED METHODS forem executado durante a sessão, funções personalizadas 4D View Pro dependem de métodos permitidos definidos pelo comando genérico SET ALLOWED METHODS de 4D. Neste caso, os nomes de método projeto devem seguir a JavaScript Identifier Grammar (ver ECMA Script standard). A opção de filtro global na caix de diálogo Configurações (ver Gestão de Acessos)) é ignorada em qualquer caso.
Queremos imprimir "Hello World" em uma área de 4D View Pro utilizando um método projeto 4D:
- Crie um método projeto "myMethod" com o código abaixo:
C_TEXT($0)
$0:="Hello World"
- Execute o código abaixo antes do formulário que contém a área 4D View Pro (por exemplo, Método banco de dados On Startup):
[#code4D]Case of
: (Form event code=On Load)
var $o : Object
$o:=New object
// Define função "vpHello" do método "myMethod"
$o.vpHello:=New object
$o.vpHello.formula:=Formula(myMethod)
VP SET CUSTOM FUNCTIONS("ViewProArea"; $o - Edite o conteúdo de uma célula na área 4D View Pro e escreve:

"myMethod" é chamado por 4D e a célula mostra:

Os parâmetros podem ser passados aos métodos projeto 4D utilizando a sintaxe abaixo:
=methodName(param1,param2,...,paramN)
Estes parâmetros são recebidos em methodName em $1, $2...$N.
Lembre que os () são obrigatórios, mesmo se não forem passados parâmetros:
=methodWithoutParam()
Pode declarar o nome, tipo e número de parâmetros através da coleção parâmetros da função que declarou usando os comandos VP SET CUSTOM FUNCTIONS ou VP SET ALLOWED METHODS. Ou então pode controlar o número de parâmetros passados pelo usuário através das propriedades minParams e maxParams.
C_OBJECT($allowed)
$allowed:=New object
$allowed.VPMethod:=New object
$allowed.VPMethod.method:="4DMethodWithParams"
$allowed.VPMethod.parameters:=New collection
$allowed.VPMethod.parameters.push(New object("name";"Param1";"type";Is longint))
$allowed.VPMethod.parameters.push(New object("name";"Param2";"type";Is date))
$allowed.VPMethod.parameters.push(New object("name";"Param3";"type";Is text))
$allowed.VPMethod.minParams:=3
$allowed.VPMethod.maxParams:=3
VP SET ALLOWED METHODS($allowed)
Para saber mais sobre tipos de parâmetros recebidos compatíveis, veja a descrição do comando VP SET ALLOWED METHODS.
Se não declarar parâmetros, os valores podem ser passados sequencialmente aos métodos (seráo recebidos em $1, $2...) e seu tipo será convertido automaticamente. Datas em jstype serão passadas como C_OBJECT em 4D method com duas propriedades:
Property | Type | Descrição |
value | Date | Valor data |
time | Real | Tempo em segundos |
Os métodos projeto 4D também podem ser devolvidos valores na fórmula célula 4D View Pro via $0. Os tipos de dados abaixo são compatíveis com os parâmetros devolvidos:
- C_TEXT (convertido em string em 4D View Pro)
- C_REAL/C_LONGINT (convertido em número em 4D View Pro)
- C_DATE (convertido em JS Date type em 4D View Pro - hora, minuto, seg = 0)
- C_TIME (convertido em JS Date type em 4D View Pro - data em base data, ou seja 12/31/1899)
- C_BOOLEAN (convertido em booleano em 4D View Pro)
- C_PICTURE (jpg,png,gif,bmp,svg outros tipos convertidos em png) cria um uri (data:image/png;base64,xxxx) e depois se usa como fundo em 4D View Pro na célula onde se executa a fórmula
C_OBJECT com as duas propriedades abaixo (permitindo passar um data e tempo):
Se o método 4D não devolve nada, se devolve automaticamente uma string vazia.
Se devolve um erro na célula 4D View Pro se:
- o método 4D devolve outro tipo diferente aos de acima.
- ocorre um erro durante a execução do método 4D (quando o usuário clicar no botão "abortar").