Filemaker Pro 8.5 Educational Maintenance T3 TJ083LL/A User Manual

Product codes
TJ083LL/A
Page of 238
Chapter 8
  
|
  Logical functions     139
The Let function sets the variables from left to right. You can use previously defined 
variables (for example, variables that you defined with the Set Variable script step) to 
define new variable values, and you can nest one Let function within another. If you use 
a previously defined variable within a nested Let function, the variable has scope only 
within the nested function (as if you had defined a completely unique variable). See the 
City example shown below.
Once defined, local and global variables can be referenced in any calculation within their 
scope. The scope of global variables is limited to the current file. The scope of local 
variables is the current script. Local variables defined in a calculation are scoped to the 
file but are only available when scripts are not running. A local and global variable (or even 
two local variables in different scripts) can have the same name but they are treated as 
different variables and store different values.
Examples
Let(x=5;x*x) returns 
25
.
Let([x=5;squared=x*x;cubed=squared*x];cubed) returns 
125
.
Let(City=“Paris”;Let(City=“San Francisco”;City&“-“)&City) returns 
San Francisco - Paris
.
The following example sets a local variable counter at repetition 50 with a value of 120:
Let($counter[50]=120;$counter[50]*2) returns 
240
.
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 )" )
The following example shows how to pass named parameters, allowing access to both 
variable 'a' and variable '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 
)" )
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 )