VFP程序设计中应避免的几个问题

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:suyihui
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Visual FoxPro是一个功能强大的数据库管理系统,它以其独到的特点和优势赢得了开发者的青睐。本文指出了Visual FoxPro程序设计中应避免的几个问题,并对此给出了具体的处理方法。
  关键词:数据;控件;事件;程序
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)05-10ppp-0c
  
  1 引言
  
  Visual FoxPro中文版是为数据库管理和应用程序开发而设计的功能强大的面向对象的环境。对于组织信息、查询、创建集成的关系型数据库系统与为最终用户编写功能全面的数据管理应用程序,Visual FoxPro可以提供管理数据需要的所有工具,它不仅支持客户/服务模式,而且具有与其他软件共享和交换数据的能力,提供了新的对象和事件处理模式,利用面向对象编程(OOP)的功能使用户能够方便、快捷地建立和修改应用程序,并与其他的数据库管理系统具有更快速、更有效、更灵活的特点。因此,利用Visual FoxPro中文版数据库管理系统(DBMS)来开发数据库系统软件,受到广大软件研制人员的青睐。但是,Visual FoxPro 不是一个十全十美的数据库开发平台,也有美中不足之处。特别是内容极其复杂,技术难点多,软件设计人员要熟练而合理地运用这一新的可视化开发工具,并不是一件容易的事情,往往在软件设计中要走不少弯路,对一些重要内容与技术要通过较多的软件研制实践才能培养起较强的实际应用能力,在实践中积累经验,常常会遇到程序代码正确、测试通过,但没有达到系统运行要求的模块。实质上Visual FoxPro程序设计中应该避免出现这些问题。下面提出几个在教学实践中积累起来的Visual FoxPro 程序设计中应避免的问题及其处理方法,供大家借鉴。
  1 表单中控件制作次序不当,造成鼠标点击失效的问题
  
  图2
  
  事件是某个特定时刻所发生的事情,它是引起对象从一种状态转换到另一种状态的现实世界中的事件的抽象。事件是瞬间完成的,设有特定时间,是引起对象状态转换的控制信息。在Visual FoxPro中,可以编写相应的代码对此事件进行响应。在多数情况下,事件是通过用户的交互操作产生的。如果在程序设计中,事件选择不当,会使程序运行达不到预定的目的。如图2,Text5的值来自Text1-Text4数值的运算,Text4数值的运算,Text5项为连动数据项,即在程序运行时Text1-Text4项中某一项值改变了,Text5项中显示值根据计算也立即发生相应的变化。Text1~Text4项中数据宽度根据实际情况进行了限制,如Text1项可输入数值最大为9999,为了程序运行时实现连动数据项数据实时显示,在Text1~Text4的文本框中失去焦点时执行过程代码,来得到Text5项的数值。如果把程序代码
  V1=val(thisform.text1.value)*val(thisform.text2.value )
  V1=v1 val(thisform.text3.value)*val(thisform.text4.value)
  Thisform.text5.value=str(v1)
  Thisform.refresh
  放入Text1~Text4各自的InterActiveChange事件,结果出现这些文本框中输入数值只能输入一位数值,如Text1输入栏不能输入两位到四位的数值。而Text1文本框的InputMask属性值确实已设置为9999,产生这一现象的原因就是控件的事件选择有问题。如果将上述过程代码放入Text1~Text4各自的Valid事件,问题就不复存在。事实上,Valid事件在控件失去焦点发生,InteractiveChange事件在使用键盘或鼠标更改控件的值时发生,并且在每次交互地更改文本框中的值时,都要发生事件,即当用户在文本框中输入数字时,每单击一次都会引发Interactive Change事件。因此,在处理实际问题时,要根据具体情况,选取适当的事件时机,编写完成特定功能的程序代码。
  
  3 隐含的数据不具备完整性问题
  
  数据是计算机管理和操作的对象,设计程序就是用一系列指令存储数据并操作数据。Visual FoxPro使用户能够方便使用和管理数据,Visual FoxPro中的数据都有一定的数据类型,每一种数据类型决定了这一类型数据的取值方式和运算方式。数据的完整性是指数据的有效性、一致性和兼容性,用Visual FoxPro开发的程序必须保证管理和操作的数据具备完整性,程序设计人员需编写相应的代码或利用系统提供的功能实现数据的完整性约束条件及完整性检验。程序设计人员如果没有周全考虑到这一问题,尽管有些数据的处理在程序运行中没有表现出明显的错误,但由于存在着隐含的数据不具备完整性问题,影响了程序的严密性和软件的整体质量。如图3所示。
  
  图3
  
  程序要求输入起止日期,设计时就要考虑起止日期输入栏中输入的数据具备完整性,输入的数据不符合实际的,要求或允许用户重新输入。处理方法:
  (1)要求Textl文本框输入栏输入的起始年份不小于2004,在Text2的GotFocus事件中编写过程代码为:
  if val(thisform.text1.value)<2004
  messagebox(“请重新输入,年份必须不小于2004”,1 48 256,“出错信息”)
  thisform.text1.value=“ ”
  thisform.text1.setfocus
  thisform.refresh
  endif
  (2)由于月份介于1-12,这样在Text3的GotFocus事件的过程代码为:
  if val(thisform.text2.value)>12 or val(thisform.text2.value)<1
  messagebox(“请重新输入月份1-12”,1 48 256,“出错信息”)
  thisform.text2.value=“ ”
  thisform.text2.setfocus
  endif
  对于text5的要求一样,只要在Text6的GotFocus事件编写相似的过程代码。
  (3)对于Text3文本框输入栏输入的某一日,必须考虑到两点,一是介于1-31,二是某年某月是否有这一日,这一要求可在Text4的GotFocus事件的过程代码中编写为:
  if val(thisform.text5.value)>31 or val(thisform.text5.value)<1
  messagebox(“请重新输入日期”,1 48 256,“出错信息”)
  thisform.text5.value=“ ”
  thisform.text5.setfocus
  endif
  thisform.refresh
  Text6的要求与Text3一样,可在“确定”按钮的GotFocus事件中编写相应的过程代码。另外,在这过程代码中考虑到起始日期要比终止日期早。否则有提示信息。要求用户重输入起止日期。
  3.4 图3中文本框的初始值以字符型放在表单的Init事件中,Text1与Text4的InputMask属性设置为9999,其余文本框的InputMask属性设为99,所有文本框的Format属性设为x,按起始日期、终止日期输入的年、月、日、“确定”与“取消”命令按钮的顺序设置好Tab键次序。
  
  4 结束语
  
  Visual FoxPro程序设计中应避免的问题不仅仅只涉及到这些,处理方法也不唯一。本文的目的是Visual FoxPro程序设计人员在程序设计中积累经验,少走弯路,使程序运行正常。管理和操作的数据具有完整性。Visual FoxPro以及应用程序能发挥最佳性能.
  
  参考文献:
  [1]李雁翎.Visual Foxpm应用基础与面向对象程序设计教程[M].北京:高等教育出版社,2002.
  [2]任明汉.编程中值得注意的几个问题[N].电脑报,2001.2:2-3.
  [3]史济民,汤观全.Visual Foxpro及其应用系统开发[M].北京: 清华大学出版社,2002.
  
  收稿日期:2007-12-27
其他文献
小学阶段是少年儿童成长的重要阶段,他们很少接触社会,主要在家庭和学校这两个环境中生活并接受教育,而学校教育又是最为关键的成长教育场域,是他们世界观、人生观和价值观形成的关键场所。教育部2011年制定的《义务教育语文课程标准》强调,语文课程应“为学生形成正确的世界观、人生观、价值观,形成良好个性和健全人格打下基础;为学生的全面发展和终身发展打下基础”,要求语文教材“应体现时代特点和现代意识,关注现实
物理源于生活而高于生活,又归宿于生活。笔者以《超重与失重》教学为例,实现在教学活动中,让学生把生活中低层次的原始经验、素材经分析、加工,变为高层次组织活动,去获取新的知识和技能,获得情感体验,提升素养和品质。通过教学的生活化,用反思、修正、逐层递进的方式,有效地推动学生学习活动的层层深入,以实现《新课标》中“知识来源于生活,服务于生活”的要求。    1设计思想    “高中物理课程应促进学生
摘要:此研究力图在信息化背景下,通过国家开放大学全国课程试点的效果和MOODEL教育技术平台的应用,由表及里、由特殊到一般地归纳出信息化条件下的课堂教学模式的特点。它的应用价值在于,它得出的创新性的成果可以复制、可以推广;而且,在一定时间和空间范围内,它的运行成本不高,对于倡导全民终身学习的目标追求有着重大的参考价值和实践意义。  关键词:可视化;人-机交互;跨界;“课程责任教师 ”;终身学习  
摘 要:可视化教学设计依赖于各种纷呈的可视化技术,但技术手段并非越高端效能越高。教师在选择可视化教学设计工具时,会优先考虑自身的信息技术水平与可获取的资源。图解作为低技术可视化教学工具,在资源获取和使用操作两方面都相对容易,加之丰富的表现形式,能够帮助教师更为便捷地实现教学设计的可视化,有效提升教学效果。  关键词:可视化教学设计;可视化技术;图解  中圖分类号:G434 文献标志码:A 文章编号
摘 要:网络技术的飞速发展,使得当今的教学方式和学习方式发生了翻天覆地的变化。本文简单介绍了Moodle教学平臺的基本特点,并分析了在信息化背景下教师培训的途径,出现的问题及解决策略。最后,从Moodle教学平台的应用实践出发,总结了几条对教师培训的启示。  关键词:Moodle网络教学平台;混合式学习;教师培训  中图分类号:G451.2 文献标识码:A文章编号:1673-8454(2010)1
摘要:Linux支持多种类型的套接字地址簇并将其抽象为统一的套接字接口,这一抽象的引入是为了方便互联网应用程序的编程,也为网络应用程序之间的数据通信提供了便利。该文从socket基本概念入手,介绍了网络编程的基本模式及Linux内核对socket的支持。  关键词:Linux;嵌入式;网络编程  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2009)15-3953-02 
摘 要:随着STEAM教育理念的兴起,培养拥有跨学科思维能力人才成为教育研究者关注的焦点。随着STEAM教育理念的普及,开展3D打印课程对于培养跨学科思维能力具有十分重要的作用。文章首先概述了STEAM教育的内涵,然后通过对STEAM教育与3D打印课程教学设计关系的探讨,提出基于STEAM教育理念的3D打印课程的教学设计模型,并以具体课程实施为例进行验证,以期为相关研究与实践者提供参考。  关键词
摘要:运用现代教育技术,如何结合互联网实施教学,是目前全球高校流行的一种教育模式。该文结合自身教学实践对《财务软件运用》课程进行跟踪、总结,对基于网络平台的教学模式进行了有益的探讨,抛砖引玉,对如何使用现代教育技术拓展教学空间有一定的借鉴意义。  关键词:网络平台;课程教学;设计  中图分类号:G424 文献标识码:A 文章编号:1009-3044(2015)22-0103-03  Abstrac
摘要:移动信息技术的发展为区域图书馆联盟拓展了一条新的服务渠道。文章以BALIS原文传递为例,建设区域图书馆联盟文献传递移动信息服务平台,平台采用APP外壳 HTML5的技术方案实现,能够提升用户体验,发挥区域图书馆联盟在公共服务和教学科研领域中的核心支持作用。  关键词:移动信息服务;区域图书馆联盟;文献传递;BALIS  中图分类号:TP393 文献标识码:A  文章编号:1009-3044(
摘要:现代化医院信息系统的建设目的旨在加强医院业务管理水平、提高医疗服务能力,重点是系统的稳定。目前,随着医院信息系统和第三方应用软件及数据库产生的交叉,给系统的安全性带来了诸多风险和不稳定因素,也给医院信息安全造成极大挑战。该文从信息系统安全层面、物理安全层面、访问授权控制层面、终端主机和网络通信防护以及容灾策略等几个层面提出一些方法和讨论。  关键词:医院信息系统;安全策略;信息安全管理  中