计算机二级:修改VisualFoxPro类库实现按标计算机二级考试

文章作者 100test 发表时间 2009:07:25 10:45:45
来源 100Test.Com百考试题网


  VisualFoxProForWindows以其面向对象编程和可视编程技术已成为软件开发人员首选的开发工具之一。它提供的wizstyle.vcr类库中所包含的丰富的类,使软件开发更加容易和方便。
  Searchclass(查询)是wizstyle.vcr类库中的一个类,也是对数据进行基本操作必不可少的、最常使用的类之一,用它生成的查询界面中,直接用字段名作为查询的提示信息进行查询,这对最终用户来说是不合适的,因为最终用户并不能根据字段名来了解字段的真正含义。对于数据库中的表,VFP提供了字段描述项"标题(caption)",在查询类中可以用数据库中字段的描述项"标题"作为查询的提示信息进行查询。
  为解决以上问题,对不同的数据库设计不同的查询界面当然可以,但事半功倍、一劳永逸的方法还是修改类Searchclass。
  修改方法如下:
  首先,进入到项目管理(ProjectManager),选择Class页,展开wizstyle.vcr类库,找到searchclass后按Modify按键对searchclas类进行修改。
  先对cbofieds1的init事件代码进行修改,修改后的代码及对修改部分的注释如下:
  #DEFINENUM_AFIELDS16LOCALi,j增加一个局部变量jPUBLICaWizFList,aWizFLista增加一个全局变量aWizFListaDIMENSIONaWizFList[1]=AFIELDS(aWizFList)DIMENSIONaWizFLista[1]定义一个数组=AFIELDS(aWizFLista)将当前表的信息赋给数组aWizFListaj=aWizFLista(1,12)将当前表的名称赋给jFORm.i=FCOUNT()TO1STEP-1
  以下判断是否存在打开的数据库,考试,大提示并用数据库中的字段标题替代数组aWizFList的第一列字段名。对于自由表,因不存在标题,故仍使用字段名。
  IFLEN(DBC())$#@62.
  0aWizFList(m.i,1)=DBGETPROP(j "." aWizFList(m.i,1),"field","caption")ENDIFI
  FINLIST(aWizFList[m.i,2],"G","M","U")
  &.&.Memofield =ADEL(aWizFList,m.i) 
  DIMENSIONaWizFList[MAX(1,ALEN(aWizFList,1)-1),NAFIELDS]=ADEL(aWizFLista,m.i)
  该两行处理内存型子段 
  DIMENSIONaWizFLista[MAX(1,ALEN(aWizFLista,1)-1),
  NUM_AFIELDS]ENDIFENDFORTHIS.RowSourceType=5THIS.RowSource="aWizFList"
  把原来的以字段名为数据源改成了以标题为数据源THIS.VALUE=THIS.LIST[1]再将seachclass的seachitem事件代码的第6句m.cFldName=ALLTRIM(m.oField.Value)改为m.cFldName=ALLTRIM(aWizflista(m.oField.listitemid,1)) 完成以上修改后,存盘退出。
  以上所做的修改,在Windows95、98环境下,VFP5.0、VFP6.0 中运行正常,效果很好。

相关文章


VisualFoxpro数组地运用计算机二级考试
VisualFoxpro宏替换地运用计算机二级考试
VisualFoxpro配置文件计算机二级考试
利用VFP在INTERNET上制作数据库动态查询计算机二级考试
计算机二级:修改VisualFoxPro类库实现按标计算机二级考试
Foxpro进一步订制VFP地导航和生成器计算机二级考试
计算机二级Foxpro:在VFP中模拟动画计算机二级考试
VF编写简易计算器计算机二级考试
vf编程计算3!+4!+5!计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛