『壹』 pb数据窗口下拉过滤
要操作 DataWindowChild,你下拉的也是一个DW
用GetChild函数取得DataWindowChild
然后和普通的DW一样,filter 就可以了
例 dw_1 下的内 test 列的容 ddlb
DataWindowChild dwc_1
dw_1.getchild("test",dwc_1)
dwc_1.setfilter("过滤表达式")
dwc_1.filter()
『贰』 如何在PB的数据窗口中不显示重复的记录,例如按身份证号显示全部不重复的记录.(不要以身份证号建立主键)
这个问题不是pb的问题,而是sql语句的问题。
请使用group by定义你的查询分组
参考sql教材吧。
『叁』 关于pb多条件过滤的问题,急!!!
用拼写where 条件的方法.以下是思路和例子.
思路:首先得到数据窗口的原始数据源sql语句.譬如你要对dw_1的数据进行多条件过滤.就在事件中写:
string ls_sql
ls_sql = dw_1.getsqlselct()//此时ls_sql变量得到dw_1的sql语句.
然后将条件拼成一个and 语句 例子:
譬如年龄字段,性别字段和班级字段.(这只是个例子,希望你能明白意思,然后为你所用)
分别为age,sex,class
此时用户已经选完了这三个条件的值(此处可以多种方法实现.1让用户直接输入。单行编辑框 2。多选框。3.下拉列表框.等等)
譬如用户选择的是age = 24,sex = 1(1-为男,0为女),class = 2
此时拼串!
例子:
string ls_sql,ls_sql_new,ls_condition
string ls_age,ls_sex,ls_class
ls_sql = dw_1.getsqlselect()//得到默认的数据窗口sql语句。
ls_age = '24'
ls_sex ='1'
ls_class ='2'
ls_condition =" age='"+ls_age+"' and sex = '"+ls_sex +"' and class = '"+ls_class+"'"//条件拼写完成
ls_sql_new = ls_sql +" where "+ ls_condition //这里注意拼写的时候where 后面 and 前后都要加个空格!
dw_1.setsqlselect(ls_sql_new)//将拼成的串 设置成新的数据窗口sql语句 此时就是多个过滤条件的结果!
『肆』 pb 的数据窗口报表 的过滤问题,怎么使用pos函数进行过滤
设置一个filter
这个不用pos
在cb中回clicked()写:答
string ls_filter
ls_filter= "contract_no like '%-%'"
dw_3.setfilter(ls_filter)
dw_3.filter()