Reference > Functions reference > Logical functions > Evaluate
 

Evaluate

Evaluates an expression as a calculation.

Format 

Evaluate ( expression {; [field1 ; field2 ;...]} )

Parameters 

expression - any text expression or text field.

fields - a list of fields that this function is dependent on. When these fields are modified, the calculation will update its result.

Parameters in braces { } are optional. Notice that the optional field list is enclosed in brackets [ ].

Data type returned 

text, number, date, time, timestamp, container

Originated in 

FileMaker Pro 7.0

Description 

The optional fields parameter is a list of fields this calculation is dependent on. If a necessary field isn't listed, modifying that dependent field won't update the result of the calculation.

Notes 

If a server-side script contains the Evaluate function, use English function names in Evaluate's calculation. Evaluate does not recognize localized function names when it is evaluated in a server-side script. See About running scripts on FileMaker Server and FileMaker Cloud products.

Example 1 

Evaluate(TextField) returns 4 when TextField contains 2 + 2.

Evaluate("textfield") returns 2 + 2 when textfield contains 2 + 2.

Evaluate(GetField("textfield")) returns 4 when textfield contains 2 + 2.

Evaluate(TextField;[Amount]) returns .80 when TextField contains .08 * Amount and the Amount field contains 10.00.

Example 2 

Evaluate( "Let ( TaxRate = .05 ;" & Tax Rate Calculation & ")" ) returns .50 when the field Tax Rate Calculation contains SubTotal * TaxRate where SubTotal is a numeric field that contains 10.00.

Example 3 

The following example shows how to pass named parameters using the Evaluate, Let, and Get(ScriptParameter) functions, allowing access only to variable "a" (the example returns 6):

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

Example 4 

The following example shows how to pass named parameters, allowing access to both variable "a" and "b". The simplified first parameter makes the second parameter more complex (the example returns 6, 12):

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

Example 5 

The following example shows how to pass named parameters, while keeping the ability to check the syntax of the second parameter of the Let function (the example returns 6, 12):

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

Example 6 

The Evaluate function evaluates an expression, including field values to be evaluated as a calculation formula. It also allows you to specify field dependencies so that a calculation using the evaluation function can be triggered due to changes in other fields of the same record. This function evaluates user-defined formulas. For example, you can create a formula in the Total field that computes state tax:

Evaluate(StateTaxFormula) + ShippingCost

where the StateTaxFormula field contains:

SubTotal * 1.0875

and the SubTotal field contains the subtotal before tax and shipping.

The Evaluate function has an optional second parameter, which is a field the calculation is dependent on. When the dependent field contents change, FileMaker Pro Advanced reevaluates the calculation. In the following example, the Total calculation will be reevaluated when SubTotal changes:

Evaluate(StateTaxFormula; SubTotal) + ShippingCost

The dependent parameter can also be useful in other cases. For example,

Evaluate ( "Get ( CurrentTimeStamp )" ; [ FieldB ; FieldC ] )

will store a timestamp in the calculation field whenever FieldB or FieldC changes.

Related topics 

Functions reference (category list)

Functions reference (alphabetical list)

About formulas

About functions

Defining calculation fields

Using operators in formulas