The openwizard statement opens a wizard, just as it would be opened by selecting that wizard from the menubar.
Parameters
This statement has two parameters:wizard – Name of wizard to open.
options – Parameter to pass to the .InitializeWizard
procedure
Description
This statement opens a wizard, just as it would be opened by selecting that wizard from the menubar.
openwizard "Formula Workshop"
If the same wizard appears in more than one submenu, the first one will be used.
The openwizard statement uses a special process to open a wizard.
First, it opens the wizard database without any wizards.
Once the database is open, it checks to see if it has a procedure named _WizardInfo
. If not, the wizard database is opened normally.
If this procedure does exist, it is called as a function. This procedure should use the functionvalue statement to return a dictionary which contains information about the wizard. Here is a typical example.
functionvalue initializedictionary(
"MAINFORM","Formula",
"POSITION","top right",
"MULTIPLEMAINFORM",true()
)
If a MAINFORM
is specified, this form will be opened as a clone window. No other windows will open, no matter what windows were open when the database was last saved. This means that you cannot edit the form in this window. If you want to edit the form, you will have to explicitly open the original, non-clone version of the form.
If a POSITION
is specified, the wizard window will open in that position. There are nine possible positions: top left
, top center
, top right
, left center
, center
, right center
, bottom left
, bottom center
, and bottom right
. If an alignment axis is not specified it is assumed to be center
, for example top
is the same as top center
. The order of the options does not matter, for example top left
and left top
are the same. There must be a space if multiple keywords are used – you cannot say topleft
or bottomright
.
If a MULTIPLEMAINFORM
is true, the wizard allows multiple cloned main windows. In this case, the the openwizard statement will always open a new window, even if the wizard is already open. If this is false (or missing) and the wizard is already open, the openwizard statement will simply bring the wizard’s current window to the front. (Note: If openwizard creates a new window, it will call the wizard’s _NewCloneWindowName
procedure. This function should use the functionvalue statement to return the correct name for the new window. Here is an example which returns the database name plus a numeric suffix for the window name.
fileglobal windowNumber
define windowNumber,0
windowNumber = windowNumber+1
functionvalue info("databasename") + ?(windowNumber=1,""," ("+windowNumber+")")
As a last step, the openwizard statement calls the wizards .InitializeWizard
procedure (if there is one). This allows the wizard to do final initialization based on any options passed to the openwizard statement (the second parameter passed to this statement).
History
Version | Status | Notes |
10.0 | Updated | Carried over from Panorama 6.0, but now uses a special process for opening wizards. |