Saltar para o conteúdo principal
Versão: 20 R7 BETA

Formula from string

História
ReleaseMudanças
20 R3Suporte do parâmetro context
17 R6Renamed New formula from string -> Formula from string
17 R3Adicionado

Formula from string( formulaString : Text ) : 4D.Function
Formula from string( formulaString : Text ; context : Longint ) : 4D.Function

ParâmetroTipoDescrição
formulaStringTextFórmula texto a ser retornada como objeto
contextNumbersk execute in current database (por padrão) ou sk execute in host database
Resultados4D. FunctionObjeto 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âmetrosTipoDescrição
sk execute in current databaseInteger(padrão) A fórmula será executada no contexto em que foi criada
sk execute in host databaseIntegerA 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:

Veja também

Formula
Parse formula