我有三个数据窗口,我想做出在一个窗口中选中一行,在另外两个窗口中选出相关我行,窗口是grid型的,并选中的行都用等定的标志
这不就是一个过滤的问题么。
先得到当前数据窗里对其它两个DW有效的字段值。然后根据这个值去搜索,然后设置高亮就可以了
find(expression,startrow ,endrow)
在dw_1的clicked event:
this.SelectRow ( 0, FALSE )
this.SelectRow ( row, TRUE )
this.setrow(row)
ls_name = this.object.name[row]
ll_find = dw_2.find("name = "+ls_name+"",1,dw_2.rowcount())
if ll_find > 0 then
dw_2.selectrow(0,false)
dw_2.selectrow(ll_find,true)
dw_2.setrow(ll_find)
end if
ll_find = dw_3.find("name = "+ls_name+"",1,dw_2.rowcount())
if ll_find > 0 then
dw_3.selectrow(0,false)
dw_3.selectrow(ll_find,true)
dw_3.setrow(ll_find)
end if
那三个数据窗口的数据共享一下不就可以了
然后高亮度显示
this.SelectRow ( 0, FALSE )
this.SelectRow ( dw_1.getrow(), TRUE )
this.setrow(dw_1.getrow())
你要做的工作
1、dw_1,dw_2,dw_3存在着内在的联系,即dw_2,dw_3可根据dw_1的当前行某一个值进行检索
dw_2.retrieve(dw_1中当前行的某个值)这需要在建立数据窗口时增加检索参数,并设置好
dw_3.retrieve(dw_1中当前行的某个值)
2、将三个数据窗口的列在backcolor或textcolor设置数据窗口颜色设置
在每一个列的对应属性中写if(getrow() = currentrow(),当前行的颜色,其它行的颜色)
颜色可为rgb(0,0,0)格式,或直接用long 值替换
举例检索参数为ID号
在dw_1的 clicked中写
dw_2.retrieve(this.object.id[row])
dw_3.retrieve(this.object.id[row])
这样就可实现楼主的例子!