PB SetFilter()函数

发布于 2015-02-06 14:39:07 分类:技术笔记 阅读(1651)  

函数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()

   只要将要查询的字段转换成字符类型就可以了。