APP下载

基于Visual Fox Pro环境开发管理系统

2010-08-24周明红

科学之友 2010年2期
关键词:表单调用命令

周明红

(山西大学商务学院,山西 太原 030001)

VisualFoxPro作为关系型数据库管理系统及应用软件开发工具,它独有的特点、良好的性能、强大的功能、简单易学的优势,成为开发数据库应用程序最广泛使用的工具之一,并推动着数据库软件技术更加蓬勃地发展。

1 VisualFoxPro的特点和功能

VisualFoxPro是一个关系型数据库管理系统(RDBMS:Relation Database Management System),是一种较早的面向对象的、由事件驱动的程序设计工具。它预定义了一大批基类供开发者使用,并允许开发者定义新的类和子类,可以利用类的继承性减少编程的工作量,加快软件的开发。

VisualFoxPro提供了更多的诸如向导(Wizard)、设计器(Designer)、生成器(Builder)等可视化设计和操作工具,采用图形界面使设计更加直观,许多窗口操作可自动生成对应程序代码,减轻设计人员的工作量。利用项目管理器全面管理项目中的数据库、应用程序、各种文档,并能进行应用程序的编译。其自带有数据库并能提供对数据库的管理,保证数据库的数据完整性,更为有利的是它完全支持关系型数据库的标准语言SQL。不仅如此,VisualFoxPro的视图和表单既可以访问本地数据库中的数据,也可访问远程网络服务器中的数据,同时有效地控制对数据的共享。它的程序调试工具可以简化程序的调试和修改过程,并能自动检查程序是否存在错误,确定错误出现的位置,提示错误出现的原因,如果发现错误可当场切入程序进行修改。正是由于它的许多特点和功能,使它成为开发中小型数据库应用系统比较理想的工具。

2 基于VisualFoxPro环境开发应用程序的过程

2.1 系统分析

应用程序开发前开发者要与用户之间广泛沟通,作大量的调查研究和分析工作,从而明确用户的要求、程序应具备的功能及可以完成的任务。为此要进行两方面的分析,数据分析和功能分析。数据分析的目的是收集系统应包含的数据、数据的真实性、有效性,为后续的数据库设计做准备;功能分析的目的主要为应用程序的设计提供依据,从而划分系统的模块及子模块,所有应用程序模块的设计将会以此为依据进行。

2.2 系统设计

将分析阶段调查收集到的数据进行综合、归纳、抽象处理,形成符合该系统的概念模型,并画出相应的E-R图(实体-联系图),再将E-R图转换为符合VisualFoxPro要求的数据库和数据表,定义每个表的表结构、字段属性、字段有效性、数据完整性,表间关联关系等。

按照系统分析阶段功能分析的结果画出系统的树形总体框架图,该图一般不超过三层。同时必须考虑到整个程序中各模块间的调用关系,一般的调用顺序是:进入系统的主控程序调用启动界面、启动界面调用登录界面、登录界面调用主界面、在主界面中调用主菜单、最后由主菜单中的各个菜单项调用各个子模块界面。

2.3 系统实施

使用VisualFoxPro创建面向对象的由事件驱动的应用程序时,可以每次只建立一个功能模块。这种模块化构造应用程序的方法,可以在每完成一个组件后就对其进行检验,在完成所有的功能组件后就可以进行应用程序的编译了。

根据系统设计的结果,利用VisualFoxPro中的各种设计器或向导工具创建数据库、数据表、表间联系、视图、查询、表单、报表、菜单等各种对象。在建立系统各文件之前,要先在指定盘中创建一个根目录文件夹,例如D:SJKGL(此名称的含义是数据库管理),将这个文件夹指定为默认路径,在该文件夹中再建立几个子文件夹,分别用于存储各类文件,如可分别命名为DBS(用于存放数据表和数据库类文件)、FORM(用于存放表单类文件)、MENU(存放菜单类文件)、REPORT(存放报表类文件)、PRG文件夹(用于存放程序文件)、IMAGE文件夹(存放图像文件)、CLASS文件夹(存放类文件)等,且各个文件名及字段名等名称最好用字母表示。这样在一些过程或命令中调用文件时,路径可以简写为以下形式:

.FORMDLBD.SCX 它等价于命令:D:SJKGLFORMDLBD.SCX

在此重点说明以下几个文件的建立要点,它们具有通用性,所有VisualFoxPro应用程序开发时都可用到。

2.3.1 主程序文件

这是要作为整个应用系统切入点的主控文件,系统就是由此启动并逐级调用的,它的主要任务是设置应用程序的起始点、初始化环境、声明系统中使用的公共变量、显示初始界面、控制事件的循环等。其中,初始化环境用到的许多设置命令可以这样获得:在VisualFoxPro界面中,打开“工具”菜单下的“选项”命令,按住【shift】键的同时单击“确定”按钮,则在命令窗口中出现系统目前设置的相关命令,可以从中选取有用的命令复制到主程序文件中。除了初始化环境用到的设置命令外,一般情况下主程序中必须要包含下面几条命令,其他命令可根据系统要求取舍。

Set sysmenu off &&关闭VFP的菜单

PUBLICMYPATH &&定义全局变量MYPATH

MYPATH=LEFT(SYS(16),RAT(“”,SYS(16))) && 提取当前路径,sys(16)是获取当前程序所在的全路径(包括当前运行程序名)

SET DEFA TO (MYPATH) &&设置默认路径_screen.visible=.f.

Do form主界面表单 &&调用主界面

Read events &&开始事件循环

2.3.2 主菜单文件

主菜单在系统中用于集中体现系统的功能并进行相应的操作,通过执行菜单中相应的菜单项来调用对应的各文件和各模块。其中的“退出”菜单项是每个主菜单必须包含的,在其过程命令中要包含以下几条命令:

Close all && 关闭所有文件

Set sysmenu to default && 恢复VFP系统菜单

Clear events && 结束事件循环

Quit && 退出本应用系统

此处的“结束事件循环”命令是对应主程序中的“开始事件循环”的,当开始事件循环后,用户可反复调用系统中的各个文件进行操作,但要退出系统时必须先结束事件循环。菜单设计完成后,必须打开“显示”菜单下的“常规选项”对话框,选定“顶层表单”复选框,意味着将该菜单加到顶层表单中,最后一定要将该菜单生成菜单程序文件。

2.3.3 顶层表单

如果系统不需要登录就可直接进入,则可将主界面表单作为顶层表单,如果需要登录才能进入,则需单独设置顶层表单。顶层表单是用户应用该系统的主要界面,要在这个表单中调用主菜单文件,所以除表单的一般设置外,还必须进行以下几项设置,见表1。

2.3.4 其他功能性表单

用于实现系统各模块功能的界面表单如数据维护表单、查询统计表单等,除每个表单的功能设置等要求外,还要将每个表单的showwindow属性值设置为3-在顶层表单中,以保证调用的这些界面表单在顶层表单中显示。

3 用项目管理器组织文件并编译发布应用程序

表1 表单设置

利用VisualFoxPro数据库管理系统具体实现上述的系统设计和实施,用项目管理器组织管理系统各类文件并编译程序。

首先,要将系统所涉及到的文件添加到项目管理器中对应的容器中,对于没有被命令调用或引用过的文件必须手动添加到项目中,而在程序或表单中被调用或引用了的文件,连编时VFP会将它们自动添加进来,但是图片文件及由宏代换命令引用的文件要手动添加到项目中,图片和声音文件可加入到项目的“其他”容器中。

然后,设置文件的“包含”与“排除”,设置为“包含”的文件在项目连编后将作为只读文件,而设置为“排除”的文件在项目连编后仍可以由用户修改。所以类似表文件一般设置为“排除”,而表单、程序等只可供用户使用而不允许修改的文件设置为“包含”。

再将添加到项目中的主程序文件设置为“主控文件”,以作为连编后应用程序的起始点,一个应用程序只能有一个主控文件。此外还可以打开“项目”菜单下的“项目信息”对话框,在其中设置开发者信息、系统使用的图标、是否加密等内容。

最后,将项目连编成一个应用程序,此过程的最终结果是将所有在项目中引用的文件(除了标记为排除的文件)组合为一个单一的应用程序文件。选定主控文件图标,单击项目中的“连编”按钮,在“连编选项”对话框中,选择“连编应用程序”项,生成.app文件;或者选择“连编可执行文件”项以建立一个.exe文件,选择所需的其他选项并单击“确定”按钮。若计算机中安装有VFP程序,就可运行.app文件;若没有,需要运行.exe文件,但这时还需要将两个VFP动态链接库文件(VFP6R.DLL)和(VFP6ENU.DLL)复制到文件夹中供连接使用,至此应用程序连编完成。

如果要发布应用程序,需要启动“工具”菜单下的“向导”之“安装”命令,在安装的第二步中选定“VisualFoxPro运行时刻组件”复选框,以便在新环境下能够正常运行;在第六步中选定.exe文件的“程序管理器”复选框,并在打开的“程序组菜单项”对话框中命令行输入命令:%s应用程序文件名.exe,其中%s是为了软件安装在不同目录中也能正常运行。其余选项按需要设置,安装完成后系统会在该目录中产生一个磁盘映象文件setup。在整个系统开发完毕后,为方便用户使用,还应编写出系统功能及具体操作说明的文档资料。

猜你喜欢

表单调用命令
只听主人的命令
移动App表单组件体验设计
安装和启动Docker
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
浅谈网页制作中表单的教学
移防命令下达后
使用智能表单提高工作效率
解析Windows10的内部命令
利用RFC技术实现SAP系统接口通信