数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
PowerBuilder窗口之间传递多参数的方法

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

    在PowerBuilder中函数OpenWithParmCloseWithReturnOpenSheetWithParmwindowname.OpenUserObjectWithParm等都有一个在进行窗口操作(打开或者关闭)时存入Message消息对象的参数parameterreturnvalue

消息对象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_wantparm,parmtotrans)

接着在打开窗口w_wantparmopen事件中键入:

  string ls_getparm

  ls_getparm =message.stringparm

  …

  如果需要传递多个参数,可以使用如下两种方法:

  方法一

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

  变量名      变量类型

  ID       Unsignedlong

  Name      Character

  Email     Character

  Homepage    Character

         

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

  lstr_declaredstr lstr—parmtotrans

  lstr—parmtotrans.id=1

  lstr—paramtotrans.name=panya

  lstr—paramtotrans.email=[email protected]

  lstr—paramtotrans.homepage=http://panya.163.net

  …

  openwithparm(w_wantparm,parmtotrans)

  接下来在打开窗口w—wantparmopen事件中,获取结构信息:

  lstr—declaredstr lstr—getparm

  integer li_getid

  string ls_getname

  string ls_getemail

  string ls_gethomepage

  lstr_getparm=message.powerobjectparm

  li_getid=lstr_getparm.id

  ls_getname= lstr_getparm.name

  ls_geemail= lstr_getparm.email

  ls_gethomepage= lstr_getparm.homepage

  …

  其中ame

  String Email

  String Homepage

  ...

  打开窗口w—wantparm,并传递多个参数:

  u_n_parmtostore lnv_paramtotrans

  lnv_paramtotrans.id=1

  lnv_paramtotrans.name=panya

  lnv_paramtotrans.email=[email protected]

  lnv_paramtotrans.homepage=http://pbnet.126.com

  …

  OpenWithParm ( w_wantparm, lnv_paramtotrans )

  在 w_wantparm open 事件中访问传来的参数:

  u_n_parmtostore lnv_getparam

  integer li_getid

  string ls_getname

  string ls_getemail

  string ls_gethomepage

  lnv_getparam = Message.PowerObjectParm

  li_getid=lnv_getparam.id

  ls_getname=lnv_getparam.name

  ls_gethomepage=lnv_getparam.homepage

  ls_getemail=lnv_getparam.email

  …

    以上两种方法比较而言,第一种方法虽然比较简单实用,但是如果遇上较复杂的数据时,便不能在一个结构数据中充分描述了;第二种方法不但方便灵活,而且可以传送复杂的数据。当然,参数的传送不止以上的几种方法,你也可以使用全局变量或是公共可访问的窗口实例变量来传送参数,或者在窗口中调用一个函数,并传递所需的参数,在此就不再赘述了。


相关文章

相关软件