社区
PowerBuilder
帖子详情
请问,CLOSEWITHRETURN能够传递一个数据窗口吗,为什么我总是传递不过来啊,很急,请大家帮忙!!
sodeberge
2003-11-24 12:16:27
如题,请高手赐教!
...全文
476
11
打赏
收藏
请问,CLOSEWITHRETURN能够传递一个数据窗口吗,为什么我总是传递不过来啊,很急,请大家帮忙!!
如题,请高手赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sodeberge
2003-11-25
打赏
举报
回复
谢谢大家,我使用ROWSCOPY解决了问题!
fulongbiao
2003-11-25
打赏
举报
回复
定义datawindow变量
marinedalian
2003-11-24
打赏
举报
回复
同意楼上
lmby
2003-11-24
打赏
举报
回复
虽然在两个窗口中各定义了一个相同的DataWindow实例变量,但这变量名其实是一个被PB遮掩得很隐蔽的指针(指针的数据类型就是datawindow),等同于C/C++中的指针,只是指向一个对象,本身并不包括对象数据元。这就有了一个作用域的问题,我们平时直接把它当作对象本身拿来用,在一个作用域内用(比如一个窗口中)一般是没有问题的,但是想跨域(从一个窗口到另一个窗口)传递对象时,PB的麻烦就来了。CloseWithReturn时,PB的Message Object接收的其实也是一个指针,并指向窗口中DataWindow对象的一个复本,但PB在生成DataWindow复本时,并没有把源对象所包含的数据元本身复制过来,原因可能是因为数据是存在于dw控件的缓冲区中,缓冲区(Primary,Delete,Filter)都是一个二维数组,不能直接复制。这和控件的属性值是不太一样的,我们都知道若CloseWithReturn一个Statistic Text控件对象,则接收方可以很方便的获取该控件的各种属性值,比如Text等等。这是PB在CloseWithReturn一个类似于DataStore、DataWindow等对象时需要注意的地方。
一家之言,参考。
另外可变相的解决此问题,方法是设一个全局的DataWindow Buffer来过渡一下,速度非常快。
Thinkinger
2003-11-24
打赏
举报
回复
1:你的closewithreturn的窗口必须是response类型窗口;
2:你接受parms的窗口的方式是:powerobject lpo_object = message.powerobjectparm,且这个语句应该在打开response窗口的open[withparm]()的紧挨之后,否则可能不能顺利接收!
liliang800207
2003-11-24
打赏
举报
回复
学习
zhangdatou
2003-11-24
打赏
举报
回复
大家都很厉害
dotnba
2003-11-24
打赏
举报
回复
lmby(鹿门布衣) 说的不错。
.Net就比较好了,窗口关闭(Close),并不等于(Dispose/DeConstructor)。对于里面的还可以引用。
SnakeFF
2003-11-24
打赏
举报
回复
关注中.........
期待更好的方法!!!!!
GoldProgramer
2003-11-24
打赏
举报
回复
楼上的不是什么好方法。
试试下面的做法:
W_Parent是你的窗口要打开一个W_Popup的窗口。
在W_Parent中打开窗口的代码如下:
DataStore ResultDS;
Open(W_Popup);
ResultDS = Message.PowerObjectParm;
//然后就可以使用了
...
在W_Popup的Close事件中这样写
DataStore OutDS;
OutDS = create DataStore;
//在这里设置你要返回的数据窗口
//例如:仅是一个例子。
// OutDS.DataObject = 'd_User';
// OutDS.SetTransObject(SQLCA);
// OutDS.InsertRow(0);
// OutDS.SetItem(1, 'User_Name', 'User');
//...
CloseWithReturn(this, OutDS);
mittee
2003-11-24
打赏
举报
回复
设置一个全局 DataWindow 变量
PB
窗口
之间
传递
多参数的方法
PB
窗口
之间
传递
多参数的方法 在PowerBuilder中函数OpenWithParm,
Close
With
Return
,OpenSheetWithParm, windowname.OpenUserObjectWithParm 等都有
一个
在进行
窗口
操作(打开或者关闭)时存入Message消息 对象的参数parameter或
return
value。 消息对象Message有三个属性用于存储这些函数
传递
给
窗口
的
数据
(依赖于
窗口
操作时参数赋予的类型) 。 根据parameter /
return
value参数
数据
类型的不同,该参数的值保存在Message对象的不同属性中。 parameter /
return
value参数的类型与使用的Message对象属性的对应关系如下表: 参数类 Message对象属性 Numeric(数值) Message.DoubleParm PowerObject(PB对象,包括用户自定义的结构
数据
类型) Message.PowerObjectParm String(字符串) Message.StringParm
pb函数库之
窗口
操作函数
pb函数库之
窗口
操作函数 open() 打开
窗口
close
() 关闭
窗口
opensheet()
pb
窗口
间
传递
参数的方法
在PowerBuilder中函数OpenWithParm,
Close
With
Return
,OpenSheetWithParm,windowname.OpenUserObjectWithParm 等都有
一个
在进行
窗口
操作(打开或者关闭)时存入Message消息对象的参数parameter或
return
value。
推选
数据
库设计PPT资料.ppt
【推选】
数据
库设计PPT资料.ppt
powerbuilder常用函数清单
这是powerbuilder的一些常用的函数和语句清单.
PowerBuilder
1,085
社区成员
66,436
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章