Syntax 2: For windows of unknown datatype – PB Docs 2017

Syntax 2: For windows of unknown datatype

Description

Opens a window object when you do not know its datatype until the
application is running. 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.

Applies to

Window objects

Syntax

Argument

Description

windowvar

A window variable, usually of datatype window.
OpenWithParm places a reference to the open window in
windowvar.

parameter

The parameter you want to store in the Message
object when the window is opened. Parameter must have one of
these datatypes:

  • String

  • Numeric

  • PowerObject

windowtype

A string whose value is the datatype of the window
you want to open. The datatype of windowtype must be the same or
a descendant of windowvar.

parent (child and pop-up windows
only)

The window you want to make the parent of the child
or pop-up window you are opening. If you open a child or pop-up
window and omit parent, PowerBuilder associates the window being
opened with the currently active window.

Return value

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 objects, including
user-defined structures)

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

These statements open a window of the type specified in the string
s_w_name and store the reference to the window in the variable
w_to_open. The script gets the value of s_w_name, the type of window to
open, from the database. The parameter in e_location is text, so it is
stored in Message.StringParm:

The following statements open a window of the type specified in
the string c_w_name, store the reference to the window in the variable
wc_to_open, and make w_emp the parent window of wc_to_open. The
parameter is numeric, so it is stored in Message.DoubleParm:

See also

CloseWithReturn

Open


Document get from Powerbuilder help
Thank you for watching.
Was this article helpful?
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x