PB中如何使用拼音进行模糊查询

2025-03-03 19:06:23
推荐回答(2个)
回答1:

①在where后面写 z% 就代表开头字母是z的意思 !
如果在pb的脚本区编写的话 和sqlserver中还不太一样.
给你说下思路(这是我再别的地方回答人的思路,不懂还可以问我):
这是一种高级查询方法,在数据很多的时候查询条件尤为突出!
首先得到数据窗口的原始数据源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语句 此时就是多个过滤条件的结果!

回答2:

给你个代码
最好是有你设的名称代码列,这样检索起来效率,根据数据窗口中的代码列执行增量查询
在SLE控件中新建pbm_enchange自定义事件函数 然后在里面写入
if sle_1.text='' then
dw_1.setfilter("")
dw_1.filter()
elseif sle_1.text<>'' then
dw_1.setfilter("pm_pym like '"+upper(sle_1.text)+"%'")
dw_1.filter()
end if