使用過中文VFP的朋友都知道利用VFP提供的WIZARDS類庫中的searchform.vcx和searchclass.vcx可以創(chuàng)建一個通用查詢表單。這個查詢非常通用,操作界面也非常簡單明了。
但是,此表單有一個缺憾,就是此表單的字段對話框就只能顯示字段名,如果數(shù)據(jù)表的字段名為英文時,顯示的字段名對操作人員而言就顯的不夠清楚。我們一般在設計數(shù)據(jù)庫時給每個字段加以中文標題,用于對字段名的詳細說明,就像用BROW命令時,就可以用字段標題代替字段名一樣,我們也可以通過對searchclass.vcx的修改使其用字段標題代替字段名顯示,這樣就使得整個界面非常友好。
打開WIZARDS類庫,選擇searchclass.vcx。
一、修改cbofield1的init事件
在下列語句
FOR m.i = FCOUNT() TO 1 STEP -1
IF INLIST(aWizFList[m.i,2],"G","M","U") &&Memo field
=ADEL(aWizFList,m.i)
DIMENSION aWizFList[MAX(1,ALEN(aWizFList,1)-1),NUM_AFIELDS]
ENDIF
ENDFOR
后加上以下程序段:
*獲取當前的數(shù)據(jù)表名
tname=alias()
*獲取數(shù)據(jù)庫名
dname=cursorgetprop(database)
set database to (dname)
*獲取字段標題
for m.i=1 to alen(awizflist,1)
fname=tname+′.′+awizflist[m.i,1]
*將字段名保存
awizflist[m.i,16]=awizflist[m.i,1]
if !empty(dname)
fcaption=dbgetprop(fname,′field′,′caption′)
*用字段標題代替字段名
awizflist[m.i,1]=iif(!empty(fcaption),fcaption,awizflist[m.i,1])
endif
endfor
THIS.RowSourceType = 5
THIS.RowSource = "aWizFList"
THIS.VALUE = THIS.LIST[1,1]
將原最后一句THIS.VALUE=THIS.LIST[1]刪除
二、修改cbofield2的init 事件
THIS.RowSourceType = 5
THIS.RowSource = "aWizFList"
THIS.VALUE = THIS.LIST[1,1]
但是,此表單有一個缺憾,就是此表單的字段對話框就只能顯示字段名,如果數(shù)據(jù)表的字段名為英文時,顯示的字段名對操作人員而言就顯的不夠清楚。我們一般在設計數(shù)據(jù)庫時給每個字段加以中文標題,用于對字段名的詳細說明,就像用BROW命令時,就可以用字段標題代替字段名一樣,我們也可以通過對searchclass.vcx的修改使其用字段標題代替字段名顯示,這樣就使得整個界面非常友好。
打開WIZARDS類庫,選擇searchclass.vcx。
一、修改cbofield1的init事件
在下列語句
FOR m.i = FCOUNT() TO 1 STEP -1
IF INLIST(aWizFList[m.i,2],"G","M","U") &&Memo field
=ADEL(aWizFList,m.i)
DIMENSION aWizFList[MAX(1,ALEN(aWizFList,1)-1),NUM_AFIELDS]
ENDIF
ENDFOR
后加上以下程序段:
*獲取當前的數(shù)據(jù)表名
tname=alias()
*獲取數(shù)據(jù)庫名
dname=cursorgetprop(database)
set database to (dname)
*獲取字段標題
for m.i=1 to alen(awizflist,1)
fname=tname+′.′+awizflist[m.i,1]
*將字段名保存
awizflist[m.i,16]=awizflist[m.i,1]
if !empty(dname)
fcaption=dbgetprop(fname,′field′,′caption′)
*用字段標題代替字段名
awizflist[m.i,1]=iif(!empty(fcaption),fcaption,awizflist[m.i,1])
endif
endfor
THIS.RowSourceType = 5
THIS.RowSource = "aWizFList"
THIS.VALUE = THIS.LIST[1,1]
將原最后一句THIS.VALUE=THIS.LIST[1]刪除
二、修改cbofield2的init 事件
THIS.RowSourceType = 5
THIS.RowSource = "aWizFList"
THIS.VALUE = THIS.LIST[1,1]

