setfilter里面两个检索条件不行么

iwangh 2009-05-26 09:00:58
比如:setfilter(colname1="11" and colname2="232")
这样不行么?是不是只能一个条件?那我想检索两个条件怎么办?
...全文
178 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwangh 2009-05-26
  • 打赏
  • 举报
回复
不好意思啊,分少了。热心的朋友多,不能都给分了。就给两个帮助最多的朋友了。其他朋友不好意思啦。谢谢啊
iwangh 2009-05-26
  • 打赏
  • 举报
回复
谢谢 sdhylj ,我想问的问题不是这个。呵呵
iwangh 2009-05-26
  • 打赏
  • 举报
回复
我终于搞明白了。在一楼提问题时,没考虑到两个检索条件是要用双引号一起括起来的。毕竟在setfilter参数是string类型的。
在9楼,我的代码中,多谢newease提示,有like的检索条件也是要用括号把两个检索条件分别括起来。这样就没问题了。

我还是基本功不扎实啊,有问题就急躁,不能静下心来看。其实这两个问题别人一点就明白了。


谢谢大家了。也谢谢newease啦。
青锋-SS 2009-05-26
  • 打赏
  • 举报
回复
如果sle_1.text不为空但sle_2.text为空的话你的代码就有问题,过滤条件最后多了一个and
iwangh 2009-05-26
  • 打赏
  • 举报
回复
实在不行了。我懂各位上面说的意思,可是请帮我看看下面我的代码,为什么就是不行呢

ls_str=trim(sle_1.text)
if ls_str<>"" and not isnull(ls_str) then
ls_filter="trim(upper(tab_element_lin_name)) like '%"+upper(trim(ls_str))+"%' and "
end if

ls_str=trim(sle_2.text)
if ls_str<>"" and not isnull(ls_str) then
ls_filter=ls_filter+" upper(trim(tab_element_lin_model)) like '%"+trim(upper(ls_str))+"%' "
end if

dw_1.setfilter(ls_filter)
dw_1.setredraw(false)
dw_1.filter()
dw_1.setredraw(true)


运行结果提示:expecting true/false expression。
青锋-SS 2009-05-26
  • 打赏
  • 举报
回复
如果colname1,colname2是数值型,就没必要在两端加引号


setfilter("colname1=11 and colname2=232")

即可
riyj 2009-05-26
  • 打赏
  • 举报
回复
setfilter('colname1="11" and colname2="232"')
青锋-SS 2009-05-26
  • 打赏
  • 举报
回复
你写的格式不对,setfilter()函数的参数只是一个字符串,多个条件同时使用可以用and/or联系,这个and/or也是字符串的一部分.

dw_1.setfilter("colname1=~"11~" and colname2=~"232~"")
dw_1.setfilter("colname1='11' and colname2='232'")
dw_1.setfilter('colname1="11" and colname2="232"')
dw_1.filter()
newease 2009-05-26
  • 打赏
  • 举报
回复


如果过滤条件为字符型变量

string f_name,l_name
f_name='Fran'
l_name='Whitney'

dw_1.setfilter("emp_fname='"+f_name+"' and emp_lname='"+l_name+"'")
dw_1.filter()
gulu523 2009-05-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 newease 的回复:]
楼主的语句有问题

写法应该 如下

dw_1.setfilter("emp_fname ='Fran' and emp_lname='Whitney'")

dw_1.filter()
[/Quote]

UP
eviler 2009-05-26
  • 打赏
  • 举报
回复
可以的

是你语句设置的有问题
newease 2009-05-26
  • 打赏
  • 举报
回复
楼主的语句有问题

写法应该 如下

dw_1.setfilter("emp_fname ='Fran' and emp_lname='Whitney'")

dw_1.filter()
newease 2009-05-26
  • 打赏
  • 举报
回复
过滤条件可以设置多个(可以是两个或两个以上)


如果出现错误,请指明具体是什么错误,可能能设置过滤条件有问题

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧