string r_bh,r_mc
choose case ddlb_spbh.text
case"商品编号"
dw_kcgrid.setfilter("spbh=string('"+r_bh+"')")
case"仓库名称"
dw_kcgrid.setfilter("ckmc=string('"+r_mc+"') ")
end choose
dw_kcgrid.retrieve()
------解决方案--------------------
首先,r_bh应当先赋值,
r_bh=?
若没有赋值,r_bh为空字符,当然筛选不出结果,
其次,
如果商品编号是integer 或long 型 则表达式应为
dw_kcgrid.setfilter("spbh="+r_bh)
如果商品编号是字符型 则表达式应为
dw_kcgrid.setfilter("spbh='"+r_bh+"'")
并且,
随后应执行dw_kcgrid.filter(),不然光设置筛选条件并没有执行筛选
仓库名称也是一样。
再则 dw_kcgrid.retrieve()放在前面是否好一些,先dw_kcgrid.setfilter("")
,dw_kcgrid.filter()取消所有筛选条件检索,待检索出数据后再行筛选不迟。
原代码改为
string r_bh,r_mc
r_bh='12345' //商品编号实际值
r_mc='东2库'//仓库名称实际值
dw_kcgrid.retrieve()
dw_kcgrid.setfilter("")
dw_kcgrid.filter()
choose case ddlb_spbh.text
case"商品编号"
dw_kcgrid.setfilter("spbh='"+r_bh+"'")
case"仓库名称"
dw_kcgrid.setfilter("ckmc='"+r_mc+"' ")
end choose
dw_kcgrid.filter()