当前位置: 代码迷 >> PB >> 在窗口之间传递参数要如何做
  详细解决方案

在窗口之间传递参数要如何做

热度:145   发布时间:2016-04-29 05:25:56.0
在窗口之间传递参数要怎么做?
在窗口之间传递数据要怎么做?
------解决思路----------------------
请参考这篇文章:

 在PowerBuilder中函数OpenWithParm,CloseWithReturn,OpenSheetWithParm,windowname.OpenUserObjectWithParm
等都有一个在进行窗口操作(打开或者关闭)时存入Message消息对象的参数parameter或returnvalue。
 
        消息对象Message有三个属性用于存储这些函数传递给窗口的数据(依赖于窗口操作时参数赋予的类型)。
根据parameter   /   returnvalue参数数据类型的不同,该参数的值保存在Message对象的不同属性中。
parameter   /   returnvalue参数的类型与使用的Message对象属性的对应关系如下表:
 
参数类型                                                                                     Message对象属性  
Numeric(数值)                                                                           Message.DoubleParm  
PowerObject(PB对象,包括用户自定义的结构数据类型)   Message.PowerObjectParm  
String(字符串)                                                                         Message.StringParm  
        应用程序根据OpenWithParm()等函数的parameter   /   returnvalue参数类型,从Message消息对象的不同属性中提取该函数并传送
给被打开窗口的值。
 
在PB中如果是传递一个参数,是很容易实现的。在调用脚本中,可以使用如下代码:
 
openwithparm(w_1,"独孤求败")
 
接着在打开窗口w_1的open事件中键入:
 
sle_1.Text   =   message.stringparm
 
        如果需要传递多个参数,可以使用如下两种方法:
 
方法一
 
定义结构变量:lstr_para,其中包含你想传递的各种参数:
 
变量名      变量类型
 
ID      string
Name          string
Sex            string
Loca              string
 
在调用脚本中(本例使用才菜单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)
 
  相关解决方案