改进VFP的Searchcla .VC

文章作者 100test 发表时间 2007:10:10 11:23:24
来源 100Test.Com百考试题网


使用过中文VFP的朋友都知道利用VFP提供的WIZARDS类库中的searchform.vcx和searchclass.vcx可以创建一个通用查询表单。这个查询非常通用,操作界面也非常简单明了。
但是,此表单有一个缺憾,就是此表单的字段对话框就只能显示字段名,如果数据表的字段名为英文时,显示的字段名对操作人员而言就显的不够清楚。我们一般在设计数据库时给每个字段加以中文标题,用于对字段名的详细说明,就像用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
  后加上以下程序段:
  *获取当前的数据表名
  tname=alias()
  *获取数据库名
  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]


相关文章


VF辅导:VFP编程的雕虫小技
VF辅导:节目播出通知单生成系统
VF辅导:恢复丢失了的FPT文件
VF辅导:让你的程序更专业
改进VFP的Searchcla .VC
用VFP6.0显示MSGRAPHIC图表
VFP中使用Grid控件设计通用录入界面
用DEPHI、VFP自动检测计算机设备
在VFP中调用API实现拨号上网
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛