《《VisualFoxPro9.0项目开发案例教程》第2章.ppt》由会员分享,可在线阅读,更多相关《《VisualFoxPro9.0项目开发案例教程》第2章.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章Visual FoxPro 9.0 应用技巧 本章通过若干实例介绍软件开发中涉及到的一些常见技巧,主要包括数据输入、数据查询、数据输出、与Excel 交互、使用图形、工具栏、进度条等内容。第二章2.1 数据输入2.1.1 中英文自动切换w 原理 以文本框或组合框为父类新建一个子类,同时为这个新建的类添加一个属性,根据此属性的值分别调整imestatus()函数的值为0或1,以此来控制系统的输入法状态。第二章2.1 数据输入2.1.2 组合框的记忆选择w 原理 对组合框的每一次选择都作以记载,把选择的值存储到公共变量中,并把此变量的值保存到内存变量文件里。这样,每次进入组合框时从内存变量文
2、件中恢复保存的变量,就可以记忆以往的选择,从而提高操作效率。第二章2.1 数据输入2.1.3 编辑框中实现自动更正的方法w 原理1、把word 的自动更正资料库文件mso.acl 中的汉字词组正误信息转换为.dbf 文件2、对允许输入汉字的控件的Keypress 事件编写代码,对输入的汉字词组在资料库中进行校验,自动把错误的词组转换为对应正确词组。第二章2.1 数据输入2.1.4 VFP 智能感应的二次开发u VFP 从7.0版开始增加了智能感应(IntelliSense)功能。当我们输入命令缩写及空格后,命令会自动扩展。输入函数名及左括弧、对象名及点之后,系统会自动提示相应的参数、属性、方法
3、名等供选择。u 原理智能感应的所有内容及方案都在一个表中定义,表的文件名默认为foxcode.dbf,在系统变量_foxcode中存放。修改或扩展这个表的内容就可以改变智能感应的内容。第二章2.2 数据查询2.2.1 热点跟踪和悬停效果w 在一个表单的各个控件之间进行焦点的转移时,控件能够在鼠标滑过的时候突出显示,实现的既是热点跟踪的效果。w 原理1、利用SpeciaEffect 属性设置热点跟踪效果 2、用_mouseoverfx 类突出显示效果 3、利用MouseEnter 和MouseLeave 事件进一步设置动态效果 4、对Grid 的记录进行控制 第二章2.2 数据查询2.2.2 系
4、统的查询类及其应用w 原理1、VFP 提供了进行查询的类库(_dataquery.vcx),应用其中的类_qbf,可以在表单的文本框中输入查询条件并显示查询结果。所有用于显示字段内容的文本框都可以用来输入相关的查询值,使用起来简单方便。2、利用了事务回滚技术第二章2.2 数据查询2.2.3 用VFP 设计数据表结构浏览器 w 原理 利用COPY STRUCTURE EXTENDED 命令生成一个数据表的结构描述文件,并把结构描述文件的前四个主要字段送给表格控件作为数据源,从而实现在一个交互界面中随意选择表文件进行结构浏览 第二章2.3 输出报表 2.3.1 VFP 9.0 中的多细节带区w V
5、isual FoxPro 9.0 的新增功能:执行多细节带区功能,实现一对多关系打印。w 通过打开报表设计器的属性窗口,单击Optional Bands 选项卡中的Add 按钮添加一个细节带区到列表中。w 在建立多细节带区报表时,应当按一对多关系中的父表的某个具有惟一值的字段进行分组。第二章2.3 输出报表2.3.2 在报表中实现每页打印指定记录数w 原理 可以采用数据分组的方法来实现每页打印指定记录数,而数据分组则可以使用临时表或设置报表变量的两种方法实现。w 使用临时表的方法 设置一个局部变量DetailNum 的值为每页打印的记录数,根据它对记录分组,形成分组号保存到自定义字段别名Gro
6、upCount中,把所有记录的分组号以及原有字段内容保存到临时表Temp2,作为报表的数据源。第二章2.3 输出报表2.3.2 在报表中实现每页打印指定记录数w 使用报表变量的方法 数据环境的Init 事件定义一个全局变量tobePrint,保存每页要打印的记录数。新建两个报表变量nCount 和nGroup。nCount 用于统计已经打印的记录个数。nGroup 的值来自一个表达式,表示当前记录已经满足一页最大打印记录数时,则用于代表页码的变量nGroup 就会增加1。第二章2.3 输出报表2.3.3 在VFP 中处理JPG 文件w 原理 不将图像文件保存到GENERAL 型字段中,而是把图
7、像文件保存到一个二进制的Memo 型字段,当需要显示图像时,则将该二进制Memo 型字段的内容输出到一个临时文件中,然后再将临时文件名赋给Image 控件或OLE Bound 控件对应属性来显示图像。第二章2.3 输出报表2.3.3 在VFP 中处理JPG 文件w 将图像文件保存到二进制Memo 型字段中的ftom 函数;w 将二进制Memo 型字段中的图像保存到一个外部文件中的mtof 函数。第二章2.4 其他技术2.4.1 表单Grid 容器中控件的动态增删及属性设置w 原理1、用AddObject(zd,Column)方法在表单的Grid1容器中添加一个“列”控件(文本框),以zd的值(
8、选取的字段名)为控件名。2、然后,设置控件的属性。包括宽度(Width)、可见性(Visible)、控制源(ControlSource)、列标题(Header1.Caption)等。第二章2.4 其他技术2.4.2 工具栏的制作w 原理1、如果不脱离VFP 系统环境(应用程序扩展名为APP),可通过定制工具栏或“object.show”指令,来使用VFP 系统提供的各种工具栏。2、利用VFP 系统提供的一个工具栏类tbrEditing 来创建工具栏,位于SamplesClassesSamples.vcx 类库中,可用于任意程序。3、指定工具栏停放位置的命令ToolBar.DocknLocati
9、on,X,Y 第二章2.4 其他技术2.4.3 进度条的实现w 原理1、使用ActiveX 控件实现进度条 选定表单控件工具栏的ActiveX 控件,在表单上添加一个Microsoft ProgressBar Control Version 6.0控件,并设置其Max 属性值,反映查询的最大次数。2、使用_thermometer 类实现进度条 _ thermometer 类位于“Microsoft Visual FoxPro 9Ffc_therm.vcx 类库中,基类为Form,该类用于提供一个标准的进度显示。第二章2.4 其他技术2.4.4 VFP 与Excel 交互 w 在VFP 中控制Excel 操作 利用CREATEOBJECT(Excel.Application)命令生成excel 对象,然后利用对象变量设置Excel 的各项属性及其复制数据。w 在VFP 中获取Excel 数据 利用APPEND FROM TYPE XLS命令从EXCEL 文件获取数据。