当前位置:首页 > 技能相关 > PowerBuilder > 正文内容

PB PowerBuilder多窗口之间传递参数的方法

admin1年前 (2024-02-04)PowerBuilder6550 修订时间:2024-02-04 12:27:27

一、基本方法

定义全局变量,主窗口、子窗口都可以直接对它操作;

注意:全局变量值为主\子窗口最后赋值的值

二、PowerBuilder函数

 在PowerBuilder中函数OpenWithParm,CloseWithReturn,OpenSheetWithParm,windowname.OpenUserObjectWithParm等都有一个在进行窗口操作时存入Message消息对象的参数parameter或returnvalue。

消息对象Message有三个属性用于存储这些函数传递给窗口的数据,根据parameter/returnvalue参数的类型与使用的Message对象属性的对应关系如下表:

参数类型Message对象属性
Numeric(数值)Message.DoubleParm
PowerObject(PB对象,包括用户自定义的结构数据类型)Message.PowerObjectParm
String(字符串)Message.StringParm

2.1 传递一个参数

在调用脚本中,可以使用如下代码:

openwithparm(w_1,"要传递的信息")

接着在打开窗口w_1的open事件中可以通过message.stringparm获取。

2.2 传递多个参数

方法一

定义结构变量:lstr_para,其中包含你想传递的各种参数:

变量名变量类型
IDstring
Namestring
Sexstring
Locastring

在调用脚本中(本例使用才菜单clicked中),使用如下代码:

lstr_para lstr_Tranpara
lstr_Tranpara.id   = "00000001"
lstr_Tranpara.name = "姓名"
lstr_Tranpara.sex  = "男"
lstr_Tranpara.loca = "山东菏泽"
openwithparm(w_2,lstr_Tranpara)

接下来在打开窗口w_2的open事件中,获取结构信息:

lstr_para lstr_Getpara
lstr_Getpara = message.powerobjectparm
sle_1.Text   = lstr_Getpara.id
sle_2.Text   = lstr_Getpara.name
sle_3.Text   = lstr_Getpara.sex
sle_4.Text   = lstr_Getpara.loca

其中,lstr_Getpara为用户自定义结构数据类型,是值传送的。

方法二

首先创建一个类用户对象 uo_para ,在该用户对象中将你需要传递的各种参数申明成实例变量,例如:

public:
     string id
     string name
     string sex
     string loca

在调用脚本中(本例使用才菜单clicked中),使用如下代码:

uo_para uo_Tranpara
uo_Tranpara      = create uo_para
uo_Tranpara.id   = "00000001"
uo_Tranpara.name = "姓名"
uo_Tranpara.sex  = "男"
uo_Tranpara.loca = "山东菏泽"
OpenWithParm(w_3,uo_Tranpara)

接下来在打开窗口w_3的open事件中,获取用户对象信息:

uo_para uo_Getpara
uo_Getpara = message.powerobjectparm
sle_1.Text = uo_Getpara.id
sle_2.Text = uo_Getpara.name
sle_3.Text = uo_Getpara.sex
sle_4.Text = uo_Getpara.loca

三、注意事项

1.最好执行完窗口操作(打开或关闭)后马上将Message消息对象的值传给变量,这是因为Message是全局使用的对象,每一次事件被触发或传送时都会被使用,其他Script   也有可能用到Message消息对象,因此它有被覆盖的危险。

2.避免传送NULL对象,以免程序出错。

 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=390

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。