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

如题所述

第1个回答  2011-07-21
你的另一个数据窗口是什么类型,还有,另一个数据窗口的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点击行的内容追问

不行啊,我试了最后那种方法   dw_2.emp_name[1] = dw_1.emp_name[row]  这一句报错啊!!!

追答

object
dw_2.object.emp_name[1] = dw_1.object.emp_name[row]
不好意思,不小心忘写上了。

本回答被提问者采纳

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

PB求助:点击数据窗口中一行,将该行的某列数据显示在旁边的单行编辑框里...
在数据窗口的rowfocuschanged()中写入:sle_sname.text=GetItemString(currentrow,1)currentrow是rowfocuschanged()的一个入口参数。以后要细心才是。不过关于以上的具体错误在哪里,还请遇到过的指导解决办法的多多指教。

pb中怎么实现把一个窗体里的数据窗口的一行数据传递到另一个窗体中的...
两个数据窗口的结构是不是一样的?如果是一样的,可以用sharedata。dw_1.sharedata(dw_2),使dw_2共享dw_1的数据,这个要求二者的select字段要完全一样才可以。然后在dw_1的clicked事件里,写,dw_2.scrolltorow(row),这样二者始终保持在相同行上了。或者可以使用rowscopy函数。也要求两者的字段对...

PB中怎么将一个数据窗口中选中的列的数据放进另一个数据窗口
首先设置源数据窗口的dragauto属性为TRUE。比如在窗口的open中写dw_1.dragauto=true 在目标数据窗口的dragdrop事件中,写如下代码 DataWindow ldw_Source IF source.TypeOf() = DataWindow! THEN \/\/判断源是不是数据窗口 ldw_Source = source long ll_row ll_row = ldw_Source.GetRow() \/\/获取源...

PB中怎么编程将一个数据窗口中选中的列放入另一个数据窗口中
rowscopy()函数就行了

pb从一个数据窗口移动选中的多行到另一个数据窗口
一、如果两个数据窗口结构一样的话可以用rowscopy rowscopY语法:(也可以PB帮助中搜索使用方法)dw_1.RowsCopy (开始行, 结束行, 源数据缓冲区, 目标DW, 要放置在目标DW哪一行之前, 目标缓冲区)二、如果仅复制一部分数据的就只有getitemXX,---and---setitemXX int li_row,llfindrow llfindrow = ...

在PB中如何把数据库中行的数据,在数据窗口中以列显示
可以自己写代码来做。先用一个datastore或者隐藏的dw数据窗口把原有数据取出来放到这里,然后再设计一个前台展示的数据窗口。然后逐个字段处理,一个字段就增加一行。

如何将pb中数据窗口的一列id数值显示成另一个表中此id对应的名称...
这个是数据库窗口的编辑风格(editstyles)例表T1 表T2 1、新建一个dw,数据源为T2 2、新建编辑风格(editstyles) es_t1 打开database > extended attributes > edit styles es_t1的设置如下 3、在dw中使用editstyles,新建DW,数据源为T1 选择要关联的列,在edit属性设置stylename 选择上一步的es_...

PB 当单击数据窗口中的某一行时,可以得到那一行相应的数据吗?
首先确定,代码肯定是要写在数据窗口的单击事件中。即clicked事件中,这样才会单击数据窗口时触发。得到这一行的相应的数据,需要逐个的获取,先根据要得到的数据定义变量,变量的类型要与数据一致。比如这一行有emp_id, emp_name, salary, dept_id四个字段,分别对应的类型是:字符型,字符型,带两位...

PB中在数据窗口dw_1点击某一行,dw_2会显示相对应的数据,怎么写
在dw_1的clicked事件中根据row对dw_2做处理就是了。row是鼠标点击dw_1时鼠标所在行,例如点击第一行则row为1,标题行和空行时row为0。得到行号了那么就能得到dw_1点击的行的数据,那么就可以根据这个对dw_2做检索了。

相似回答