分类: WINDOWS
2008-06-01 19:31:19
ls_filter = "cust_qty > 100 and cust_code >30"
dw_Employee.SetFilter(ls_filter)
dw_Employee.Filter( )
例2:必须使用括号的情况。下面的脚本在逻辑上看起来没有什么问题:
String ls_filter
ls_filter = “name like ‘张%’ and article_title like ‘%计算机%’”
dw_1.SetFilter()
dw_1.Filter()
实际上,上面的程序是不能正确执行的。将过滤规则作如下改动就可以了:
ls_filter = “(name like ‘张%’) and (article_title like ‘%计算机%’)”
例3:取消过滤规则。下面两个语句都能实现:
语句1:dw_1.SetFilter(“”)
语句2:dw_1.SetFilter(“1=1”)
例4:下面的语句在运行时可以让用户自己指定过滤规则:
String ls_null
SetNull(ls_null)
dw_1.SetFilter(ls_null)
dw_1.Filter()
例5:下面脚本可以判断数据窗口中是否有主键重复的数据。假设数据窗口中的主键是dept_id:
string ls_fieldname//主键名称
long ll_rc//数据窗口中总的数据行数
ls_fieldname = "dept_id"
dw_1.SetFilter("1=1")//取消过滤规则,显示全部的数据
dw_1.Filter()//过滤
ll_rc = dw_1.RowCount()//保存数据行数
dw_1.SetSort(ls_fieldname + " A")//用主键进行排序
dw_1.Sort()
//下面语句是核心语句。该过滤规则的含义是:只显示相邻行不同的数据。
dw_1.SetFilter(ls_fieldname + " <> " + ls_fieldname + "[-1] or GetRow() =1")
dw_1.Filter()
if dw_1.RowCount() < ll_rc then
MessageBox("提示",ls_fieldname + "列中存在重复的数据!",StopSign!)
end if