PB 当单击数据窗口某一行时,当前数据行数据在另一个数据窗口中显示 , 请教各位高手, 怎么实现

2024-12-26 18:33:29
推荐回答(1个)
回答1:

你的另一个数据窗口是什么类型,还有,另一个数据窗口的dataobject的内容(就是select的字段数量和顺序)和当前的是否一样。
如果是一样,可以使用rowscopy。
比如点dw_1,在dw_2显示。
在dw_1的clicked事件里写:
dw_2.reset() //清空dw_2
this.rowscopy(row,row,primary!,dw_2,1,primary!)//复制点击行到dw_2。

另外,如果你的dw_2是freedom,这个更好,可以直接使用dw_1.sharedata(dw_2),写在open里或者dw_1的retrieveend(dw_1执行查询后触发的事件)里,表示两个数据窗口贡献数据。dw_1是看到所有的,用grid类型,就是一页多行,而dw_2是freedom,是一页一行,这样点击dw_1,dw_2同步显示。在dw_1的clicked事件里写dw_2.scrolltorow(row)就行了。

还有,如果两个dataobject的select字段不一样,那么就只能使用getitem和setitem了。
比如dw_1里面有emp_id, emp_name,而dw_2只有emp_name。
在dw_1的clicked事件中写:
dw_2.reset() //清空dw_2
dw_2.insertrow(0) //增加行
dw_2.emp_name[1] = dw_1.emp_name[row] //设置dw_2的内容等于dw_1点击行的内容