怎么设置多重过滤条件

如何设置多重过滤条件?
刚学PB没多久,遇到一个问题,希望各位前辈指点
我有一个数据窗口,包括name、sex、age、class这几个列
想设置过滤的功能
如果在age项 输入 18 就 输出18岁的人
再在sex项中 输入 男 就输出18的男生

这几个过滤条件 不需要同时输入 ,输入一项自动输出结果
并且 不考虑输入的顺序

 string ls_filter
 ls_filter = 'Describe("' + "evaluate('lookupdisplay(age)'," + '" + string(getrow ()) + ")") like "%'+sle_3.Text+'%"'
 dw_1.SetFilter(ls_filter)
 dw_1.Filter()

我在每个sle中是这么写的,可是过滤出来有问题
请各位前辈指点

------解决方案--------------------
ls_filter = "(arg1 like '%" + sle_1.text + "%')"
IF not sle_2.text = "" THEN
   ls_filter = ls_filter + " and (arg2 like '%" + sle_2.text + "%')"
END IF
dw_1.SetFilter(ls_filter)
dw_1.Filter()
怎么设置多重过滤条件
------解决方案--------------------
新建数据窗口的时候可以在条件检索中选择按多个条件检索。
------解决方案--------------------
没看懂怎么设置多重过滤条件
------解决方案--------------------
给你提供一个新思路。首先,在我从业的时间内,我从来不用filter,因为效率不好。在此我就不解释这个了。对于动态条件检索,我惯用的方法是使用数据窗口的2个函数,一个是getsqlselect,另一个是setsqlselect。前一个是用来获取数据窗口原始语法的,后者是用来组后动态and条件重设数据窗口语法的,重设语法后,立即执行检索,在得到查询结果后,再次调用setsqlselect将原始语法设置回去,以便下次执行。其中有一点需要注意的是,在你用getsqlselect提取数据窗口语法之前一定要让数据窗口绑定事物,就是那句dw.settransobject()。否则你会得到不一样的sql。
------解决方案--------------------
引用:
给你提供一个新思路。首先,在我从业的时间内,我从来不用filter,因为效率不好。在此我就不解释这个了。对于动态条件检索,我惯用的方法是使用数据窗口的2个函数,一个是getsqlselect,另一个是setsqlselect。前一个是用来获取数据窗口原始语法的,后者是用来组后动态and条件重设数据窗口语法的,重设语法后,立即执行检索,在得到查询结果后,再次调用setsqlselect将原始语法设置回去,以便下次执行。其中有一点需要注意的是,在你用getsqlselect提取数据窗口语法之前一定要让数据窗口绑定事物,就是那句dw.settransobject()。否则你会得到不一样的sql。
正解
------解决方案--------------------
顶楼上的,通过getsqlselect 以及set sqlselect减少网络流量