Formula from string
História
Release | Mudanças |
---|---|
20 R3 | Suporte do parâmetro context |
17 R6 | Renamed New formula from string -> Formula from string |
17 R3 | Adicionado |
Formula from string( formulaString : Text ) : 4D.Function
Formula from string( formulaString : Text ; context : Longint ) : 4D.Function
Parâmetro | Tipo | Descrição | |
---|---|---|---|
formulaString | Text | → | Fórmula texto a ser retornada como objeto |
context | Number | → | sk execute in current database (por padrão) ou sk execute in host database |
Resultados | 4D. Function | ← | Objeto nativo encapsulando a fórmula |
Descrição
The Formula from string
command creates a 4D.Function
object based upon the formulaString and, optionnally, a context. formulaString can be as simple as a single value or complex, such as a project method with parameters.
This command is similar to Formula
, except that it handles a text-based formula and allows to define an execution context. It is usually recommended to use the Formula
command, except if the original formula was expressed as text (e.g., stored externally in a JSON file), or if you want to create a formula in a host database while calling Formula from string
from a component. É altamente recomendável usar a sintaxe com tokens com esse comando.
Because local variable contents can not be accessed by name in compiled mode, they can not be used in formulaString. An attempt to access a local variable with
Formula from string
will result in an error (-10737).
If the formula is created in a component, you might consider using the context parameter. Por padrão, dado que as fórmulas são executadas no contexto em que foram criadas, não conseguirá chamar uma variável, uma função ou um método não compartilhado do banco de dados host. In this case, you can pass the sk execute in host database
constant in the context parameter to execute the 4D.Function
object in the context of the host database. Estão disponíveis as seguintes constantes:
Parâmetros | Tipo | Descrição |
---|---|---|
sk execute in current database | Integer | (padrão) A fórmula será executada no contexto em que foi criada |
sk execute in host database | Integer | A fórmula será executada no contexto do banco de dados do host |
Exemplo
O código abaixo cria um diálogo aceitando uma fórmula em formato texto:
var $textFormula : Text
var $f : 4D. Function
$textFormula:=Request("Please type a formula")
If(ok=1)
$f:=Formula from string($textFormula)
ALERT("Result = "+String($f.call()))
End if
...e executa a fórmula: