PB SetFilter()函数
函数SetFilter的作用是为数据窗口、DataStore或者下拉子数据窗口设置过滤规则。过滤规则是一个能够返回True或者False的表达式。该函数的作用仅仅是设置过滤规则,并不真正过滤。只有在设置完过滤规则之后,才能调用Filter,才能够体现过滤规则的作用。函数Filter的作用就是,使用SetFilter函数设置的过滤规则对数据窗口中Primary和Filter缓冲区中的数据的合集进行过滤,能够让过滤规则表达式取值为True的数据行显示出来,否则就进入到数据窗口的Filter缓冲区。被过滤掉的数据其修改状态不改变,所以在允许编辑、修改的数据窗口上进行过滤,调用函数Update时不必担心过滤掉的数据的保存。
在清楚了上述两个函数之后,我们介绍一点点常见问题:
1、显示所有的数据:
dw_1.SetFilter('1=1')
dw_1.Filter()
2、不显示任何数据:
dw_1.SetFilter('1< 0')
dw_1.Filter()
3、存在Like并且有多个条件时:
下面表达式是错误的:
dw_1.SetFilter("name like '张%' and sex='男'")
dw_1.Filter()
下面表达式是正确的:
dw_1.SetFilter(sex='男' " and" name like '张%')
dw_1.Filter()
下面的表达式也是正确的:
dw_1.SetFilter("(" + lookforcondition + ") and (" + nf + ")")
dw_1.Filter()
4、使用日期类型的数据:
dw_1.SetFilter("string(csrq_date,'yyyymmdd') = '" + ls_filter + "'")
dw_1.Filter()
只要将要查询的字段转换成字符类型就可以了。