windowglobal
windowglobal
VARIABLES

The windowglobal statement creates one or more windowglobal variables.

Parameters

This statement has one parameter:

variables – is a list of variables to be created. Each variable should be separated from the next by a comma. If a variable name contains spaces or punctuation, or begins with any character except a letter or underscore, it should be surrounded by chevron (« ») characters.

Description

This statement creates one or more variables that are specific to the current window. Window global variables may be used by any procedure as long as the same window is open, and remain active until you close the window.

The windowglobal statement reduces the chance for conflict between variables in the same database. It allows you to define the same variable name over and over again in different windows, with each window having a separate value. This is very useful when using window clones.

#### Window Clones

Panorama normally allows only a single window per form. However, a single form can be opened over and over again into multiple separate windows by using the openform statement with the “clone” option.. Each window is a “clone” of the others. A window clone cannot be opened manually with the View menu - only with openform statement in a procedure. Here is a typical procedure that opens a slightly offset clone of the current window:

    setwindowrectangle rectangleadjust( info("windowrectangle"),10,10,10,10))
    openform info("formname"),"Clone",true()

In Panorama 6 and earlier versions, a form could only be opened as a form if the Allow Clones preference was turned on, but this option is no longer necessary (or available) in Panorama X. Instead, the clone option is specified as a parameter of the openform statement.

#### Designing Forms for Clone Windows

Although any form can be opened as a clone, most forms will not work very intelligently if they are cloned. In general, a form that is designed to be cloned should not contain any fields or global variables, only windowglobal variables. If your form contains objects that are linked to a variable and is opened with the clone option, the objects will automatically create windowglobal variables instead of global variables. Since the windowglobal variables can be manipulated separately for each clone window, you can control each clone window individually, even though all the clone windows use the same form template.

The example assumes that you have created a form called File Display that displays the contents of a text file using a Text Display object with the formula

    fileload(wFolder,wFile)

The procedure below will open a new window and display the file.

    local folder,file,type
    openfiledialog folder,file,type,"TEXT"
    if file="" stop endif
    openform "File Display","clone","yes"
    windowname file
    windowglobal wFolder,wFile
    wFolder=folder
    wFile=file
    showvariables wFolder,wFile

Each time you run this procedure, another window will open.

See Also

- assign( -- assigns a value to a field or variable, also returning the value.
- assignglobal( -- assigns a value to a global variable (creating the variable if necessary).
- cache( -- stores a value in a temporary variable.
- callerslocalvariablevalue( -- allows a subroutine to access a local variable in the procedure that called it.
- cardvalidate -- verifies that a number is a valid credit card number.
- convertvariablestoconstants -- converts all of the variables in a formula into constant values.
- datatype( -- determines what kind of data is in a field or variable: text, number, etc.
- datavalue( -- returns the value of a field or variable: text, number, etc.
- fieldstotextvariables -- copies database fields into variables.
- fileglobal -- creates one or more fileglobal variables.
- fileglobalvalue( -- accesses a fileglobal or permanent variable from other databases.
- global -- creates one or more global variables.
- globalvalue( -- returns the value of a global variable.
- increment -- increments a field or variable.
- info("callerslocalvariables") -- returns a list of local variables defined in the procedure that called the current procedure.
- info("filevariables") -- builds a carriage return separated text array containing a list of the currently allocated fileglobal variables in the current database.
- info("globalvariables") -- builds a carriage return separated text array containing a list of the currently allocated global variables.
- info("localvariables") -- builds a carriage return separated text array containing a list of the currently allocated local variables.
- labelize( -- returns the value of a field or variable along with a label. This saves typing when you need to display fields or variables when logging and debugging.
- labelizeformula( -- returns the value of a formula along with the formula itself as a label.
- labelizeinfo( -- returns the value of an info( function, along with the function itself as a label.
- local -- creates one or more local variables.
- localparameters -- creates one or more local variables and assigns parameter values to them.
- localvalue( -- returns the value of a local variable.
- makefileglobals -- creates one or more fileglobal variables, and assigns a value to each new variable.
- makeglobals -- creates one or more global variables, and assigns a value to each new variable.
- makelocals -- creates one or more local variables, and assigns a value to each new variable.
- permanent -- creates one or more permanent variables.
- savelocalvariables -- saves local variables as a procedure.
- scopes( -- returns the current scope of a variable, as well as any hidden scopes.
- scopevalue( -- returns the value of a variable in the specified scope.
- setcallerslocal -- allows a subroutine to modify a local variable in the procedure that called it.
- setfileglobal -- sets the value of a fileglobal variable (optionally in another database).
- setfilevariable -- sets the value of a fileglobal variable in another database.
- setpermanentvariable -- sets the value of a permanent variable in another database. The database must be open. An empty value will choose the currently active database.
- setwindowglobal -- sets the value of a windowglobal variable (optionally in another window).
- showvariables -- forces Panorama to update the display of one or more variables on every form in the active database.
- showwindowvariables -- forces Panorama to update the display of one or more variables in the currently active form.
- tokenname( -- returns the name of a field or variable (instead of the value contained in the field or variables).
- undefine -- destroys one or more variables.
- undefinefileglobal -- destroys one or more fileglobal variables.
- undefineglobal -- destroys one or more global variables.
- undefinewindowglobal -- destroys one or more windowglobal variables.
- unpermanent -- converts one or more permanent variables into regular fileglobal variables. The variables will no longer be saved as part of the database.
- windowglobalvalue( -- accesses a windowglobal variable from other windows.

History

Version | Status | Notes
10.0 | No Change | Carried over from Panorama 6.0, but documents changes in clone window operation from Panorama 6 to X.