setfilter
描述
为数据窗口控件提供过滤标准。
语法
integer dwcontrol.SetFilter ( string format )
返回值
成功返回1,失败返回-1。该值通常不用。
用法:
一个数据窗口控件通常把明确的过滤标准作为它定义的一部分。数据检索后,不符合标准的数据立即从主要缓冲区送到过滤缓冲区。
setfilter方法取代已经存在的过滤标准—只要它们被拥有新标准的数据窗口对象定义。通过调用filter方法应用过滤标准并把不符合标准的数据送到过滤缓冲区。
过滤表达式由列,关系操作符,被比较的列值的相反值组成。布尔表达式被逻辑操作符AND和OR连接。
典型的例子:
item_id > 5
NOT item_id = 5
(NOT item_id = 5) AND customer > "Mabson"
item_id > 5 AND customer = "Smith"
#1 > 5 AND #2 = "Smith"
过滤表达式是一个字符串并且不能包含变量。尽管如此,你可以使用脚本中的变量值来建立字符串。在过滤字符串中,字符串常量必须用引号括起来。
删除过滤:要移除过滤,调用setfilter通过使用空字符串(“”)然后调用filter。在过滤缓冲区中的数据行将被重新存储在主缓冲区中并存放在主缓冲区中已有的数据后面。
例:
这个例子将为dw_Employee定义一个值为format1的过滤表达式:
dw_Employee.SetFilter(format1)
这个例子定义一个表达式并且把它作为dw_Employee的过滤条件。通过使用该条件,在cust_qty列值超过100并且cust_code列值超过30的数据行被显示。接下来调用filter来应用该过滤条件。
string DWfilter2
DWfilter2 = "cust_qty > 100 and cust_code >30"
dw_Employee.SetFilter(DWfilter2)
dw_Employee.Filter( )
这个例子首先定义一个过滤条件,只有当dw_Employee的emp_state等于var1的时候数据被显示。该例子的setfilter的emp_state值为ME:
string Var1
Var1 = "ME"
dw_Employee.SetFilter("emp_state = '"+ var1 +" '")