Formula
História
Release | Mudanças |
---|---|
17 R6 | Renomeado (New formula -> Formula) |
17 R3 | Adicionado |
Formula ( formulaExp : Expression ) : 4D.Function
Parâmetro | Tipo | Descrição | |
---|---|---|---|
formulaExp | Expression | → | Fórmula a ser retornada como objeto |
Resultados | 4D. Function | ← | Função nativa encapsulando a fórmula |
Descrição
The Formula
command creates a 4D Function
object based upon the formulaExp expression. formulaExp can be as simple as a single value or complex, such as a project method with parameters.
Ter uma fórmula como se fosse um objeto permite que seja passada como um parâmetro (atributo calculado) para comandos ou métodos, ou para ser executado a partir de vários componentes, sem precisar declará-los como "partilhados por componentes e database host". Quando chamado, o objeto fórmula é avaliado sem o contexto do banco de dados ou componente que o criou.
A fórmula retornada pode ser chamada com:
- os métodos
.call()
ou.apply()
, - a sintaxe de notação de objeto (consulte objeto formula).
var $f : 4D. Function
$f:=Formula(1+2)
$o:=New object("myFormula";$f)
//três formas diferentes de chamar a fórmula
$f.call($o) //retorna 3
$f.apply($o) //retorna 3
$o.myFormula() //retorna 3
You can pass parameters to the Formula
, as seen below in example 4.
You can specify the object on which the formula is executed, as seen in example 5. As propriedades do objeto podem ser acessadas via o comando This
.
If formulaExp uses local variables, their values are copied and stored in the returned formula object when it is created. Quando executados, a fórmula usa esses valores copiados ao invés do valor atual da variável local. Note que usar arrays como variáveis locais não são compatíveis.
The object created by Formula
can be saved, for example, in a database field or in a blob document.
Exemplo 1
Uma fórmula simples:
var $f : 4D. Function
$f:=Formula(1+2)
var $o : Object
$o:=New object("f";$f)
$result:=$o.f() // devoluções 3
Exemplo 2
Uma fórmula usando um método projeto com parâmetros:
$value:=10
$o:=New object("f";Formula($value))
$value:=20
$result:=$o.f() // retorna 10