PB 当单击数据窗口某一行时,当前数据行数据在另一个数据窗口中显示 , 请教各位高手, 怎么实现
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点击行的内容
如果是一样,可以使用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点击行的内容
追问
不行啊,我试了最后那种方法 dw_2.emp_name[1] = dw_1.emp_name[row] 这一句报错啊!!!
追答
object
dw_2.object.emp_name[1] = dw_1.object.emp_name[row]
不好意思,不小心忘写上了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询