hur.cn - 华软网

 热门搜索

下拉数据窗口问题(在线等!)

  作者:未知    来源:网络    更新时间:2018/1/1
我的下拉数据窗口式Always Show List,Alow Editing格式,数据源中其中有一个字段是汉字拼音的第一个字母,我通过在输入"a",在下拉数据窗口中检索到如下两条记录
/////////////////////////////////////////////
助记符    商品编码     商品名称   。。。。
  a         1           苹果
  a         2           橘子
//////////////////////////////////////////////
然后我选中第二记录,点击回车键,本来在父数据窗口中应显示
  a         2           橘子
但实际上显示的是
 a         1           苹果
那位高手遇到过同样的问题,请指点如何才能选中第一条记录


------华软网友回答------
纠正:
那位高手遇到过同样的问题,请指点如何才能选中第一条记录
改为:
那位高手遇到过同样的问题,请指点如何才能选中第二条记录
------华软网友回复------
回车事件后边有return 1吗
------华软网友回复------
哦!终于有人回答了,谢谢先
我加过了,但还是不行
------华软网友回复------
先在ue_keydown()事件中dw_1.accepttext(),然后在itemchanged()事件中dw_furit.retrieve(a)
就可以的啊
   能不能看看楼主的代码
------华软网友回复------
可以!等一会,我沾出去
------华软网友回复------
不能用回车键在取值(除你在数据窗中定义了回车移动焦点功能,否则,回车的操作是跳转到下一行),所以你可用鼠标选取或将回车定义为移动焦点功能
------华软网友回复------
long       ll_rows//记录数
dec        lc_qty//盘点数量
string     ls_enter//输入内容
long       ll_sp_id
/* ========================================== */
//焦点处于第二列时,按下回车键时的处理过程
/* =========================================== */
/* ========================================== */
//是否接受文本
/* =========================================== */
if this.AcceptText() < 0 then 
    Return 1 
end if
//this.accepttext()
if this.getcolumnname() = 'jbxx_infor_zjf' then
ls_enter = dw_1.object.jbxx_infor_zjf[this.getrow()]
if ls_enter = '' or isnull(ls_enter)  then 
this.setcolumn("jbxx_infor_code")
return 1
end if
ll_sp_id = long(ls_enter)
   if of_insertrow(ll_sp_id) = -1 then return 1
this.setcolumn("djlz_rkmxb_qty")
return 1
end if

if this.getcolumnname() = 'jbxx_infor_code' then//
ls_enter = dw_1.object.jbxx_infor_code[this.getrow()]
if ls_enter = '' or isnull(ls_enter)  then 
this.setcolumn("jbxx_infor_xsm")
return 1
end if
   ll_sp_id = long(ls_enter)
   if of_insertrow(ll_sp_id) = -1 then return 1
this.setcolumn("djlz_rkmxb_qty")
   return 1
end if

if this.getcolumnname() = 'jbxx_infor_xsm' then//1
ls_enter = dw_1.object.jbxx_infor_xsm[this.getrow()]
if ls_enter = '' or isnull(ls_enter)  then 
this.setcolumn("djlz_rkmxb_qty")
return 1
end if
   ll_sp_id = long(ls_enter)
   if of_insertrow(ll_sp_id) = -1 then return 1
this.setcolumn("djlz_rkmxb_qty")
return 1
end if

if this.getcolumnname() = 'djlz_rkmxb_qty' then 
   if this.object.djlz_rkmxb_qty[this.getrow()] >= 0 then
this.setcolumn("djlz_rkmxb_Price")
return 1
else
messagebox("宏力软件提示您","入库单价必须>=0 !",information!)
      Return 1
end if
end if


if this.getcolumnname() = 'djlz_rkmxb_price' then 
   if this.object.djlz_rkmxb_price[this.getrow()] >= 0 then
if this.GetRow() = this.RowCount() then
this.Insertrow(0) 
         this.ScrollToRow(this.GetRow() + 1) 
         this.SetColumn("jbxx_infor_zjf") 
      of_set_no()
         Return 1
end if
else
messagebox("宏力软件提示您","入库单价必须>=0 !",information!)
      Return 1
end if
end if
return 1


------华软网友回复------
以上是回车事件
------华软网友回复------
可能和drop down DW的字段的属性有关系
你看看你的设置
display column
和 data column
设置的对不对,
如果display column
对应的data column有多个值
当然这个column的值是第一个匹配的data column的值了
------华软网友回复------
可能和drop down DW的字段的属性有关系
你看看你的设置
display column
和 data column
设置的对不对,
如果display column
对应的data column有多个值
当然这个column的值是第一个匹配的data column的值了
------华软网友回复------
回复人: herrick(寻找七七)
如果display column
对应的data column有多个值
当然这个column的值是第一个匹配的data column的值了

////////////////////////////////////////////////////
我的display column 是允许重复,但data column 是唯一的




------华软网友回复------
问题就是同音字,只能选中第一条记录,我想选第二条记录,却办不到
------华软网友回复------
你的商品编码是唯一的吧?助记符不唯一对不对?在选取时通过确定子数窗被选中的行取商品编码检索信息
------华软网友回复------
qltouming(缘木渔人) ( ) 信誉:100  2005-02-22 10:35:00  得分: 0  
 
 
   你的商品编码是唯一的吧?助记符不唯一对不对?在选取时通过确定子数窗被选中的行取商品编码检索信息
  
 
/////////////////////////////////
对!就是这样的
------华软网友回复------
贴个示例代码给你看
string ls_specs,ls_unit,ls_name

int li_row
choose case dwo.name
case 'iod_productid'
li_row = idwc_name.getrow()
if li_row >0 then
ls_specs = idwc_name.getitemstring(li_row,'mtr_specs')
ls_unit = idwc_name.getitemstring(li_row,'mtr_unit')
ls_name = idwc_name.getitemstring(li_row,'mtr_name')
this.setitem(this.getrow(),'mtr_specs',ls_specs)
this.setitem(this.getrow(),'mtr_unit',ls_unit)
this.setitem(this.getrow(),'mtr_name',ls_name)
idwc_price.retrieve(data)
end if
end choose
------华软网友回复------
idwc_price.retrieve(data)
这句你就用不到了
------华软网友回复------
函数of_insertrow()的代码如下:
////////////////////////////////

string     ls_code
string     ls_xsm
long       ll_unit_id
string     ls_sp_name
string     ls_zjf
long       ll_sp_id
long       ll_rows
dec        lc_price

select zjf,code,xsm,name,dw,jj
into   :ls_zjf,:ls_code,:ls_xsm,:ls_sp_name,:ll_unit_id,:lc_price
from  jbxx_infor
where id = :al_id;
if sqlca.sqlcode = 0 then
   dw_1.object.jbxx_infor_zjf[dw_1.getrow()] = ls_zjf
   dw_1.object.jbxx_infor_code[dw_1.getrow()] = ls_code
   dw_1.object.jbxx_infor_xsm[dw_1.getrow()] = ls_xsm
   dw_1.object.jbxx_infor_name[dw_1.getrow()] = ls_sp_name
   dw_1.object.djlz_rkmxb_sp_id[dw_1.getrow()] = al_id
dw_1.object.jbxx_infor_dw[dw_1.getrow()] = ll_unit_id
dw_1.object.djlz_rkmxb_price[dw_1.getrow()] = lc_price
   return 0
else
   return -1
end if
------华软网友回复------
回复人: qltouming(缘木渔人) ( ) 信誉:100 
////////////////////
我研究研究!谢谢先
------华软网友回复------
收藏      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。