setfield
setfield
DESTINATION
,
FORMULA

The setfield statement performs an assignment, much like an equals sign or the assign statement. However, the destination field of the assignment can be calculated on the fly.

Parameters

This statement has two parameters:

destination – is a formula that calculates the name of the field that you want to modify.

formula – calculates the value that will be placed into the destination field.

Description

Panorama normally copies data into fields or variables with an assignment. For example, this assignment statement copies the value Westside into the field (or variable) named City.

    City="Westside"

Assignment statements work fine as long as it is known where the data needs to be copied into when the program is written. But sometimes this is not known, or it needs to change on the fly. The set statement essentially lets the left hand side of the = change on the fly.

The example procedure below assumes that the current database contains a field for each day of the week: Sunday, Monday, Tuesday, etc. The example copies the variable DepartureTime into the field for the current day.

    setfield datepattern( today(),"DayOfWeek"),DepartureTime

Here is the same procedure rewritten without using the set statement (the first line of the code calculates the name of the day).

    let dayName = datepattern( today(),"DayOfWeek")
    case dayName="Sunday"
         Sunday=DepartureTime
    case dayName="Monday"
         Monday=DepartureTime
    case dayName="Tuesday"
         Tuesday=DepartureTime
    case dayName="Wednesday"
         Wednesday=DepartureTime
    case dayName="Thursday"
        Thursday=DepartureTime
    case dayName="Friday"
        Friday=DepartureTime
    case dayName="Saturday"
        Saturday=DepartureTime
    endcase

These two code samples illustrate the power of the set statement, which in this case is doing the same work as 16 statements.

See Also

- assign -- assigns a value to a field or variable.
- assignfield -- performs an assignment, much like an equals sign or the assign statement. However, the *assignfield* statement only performs the assignment to a database field, not to any variable.
- assignfieldwithsideeffects -- performs an assignment, much like an equals sign or the assign statement. However, the *assignfieldwithsideeffects* statement only performs the assignment to a database field, not to any variable. After performing the assignment, it will run any side effects associated with the field, including formulas and code associated with the field.
- assignfileglobal -- performs an assignment, much like an equals sign or the assign statement. However, the *assignfileglobal* statement only performs the assignment to a fileglobal variable.
- assignglobal -- performs an assignment, much like an equals sign or the assign statement. However, the *assignglobal* statement only performs the assignment to a global variable.
- assignlocal -- performs an assignment, much like an equals sign or the assign statement. However, the *assignlocal* statement only performs the assignment to a local variable.
- assignwindowglobal -- performs an assignment, much like an equals sign or the assign statement. However, the *assignwindowglobal* statement only performs the assignment to a windowglobal variable.
- define -- performs an assignment, much like an equals sign or the assign statement. However, the *define* statement only performs the assignment if the variable is currently undefined. If the variable already has a value, the *define* statement leaves it alone. The *define* statement is especially useful for initializing permanent variables.
- let -- creates a local variable and assigns a value to it.
- letfileglobal -- creates a fileglobal variable and assigns a value to it.
- letglobal -- creates a global variable and assigns a value to it.
- letpermanent -- creates a permanent variable and assigns a value to it.
- letservervariable -- creates a server variable and assigns a value to it.
- letwindowglobal -- creates a windowglobal variable and assigns a value to it.
- set -- performs an assignment, much like an equals sign or the assign statement. However, the destination of the assignment can be calculated on the fly.
- setglobal -- sets a value into a global variable. The name of the global variable is calculated on the fly.
- setlocal -- sets a value into a local variable. The name of the local variable is calculated on the fly.
- setlocalsfromdictionary -- converts a dictionary into a collection of local variables. The names and values of the local variables will be derived from the dictionary contents.

History

Version | Status | Notes
10.0 | New | New in this version.