当前位置: 代码迷 >> PB >> DDDW自动过滤符合值 光标的有关问题
  详细解决方案

DDDW自动过滤符合值 光标的有关问题

热度:46   发布时间:2016-04-29 06:47:03.0
DDDW自动过滤符合值 光标的问题
dw_1中有一个hs_no字段
在dw_1的editchanged事件中 如下代码
If dwo.name = 'hs_no' Then
dw_1.object.hs_no.dddw.showlist = true//显示下拉
Long ll_Found
   DataWindowChild ldwc_name
   This.GetChild('hs_no',ldwc_name)
   ldwc_name.SetTransObject(SQLCA)
   
If len(data) = 0 Then  
      ldwc_name.SetFilter('') ///清除过滤
      ldwc_name.Filter()
      Return
   End If 
   ldwc_name.SetFilter("hs_name like '%"+data+"%'")
   ldwc_name.Filter()
if ldwc_name.rowcount()=0 then return
ldwc_name.SelectRow(1,TRUE)     //滚到制定行

end If 


现在问题是 检索符合的条件是没问题的 但是 一旦在hs_no中输入任何的东西光标就会往左移动一格
例如:输入a 光标往左移动一格 再输入b 再移动一格 就变成ba 在输入c在移动一格 就变成了cba
如果 去掉这一行代码的话
 dw_1.object.hs_no.dddw.showlist = true//显示下拉
就不会移动光标 
但是 下拉框也不显示啦,,郁闷。。。怎么办???新手。。。求解!!!

------解决方案--------------------
可以先判断一下dw_1.object.hs_no.dddw.showlist是否true,再确定设置,如果本身已经是显示下拉的话就无需重新再设置一下
------解决方案--------------------
1.获取光标所在位置
long li_pos
li_pos = this.selectedstart()
2重新定位光标位置
Dw.SelectText(li_pos,0)