PB中如何使用拼音进行模糊查询
2个回答
展开全部
①在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语句 此时就是多个过滤条件的结果!
如果在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语句 此时就是多个过滤条件的结果!
更多追问追答
追问
z%我知道 这个是模糊查询 可能我提问不是太清楚 看了你回答这么多 我也怪不好意思的
我的意思是这样 例如我要查询的人名字叫‘张三’ 那么我在sle控件里面输出zs 这时候应该要能检索出‘张三’这个人
我现在用的是比较笨的方法 例如 表中有一个字段为 姓名 然后我再添加一个字段 叫做 ‘姓名代码’
张三 对应的姓名代码 就是‘zs’ 李四代码就是 ‘ls’ 然后使用模糊查询 也就是你所说的姓名 like %str%
追答
嗯?现在的问题是什么?
展开全部
给你个代码
最好是有你设的名称代码列,这样检索起来效率,根据数据窗口中的代码列执行增量查询
在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
最好是有你设的名称代码列,这样检索起来效率,根据数据窗口中的代码列执行增量查询
在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
追问
不是这个意思。算了我自己想办法吧。谢谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询