It doesn't matter what layout you are on, but what TABLE OCCURENCE (TO) that layout is based upon. Setting a variable or a field is based on your current perspective.
If you are on a layout based on a table that includes the field, go ahead and set the variable.
If you are on a layout based on a different table, and the current TO is related to the table (any TO of it) you want, you will get the field value from the first related record as defined by the relationship between your current TO and the target table's TO.
If you are on a TO that is not related to the target field's TO, the variable will stay blank (and FMP will think to itself "I don't know what you're talking about")
Perspective is based on TO's.
The layout you are currently on defines the TO from which you view the database.
There are variables and there are fields.
Variables are not specific to any one table and thus not specific to any one layout. Once you've assigned a value to a variable, you can access that variable's value from any layout, providing the variable still exists.
If you use set variable or a Let function to create a variable with $$ at the start, you have created a global variable and it will exist for as long as you have the database open. One script can create the variable and assign it a value. Other scripts can access and modify it--and from any layout.
If you use a single $, you have created a local script variable and the variable will exist and be accessible only from other steps in the same script. Once the script terminates, the variable is gone.
With the let function, it's also possible to not use any $. In that case, the variable is viable only with the enclosing parenthesis of the let function that created it.
Thanks for the fast replies...So basically I can set a script to run global variables when I start filemaker and the values should be their for later use as needed. Am I on the right track?
If you set global variables ($$) then they will be there for the duration of the file and be available from anywhere. It is common for a Developer to, upon file start, go to Preferences layout (one-record table), write field values to global variables and then go about the work.
Hey everyone...once again my questions were answered...thanks for your fast response.