pb调用其他窗口事件问题
open(W_1)---> 点击W_1.cb_1 ----> OPEN(W_2) ----> 点击W_2.cb_1 ---> 此时想执行W_1.dw_1.retrieve()
请问怎么实现?
其实就是调用其他窗口事件的问题,为什么W_1明明是打开状态,处于W_2下方,但是Isvalid 是FALSE呢,只能调用当前活动窗口的事件吗?
[解决办法]
可以在w_2里面通过w_1.dw_1.retrieve()操作.
[解决办法]
估计你的w_1是用Open ( windowvar, windowtype {, parent } )来打开的,如果是这样,可以:
//全局声明windwo gw_to_open//w_1新建个事件ue_retrievedw_1.retreive()//打开w_1string ls_winls_win = 'w_1'open(gw_to_open, ls_win)//W_2.cb_1调用w_1的dw_1if isvalid(gw_to_open) then gw_to_open.dynamic event ue_retieve()
[解决办法]
如果真像你说的
isvalid(w_1)为false的话,你肯定不会是用open(W_1)来打开的,应该用到了变量
window lw_win
open(lw_win, "w_1")之类的
你需要先把原来的lw_win记录下来,如用全局变量或者实例变量,然后再引用即可
[解决办法]
可以在w_2.cb_1 w_1.dw_1.retrieve()操作.
if isvalid(w_1) then w_1.dw_1.retrieve()
[解决办法]
这样考虑
在点击W_1.cb_1
打开w_2的时候传参数过去
在w_1.cb_1的clicked事件写:
datawindow ldw
ldw = w_1.dw_1
openwithparm(w_2,ldw )
在w_2定义一实例变量datawindow idw
在w_2的open事件写:
idw = message.powerobjectparm
然后就可以在w_2的cb_1的clicked事件写:
idw.retrieve()
[解决办法]
retrieveend里作同步
[解决办法]
能不能调用w_1.dw_1.retrieve()取决于w_1是否是已创建的实例,与谁来调用无关
所以您要看看w_1是怎么打开的