VFP中set filter to 的使用注意事項

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時,就把變量內容全部讀出,變成了字符串,這樣就不存在每次要訪問變量的問題

 

發佈了57 篇原創文章 · 獲贊 7 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章