专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > PB

PB过滤怎么实现

发布时间:2011-06-29 19:17:07 文章来源:www.iduyao.cn 采编人员:星星草
PB过滤如何实现?
“ customer: 代理商表
  id int //代理商编号
  name varchar(100) //代理商名称
  area_id varchar(10) //所在区域编号
  if_oem int  
production产品表:
id int //产品编号
name varchar(20) //名称
price float //标准价格  
 sale_his销售登记表:  
sale_time date //销售时间
  customer_id int //代理商编号
  production_id int //产品编号
s_price float //销售价格
  remarks varchar(100) //备注

界面要求:w_query,销售记录查询,查询条件为:销售时间段,代理商,产品
  要求点击查询结果的某个列名即按照该列排序。
”界面有三个输入框:销售时间段,代理商名称(单行编辑框),产品名称(单行编辑框),如何实现按着三个条件模糊查询?我
代理商查询:
ls_c_filter = "customer.name ='" +sle_dls.text +" ' "//代理商名称
//ls_c_filter = string (li_c_filter)
dw_query.setfilter (ls_c_filter)
dw_query.filter()
产品查询:
ls_p_filter = "customer.name ='" + sle_cp.text +" ' "//产品名称
//ls_c_filter = string (li_c_filter)
dw_query.setfilter (ls_p_filter)
dw_query.filter()
查询结果按钮:
 ll_row = 1
 
 for li_n = 1 to dw_query.rowcount()

 ld_xssj = dw_query.getitemdate(ll_row, 'sale_time')
 li_dls = dw_query.getitemnumber(ll_row, 'customer_id')
 li_cp = dw_query.getitemnumber(ll_row,'production_id')
 lf_price = dw_query.getitemdecimal(ll_row,'s_price')
 ls_remarks = dw_query.getitemstring(ll_row, 'remarks')


dw_query.settransobject(sqlca)
ld_rq1 = datetime(date(left(dp_1.text,10)),time(right(dp_1.text,8)))//开始时间
ld_rq2 = datetime(date(left(dp_2.text,10)),time(right(dp_2.text,8)))//结束时间
dw_query.retrieve(ld_rq1,ld_rq2)
 commit;
 
if sqlca.sqlcode <> 0 then
ls_errtext = sqlca.sqlerrtext 
rollback;
messagebox("提示!","保存失败!原因:"+ls_errtext)
return  
end if 
ll_row = ll_row + 1 
next;
这样写代码有何不妥,没有错误,但运行不出结果,请各位大侠指点,在线等待,谢谢各位!

------解决方案--------------------
检查一下你的datawindow里的column specification里的列名,你的filter的名字应该有问题,应该跟datawindow的列名一致,例如:
C/C++ code

//代理商查询:
ls_c_filter = "customer_name ='" +sle_dls.text +" ' "//代理商名称
//ls_c_filter = string (li_c_filter)
dw_query.setfilter (ls_c_filter)
dw_query.filter()
//产品查询:
ls_p_filter = "production_name ='" + sle_cp.text +" ' "//产品名称
//ls_c_filter = string (li_c_filter)
dw_query.setfilter (ls_p_filter)
dw_query.filter()

------解决方案--------------------
setfilter写在retrieve后面,模糊查询用like函数,
你没有sql语句就不要用sqlcode判断,更新的话用update,=1为成功
另三个条件是三个都要输还是任选
三个都要的话用retrieve就行了,数据多的话setfilter效率太低了
任选的话用动态sql,
getsqlselect,setsqlselect查一下这两个函数的帮助
------解决方案--------------------
排序的话用
dw_name.setsort(列名 a/d)
dw_name.sort()
------解决方案--------------------
setfilter(string)
里面只能是string
li_p_filter="production_id ='"+ this.text+ "'"
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: