回 帖 发 新 帖 刷新版面

主题:谁能举个关于setfilter()filter()的简单例子,谢谢

谁能举个关于setfilter()filter()的简单例子,谢谢

回复列表 (共7个回复)

沙发

当需要过滤的字段的类型为字符串类型的时候:
string    ls_date

ls_date = left(em_1.text,4)+mid(em_1.text,6,2) 

dw_1.reset()
dw_1.setfilter("summonth = '"+ls_date+"'")
dw_1.filter()
dw_1.retrieve()
当需要过滤的字段的类型为数字类型的时候

integer  li_num

li_num = integer(sle_1.text)
dw_1.reset()
dw_1.setfilter("idno = "+string(li_num)+"")
dw_1.filter()
dw_1.retrieve()

板凳

请问最后面加dw_1.retrieve()用来做什么?

3 楼

setfilter()filter() 这两个是设置检索的规则

retrieve()是真正实现检索操作

4 楼

用不着加上retrieve()

5 楼

retrieve()不需要,dw_1.filter()后将直接对数据窗口dw_1中已经存在的数据,根据刚刚setfilter的条件进行过滤!

6 楼

[quote]setfilter()filter() 这两个是设置检索的规则

retrieve()是真正实现检索操作[/quote]

这位同志的说法不是很准确,稍微做更正:

setfilter()是重新设置过滤条件。
filter()按过滤条件重新过滤。
 
过滤条件指的是对已经检索出来的数据进行过滤筛选,而不是检索规则(检索条件),检索条件一般都是在数据窗口中定义的,另外也可以通过对数据窗口对象属性的修改或者数据窗口控件函数setsqlselect()(这个函数有局限性)来修改动态检索规则(即检索条件)。

7 楼

谢谢纠正

filter()是根据setfilter()重设的条件更新主缓冲区和过滤缓冲区的数据

窗口控件只显示主缓冲区的数据

我来回复

您尚未登录,请登录后再回复。点此登录或注册