第十一章: 应用系统的开发

  关闭窗口       

11. 2 构造 Visual FoxPro 应用程序

     11.2.1 建立项目
  
11.2.2 连编应用程序
 

11 . 2 . 1 建立项目

•  应用程序的基本组成

一个典型的 VFP 数据库应用系统通常包含以下几个部分:

•  数据库 存储应用程序要处理的所有原始数据。

•  用户界面 提供用户与数据库应用程序之间的接口,通常有一个菜单,一个工具栏和多个表单。

•  事务处理 提供特定的代码,完成查询、统计等数据处理工作,以便用户可以从数据库的众多原始数据中提取需要的各项信息。这些工作主要是在事件的响应代码中设计完成的。

•  打印输出 将数据库中的信息按用户要求的组织方式和数据格式打印输出,以便长期保存、或供多人传阅。

•  主程序 用于设置应用程序的系统环境和起始点,是整个应用程序的入口。

2. 应用系统的组织和管理

(1) 建立目录结构 数据库应用程序通常由数据库、用户界面、查询选项和报表等组成。一个完整的应用程序,无论规模大小,都会涉及到多种类型的文件,同时 VFP 系统还会生成相应的辅助文件。所以,在设计应用程序时应该建立一个分层目录结构,分类存储不同类型的文件,以便于管理和维护。

( 2 )利用项目管理器组织项目 建立目录结构可实现在存储位置上对各类文件的管理,利用项目管理器可以将 VFP 应用程序中要使用的各类对象从逻辑上进行组织,创建为一个项目,并由此生产最终的应用程序。项目管理器是 VFP 提供给系统开发人员的一个用于组织和管理项目中各类数据和对象的重要工具,也是系统开发人员的主要工作平台。

将文件添加到项目管理器中一般有两种方法:

①直接在项目管理器中新建文件 创建和打开已有的项目文件,启动项目管理器,单击“新建“按钮,新建文件,将这些文件自动包含在项目中,

②将已有的文件添加到项目中 单独开发个模块或部件,然后打开“项目管理器”,单击“添加”按钮,将各类文件加入到项目中。

3. 加入项目信息

加入项目信息的方法是:打开项目管理器,选择“项目 | 项目信息”命令,或者右击项目管理器窗口,从快捷菜单中选择“项目信息”,打开“项目信息”对话框,填写相关信息。

3. 主程序的设计

当运行一个数据库应用程序时,首先启动的是该应用程序的主文件,主文件再依次调用所需要的其他文件。主程序通常负责初始化环境、显示初始的用户界面、控制事件循环以及在退出应用程序时恢复原始的开发环境。一个简单的主程序应该包括以下命令:

?初始化环境的命令,以及打开数据库、声名变量的命令。

?调用一个菜单或表单的命令,建立初始的用户界面。

?执行 READ EVENTS 命令,建立事件循环。 注意,结束事件循环一般是通过一个菜单项或表单上的按钮执行 CLEAR EVENTS 命令完成的,主程序不应执行此命令。

?应用程序退出时,恢复环境的命令。

5. 主程序的设置

设置主程序有以下两种方法:

•  在项目管理器中右击要设置的主程序文件,从快捷菜单中选择“设置主文件”。也可以选择“项目 | 设置主文件”命令。

•  在“项目信息”对话框的“文件”选项卡中,右击要设置的主程序文件,从快捷菜单中选择“设置主文件”。

一个应用程序只有一个起点,所以系统的主文件是唯一的。当重新设置主文件时,原来的设置将自动解除。

11.2.2 连编应用程序

使用 VFP 创建面向对象的事件驱动应用程序时,每次可只件只建立一部分模块。这种模块化构造应用程序的方法可以时开发者在每完成一个组件后,就对其进行检验。在完成了所有的功能组件之后,就可以进行应用程序的集成和编译。对整个项目进行联合调试和编译的过程称为连编项目。经过连编, VFP 系统将所有在项目中的应用文件(除了那些标记为排除的文件外)合成一个应用程序文件。

•  文件的“排除”与“包含”

•  排除与包含

在项目管理器中,数据表文件名左侧带有排除标记的文件为排除文件,表示此文件从项目中排除。被排除的文件可以在最终生成的应用程序中修改。“包含”与“排除”是相对的,在项目中标记为“包含”的文件在项目编译之后将变为只读文件,也就是在生成的应用程序中不允许在修改。

作为通用规则,可执行程序,如表单、报表、查询、菜单和程序文件应该在应用程序文件中为“包含”,而数据文件为“排除”。但是,可以根据应用程序的需要包含和排除文件。如果一个文件设为排除,必须保证 VFP 在运行应用程序时能够找到该文件。为了安全起见,可以将所有用户不需要更新的文件设为包含。应用程序文件( .APP )不能设为包含。

•  设置文件的排除与包含

•  在项目管理器中,右击选定要设置为排除的文件,从快捷菜单中选择“排除”命令,或者选择“项目 | 排除”命令。

•  在项目管理器中,右击选定要设置为包含的文件,从快捷菜单中选择“包含”命令,或者选择“项目 | 包含”命令。

2. 连编项目

连编项目将使 VFP 系统对项目的整体性进行测试,此过程的最终结果是将所有在项目中引用的文件(除了那些标记为排除的文件)合成为一个应用程序文件,最后将应用程序文件和数据文件以及其它排除在项目外 的文件一起发布给用户,用户可运行该应用程序。

项目管理器解决不了对图片( .BMP 或 MSK )文件的引用,因为着取决于代码中如何使用图片文件,因此需要将这些文件手工添加到项目中。项目连编也不能自动包含那些用“宏替换”进行引用的文件,因为在程序运行前不知道该文件的名字。如果应用程序要引用“宏替换” 的文件,必须手工添加这些引用文件。

连编项目的方法是:

•  项目管理器方式

单击“连编”按钮,出现如图 11-2 所示的连编选项对话框,选择“重新连编项目”项。

图 11-2

 

若同时选中“粗物显示”复选框,则连编过程中如果发生错误,可以立刻查看错误文件。错误文件收集了编译过程中出现的所有错误,该文件名与项目文件相同,扩展名为 .ERR 。

若同时选中“重新编译全部文件”复选框, VFP 系统将重新编译项目中的所有文件;否则,只会重新编译上次连编后修改过的文件。

•  命令方式

格式: BULD PROJECY< 项目文件名 >

3. 连编应用程序

当成功地连编项目后,在建立应用程序之前应试运行该项目。方法是:在项目管理器中选中主程序,然后单击“运行”按钮;也可在命令窗口中执行命令:

DO < 主程序文件名 > 。如果程序运行正确,就可以连编成为一个应用程序文件,该文件包括项目中的所有“包含”文件。

在 VFP 系统中,应用程序文件有两种形式:一种是扩展名为 .APP 的应用程序文件,该程序只能在 VFP 环境中运行;一种是扩展名为 .EXE 的可执行文件,它可以在 Windows 环境中运行。可执行文件和两个 VFP 动态联接库( VFP6R.DLL 和 VFP6ENU.DLL )链接,可以构成 VFP 所需的完整运行环境。

连编应用程序的方法是:

( 1 )在项目管理器中单击“连编”按钮,打开图 11-2 所示的“连编选项”对话框。选择“连编应用程序”选项,可生成 .APP 文件;选择“连编可执行文件”选项,可建立一个 .EXE 文件。

选中“连编可执行文件”选项,会激活“版本”按钮,可以为应用程序指定一个版本好以及版本类型。

( 2 )命令方式

格式 1 : BUILD APP<APP 文件名 >FROM< 项目文件名 >[RECOMPILE]

功能:编译指定的项目文件,并生产扩展名为 .APP 的应用程序。

格式 2 : BUILD EXE<EXE 文件名 >FROM< 项目文件名 >[RECOMPILE]

功能:编译指定的项目文件,并生产扩展名为 .EXE 的可执行文件。

4. 行应用程序

当为项目建立一个最终的应用程序文件后,就可以运行了。

•  运行 .APP 应用程序

启动 VFP ,选择“程序 | 运行”命令,在运行对话框中选择要执行的应用程序;或者在“命令”窗口中键入命令 DO < 应用程序文件名 >

•  运行 .EXE 可执行程序

•  启动 VFP ,选择“程序 | 运行”命令,在运行对话框中选择可执行程序文件

•  在“命令”窗口中键入 DO < 可执行文件名 >

11.2.3 教学管理系统开发实例

上面介绍了 VFP 应用系统开发的总体过程,本节将结合前面各章的内容,开发一个教学管理应用系统。

•  系统功能

为了简化问题,本系统只射击学生、课程和成绩三个方面信息的管理。

•  系统的基本组成

( 1 )数据资源 本系统的数据资源采用第 3 章中介绍的“教学管理”数据库中的“学生”、“课程”和“成绩” 3 个表,其中“学生”表与“成绩”表通过“学号”建立关联,“课程”表与“成绩”表通过“课程号”建立关联。

( 2 )系统主程序 由此启动系统登陆表单。

( 3 )系统菜单 使用户可方便、快捷地控制整个系统的操作。

( 4 )系统登陆表单 可以控制非法操作员使用本系统。

( 5 )数据录入表单 提供数据资源的输入与编辑界面,有“课程查询”、“成绩查询”和“信息汇总” 3 张表单。

( 6 )统计表单 提供数据信息检索与汇总的显示界面,有“课程查询”、“成绩查询”、和“信息汇总” 3 张表单。

(7) 报表 打印输出需要保留的信息,有“学生名单”、“课程信息”和“成绩单” 3 份报表。

•  数据库维护表单 供高级操作人员直接对数据库和数据表进行操作。

•  建立目录结构

本系统虽然不复杂,但要用到数据库、数据表、菜单、表单、报表、程序等多种类型的文件以及辅助文件。为此先建立如图 11-3 所示的分层目录结构,分类存储不同类型的文件。

图 11-3

 

 

 

 

•  建立项目文件

在“ E : \VFP 6 ” 文件夹中建立项目文件“教学 .PJX ”,且以下所有的文件都直接在项目管理器中建立。

•  建立数据库

在项目管理器中建立数据库“教学管理 .DBC ”,并参照表 3.1~ 表 3.3 在“教学管理”数据库中建立“学生”、“成绩”、“课程”三个数据表。

•  主程序的设计

主程序是整个程序的入口点,主要功能是初始化系统运行环境、打开数据库、调用表单建立初始的用户界面、控制事件循环等。本系统的主程序为 MAIN.PRG ,其代码是:

SET TALK OFF

SET SYSMENU OFF

SET SENTURY ON

SET DATE TO YMD

CLOSE ALL

CLEAR ALL

SET DEFAULT TO E : \VFP6 && 设置工作目录

SET PATH TO PROGS , FORMS , MENUS , DATA , REPORTS , GRAPHICS

OPEN DATABASE 教学管理 EXCLUSIVE

-SCREEN.CAPTION= “教学管理系统”

ZOOM WINDOWS SCREEN MAX

DO FROM 登录表单

READ EVENTS

•  系统登录表单

登录表单主要是验证用户输入的口令是否正确。若口令正确,可调用系统主菜单,进入系统环境。登录表单为“登录表单 .SCX ”,其界面如图 8-20 ,在本例中,“确定”按钮的 Click 事件代码是:

LOCAL cPassword

cPassword=Thisform.Text1.Value

IF ALLTRIM(cPassword)=”student”

Thisform.Release

DO 教学管理 .MPR && 调用系统主菜单,进入系统环境

ELSE

Thisform.nCount=Thisform.nCount+1

IF Thisform.nCount=3

MessageBox(“ 口令错误,登录失败! ” , 16 ,“提示信息” )

Thisform.Release

QUIT

ELSE

Thisform.text1.Vale=””

Thisform.text1.SetFocus

MessageBox(“ 口令错误,请重新输入 ” , 16 ,“提示信息” )

ENDIF

ENDIF

“取消”按钮的 Click 事件代码如下:

Thisform.Release

QUIT

•  系统主菜单

根据本系统的功能,菜单系统主要由:“数据录入”、“查询统计”、“数据库维护”和“退出” 4 个菜答及相应的子菜单构成。

分别在子菜单项命令代码中输入一条调用表单的命令: DO FROM < 表单文件名 > 。各表单文件名与对应菜单项的文件名相同。

•  系统表单

在主菜单中单击各菜单项将分别启动相应的 7 个表单:学生名单 .SCX 、课程信息 .SCX 、学生成绩 .SCX 、成绩查询 .SCX 、课程查询 .SCX 、信息汇总 .SCX 、和数据维护 .SCX ,用于数据的输入与显示。

•  报表

本系统提供了打印输出的 3 个报表,当单击“学生名单”表单、“课程信息”表单和“成绩查询”表单的“打印”按钮将分别运行报表“学生名单”报表、“课程信息”报表和“成绩查询”报表。

•  添加位图

打开项目管理器,选择“其它”选项卡的“其它文件”项,单击“添加”按钮,将应用系统中用到的位图、图标等图象文件添加到项目文件中。

•  设置主文件和项目信息

在项目管理器中右击选准主程序 MAIN.PRG ,从快捷菜单中选中“主文件”,将 MAIN.PRG 设置为主文件。然后选择“项目 | 信息项目”命令,在“项目信息”对话框中设置系统开发的作者信息、系统桌面图标等项目信息。

•  连编应用程序及生成可执行文件

分别调试各个模块,并确定项目中要排除和包含的文件,然后在项目管理器中单击“连编”按钮,在“连编项目”对话框中选择“重新连编项目”选项。若没有错误,则可以选择“连编可执行文件”选项,在随后出现的“另存为”

对话框中输入可执行文件名“教学管理系统 .EXE ”,并将文件保存在“ E:\VFP 6 ” 文件夹中。

•  运行应用程序

在 Windows 资源管理器中,双击“教学管理系统 .EXE ”文件进入运行状态,检查系统能否正常运行。若出现问题,可重新进入 VFP 系统,再连编运行直至正常。


关闭窗口      
 
版权所有西北师范大学数学与信息科学学院