Syntax 1 For windows of a known datatype
Description
Opens a window object of a known datatype. OpenWithParm displays
the window and makes all its properties and controls available to
scripts. It also stores a parameter in the system’s Message
object.
Controls
Window objects
Syntax
|
1 |
<span>OpenWithParm</span> ( <span>windowvar</span>, <span>parameter</span> {, <span>parent </span>} ) |
|
Argument |
Description |
|---|---|
|
windowvar |
The name of the window you want to display. |
|
parameter |
The parameter you want to store in the
|
|
parent |
The window you want make the parent of |
Return Values
Integer. Returns 1 if it succeeds and
-1 if an error occurs. If any argument’s value is null, OpenWithParm returns null.
Usage
The system Message object has three properties for storing
data. Depending on the datatype of the parameter specified for OpenWithParm,
your scripts for the opened window would check one of the following
properties.
|
Message object property |
Argument datatype |
|---|---|
|
Message.DoubleParm |
Numeric |
|
Message.PowerObjectParm |
PowerObject (PowerBuilder |
|
Message.StringParm |
String |
In the opened window, it is a good idea to access the value
passed in the Message object immediately because some other script
may use the Message object for another purpose.
Avoiding null object references
When you pass a PowerObject as a parameter, you are passing
a reference to the object. The object must exist when you refer
to it later or you will get a null object reference, which causes
an error. For example, if you pass the name of a control on a window
that is being closed, that control will not exist when a script
accesses the parameter.
Passing several values as a structure
To pass several values, create a user-defined structure to
hold the values and access the PowerObjectParm property of the Message
object in the opened window. The structure is passed by value, not
by reference, so you can access the information even if the original
structure has been destroyed.
See also the usage notes for Open, all of which
apply to OpenWithParm.
Examples
This statement opens an instance of a window named w_employee and
stores the string parameter in Message.StringParm. The script for
the window’s Open event uses the string parameter as the
text of a StaticText control st_empname. The
script that opens the window has the following statement:
|
1 |
<span>OpenWithParm</span>(w_employee, "James Newton") |
The window’s Open event script has the following
statement:
|
1 |
st_empname.Text = Message.StringParm |
The following statements open an instance of a window
of the type w_employee. Since the
parameter is a number it is stored in Message.DoubleParm:
|
1 |
w_employee w_to_open |
|
1 |
integer age = 50 |
|
1 |
<span>OpenWithParm</span>(w_to_open, age) |
The following statement opens an instance of a child
window named cw_data and makes w_employee the
parent. The window w_employee must
already be open. The parameter benefit_plan is
a string and is stored in Message.StringParm:
|
1 |
<span>OpenWithParm</span>(cw_data, "benefit_plan", w_employee) |