set filter的作用我就不多说了.但如果set filter时条件中含有变量,那就要注意了....例
Select 0
use C_Lb &&打开表
Lb=Rszd_Lb_F &&取字段值
use
select C_Detail &&打开另一个要set filter的表
Set filter to Rszd_Lb_F=Lb
假设上面代码在button1中执行.
而在button2中如下代码
private all
Select C_Detail
replace Xz_F with 1 all
这样就会报错..说找不到变量Lb
为什么这样呢.....以下是我的估计
由于Set filter的条件只是起筛选作用,加了后,每次打开该表就会先通过该条件把数据屏蔽不要的部份.
而filter中条件语句中含有变量,那么每次调用该表时,该变量都要存在,否则无法起到屏蔽数据作用....而报找不到变量的错.
所以要实现上面的功能..要把button1的代码更改如下:
Select 0
use C_Lb &&打开表
Lb=Rszd_Lb_F &&取字段值
use
h1="Rszd_ Lb_F='"+Lb+"'"
select C_Detail &&打开另一个要set filter的表
Set filter to &h1.
因为用了宏替换,所以在set filter时,就把变量内容全部读出,变成了字符串,这样就不存在每次要访问变量的问题