Evaluate

Avalia uma expressão como um cálculo.

Formato 

Evaluate ( expressão {; [campo1 ; campo2 ;...]}

Parâmetros 

expressão - qualquer expressão de texto ou campo de texto.

campos - uma lista dos campos de que esta função depende. Quando esses campos forem modificados, o cálculo atualizará seu resultado.

Os parâmetros entre chaves { } são opcionais. Observe que a lista de campos opcionais fica entre colchetes [ ].

Tipo de dados retornado 

texto, número, data, hora, carimbo de data/hora, container

Originada na versão 

7.0

Descrição 

O parâmetro campos opcional é uma lista de campos de que esse cálculo depende. Se um campo necessário não estiver listado, a modificação desse campo não atualizará o resultado do cálculo.

Notas 

Exemplo 1 

Evaluate(CampodeTexto) retorna 4 quando CampodeTexto contém 2 + 2.

Evaluate("campodetexto") retorna 2 + 2 quando campodetexto contém 2 + 2.

Evaluate(GetField("campodetexto")) retorna 4 quando campodetexto contém 2 + 2.

Evaluate(CampodeTexto;[Valor]) retorna .80 quando CampodeTexto contém .08 * Valor, e o campo Valor contém 10.00.

Exemplo 2 

Evaluate("Let(Alíquota=,05;"& Cálculo de alíquota &")") retorna ,50 quando o campo Cálculo de alíquota contém SubTotal * Alíquota, em que SubTotal é um campo numérico que contém 10,00.

Exemplo 3 

O seguinte exemplo mostra como passar parâmetros nomeados usando as funções Evaluate, Let e Get(ScriptParameter), permitindo o acesso somente à variável "a" (o exemplo retorna 6):

Copiar
ScriptParameter = "a = 5; b = 10"
Copiar
Evaluate("Let ( [" & Get(ScriptParameter) & "]; a + 1 )" )

Exemplo 4 

O seguinte exemplo mostra como passar parâmetros nomeados, permitindo o acesso às variáveis "a" e "b". O primeiro parâmetro simplificado torna o segundo parâmetro mais complexo (o exemplo retorna 6, 12):

Copiar
ScriptParameter = "a = 5; b = 10"
Copiar
Evaluate("Let ( [" & Get(ScriptParameter) & "]; a + 1 & \", \" & b + 2 )")

Exemplo 5 

O seguinte exemplo mostra como passar parâmetros nomeados, mantendo a capacidade de verificar a sintaxe do segundo parâmetro da função Let (o exemplo retorna 6, 12):

Copiar
ScriptParameter = "a = 5; b = 10"
Copiar
Let(  [a = Evaluate("Let( [" & Get(ScriptParameter) & "]; a )"),
            b = Evaluate("Let( [" & Get(ScriptParameter) & "]; b )")]; a + 1 & ", " & b + 2 )

Exemplo 6 

A função Evaluate avalia uma expressão, incluindo valores de campo a serem avaliados como uma fórmula de cálculo. Ela também permite especificar as dependências de campo de forma que um cálculo que use a função de avaliação possa ser acionado devido a mudanças em outros campos do mesmo registro. Essa função avalia as fórmulas definidas pelo usuário. Por exemplo, é possível criar uma fórmula no campo Total que calcule o imposto estadual:

Copiar
Evaluate(FórmulaImpostoEstadual) + CustoEnvio

em que o campo FórmulaImpostoEstadual contém:

Copiar
SubTotal * 1.0875

e o campo SubTotal contém o subtotal sem incluir o imposto e a taxa de envio.

A função Evaluate tem um segundo parâmetro opcional, que é um campo de que o cálculo depende. Quando o conteúdo do campo dependente muda, o FileMaker Pro reavalia o cálculo. No seguinte exemplo, o cálculo Total será reavaliado quando o SubTotal mudar:

Copiar
Evaluate(FórmulaImpostoEstadual; SubTotal) + CustoEnvio

O parâmetro dependente pode também ser útil em outros casos. Por exemplo,

Copiar
Evaluate("Get(CurrentTimeStamp)"; [CampoB; CampoC])

armazenará um carimbo de data/hora no campo de cálculo sempre que CampoB ou CampoC mudar.