opendialog
FORM
,
OPTION
,
VALUE

The opendialog statement opens a form from the current database as a modal dialog box.


Parameters

This statement has three parameters:

form – is the name of the form to open.

option – in addition to the form name, this statement can have one or more additional option/value parameter pairs that modify the operation of the statement. Each pair has two parts, the option name (this parameter) and the option value. See the discussion below for more information.

value – option value.


Description

This statement opens a form in a modal dialog window. As long as this window is open, all other Panorama windows are inactive. The only way to close this dialog window is with the closedialog statement. While the dialog window is open you cannot click on another Panorama window to bring it in front of the dialog window. The dialog window will not have any scroll bars or tool palette.

Note: In most cases you won’t want to use the opendialog statement directly. Instead, you should use the rundialog statement.

The procedure below opens the form Transaction Preferences in a 4 inch by 6 inch dialog window centered on the main screen. The procedure then pauses so the user can fill in the dialog (see pause and resume).

local newWindowRect
newWindowRect=rectanglecenter(
    info("screenrectangle"),
    rectanglesize(1,1,4*72,6*72))
setwindowrectangle newWindowRect
opendialog "Transaction Preferences"
pause ""

Note: If the specified form is already open, it is simply brought to the front, and is not opened as a dialog.

Options

In addition to the form name, this statement can have one or more additional option/value parameter pairs that modify the operation of the statement. For example, these options can modify the appearance and operation of the dialog window. Each pair has two parts, the option name (this parameter) and the option value, like this:

opendialog name,option1,value1,option2,value2,option3,value3,...

The available options are described below.

Database

To open a form in a different database, use the database option. This example opens the form Report from the Members database as a dialog.

opendialog "Report","Database","Members"

The specified database must already be open.

Stay

Normally when you use the database option, the current database changes to the specified database while the dialog is open. However, if you also specify that stay is true, the current database will remain active. If you use this option, make sure that the form you are opening doesn’t display or edit fields that are not in the current database. Usually you will use this option with forms that don’t use any fields, only variables. In this example, the Status form from the Utility database is opened, but Utility does not become the current database – the current database stays the name (hence the name of the option).

opendialog "Status","Database","Utility","Stay",true(),"Clone",true()

As shown in the example above, the stay option is often used with the clone option (see below).

Rectangle

This option allows you to specify the exact location and size of the new dialog. This example opens a 3" by 5" dialog in the upper left hand corner of the screen.

opendialog "Preferences","Rectangle",rectanglesize(20, 5, 72*3, 72*5)

Note: The location can also be specified with the setwindowrectangle statement. If both are used, the rectangle specified in the opendialog statement will be used.

Title

To customize the window title, use the title option. (The title normally displays the database and form name.) This example opens the window with the name Latest Report.

opendialog "Report 183B","Title","Lastest Report"

If you want to change the title later, use the windowname statement.

Clone

This true/false option specifies whether the form should be opened as a “clone” dialog. Theoretically, this could allow you to open multiple clone dialogs with the same form. More importantly, this allows you to make programmatic changes to the dialog that will be discarded as soon as the dialog is closed. We recommend using this option, and in fact the rundialog statement defaults to this.

Variables

This option allows sets up one or more windowglobal variables in the new dialog. Both the names and values of the variables are initialized just before the window actually opens, so you can use these variables in graphical objects in the form (Text Display, Image Display, etc.). You must create a dictionary that contains the names and values of all of the variables you want to create. See the openform statement for more information about this option.

Maximizable

This true/false option controls whether or not the maximize button (the green button in the upper left corner of the window) is enabled. This button is enabled by default, so this option allows you to turn it off.

opendialog "New Customer","Maximizable","no"

Closeable

This true/false option controls whether or not the close button (the red button in the upper left corner of the window) is enabled. This button is disabled by default, so this option allows you to turn it on.

opendialog "New Customer","Closeable","yes"

Normally modal dialogs are closed with a button in the dialog content, but this option gives you another technique for closing a dialog.

TitleBar

This true/false option option allows you to completely remove the title bar at the top of the window, including all of the buttons in the title bar.

opendialog "New Customer","TitleBar","no"

See Also


History

VersionStatusNotes
10.2UpdatedNew option "Variables" allows windowglobal variables to be set up just before the window actually opens.
10.0UpdatedCarried over from Panorama 6.0, but no longer suppoerts the .OutOfBounds procedure, and now includes options for opening forms from another database and modifying the appearance and operation of the form's window.