| 摘 要:三峡工程是世界级[de]巨型工程,专业门类多、技术复杂、信息管理工作量巨大,必须使用MIS系统对信息进行收集、整理、存储、统计、分析、制表。几年来,我们先后用FOXBASE、FOXPRO编制了《工资管理系统》、《土石方工程量计算程序》、《工程支付管理系统》、《文档管理系统》、《混凝土强度统计分析程序》等小型桌面系统。在编程过程中,经历了从低级平台(DBASE)到高级平台 (FOXPRO)、从字符界面(DOS)到图形用户界面(WINDOWS)[de]转化,从中总结出了一些应用经验。
关键词:三峡工程,FOXPRO,应用,经验
三峡工程是世界级[de]巨型工程,专业门类多、技术复杂、信息管理工作量巨大,必须使用MIS系统对信息进行收集、整理、存储、统计、分析、制表。目前,参建各单位[de]MIS系统相继投入运行,如长江三峡工程开发公司[de]TGPMIS系统、葛洲坝股份有限公司三峡建设承包公司[de]“施工档案管理系统”等。这些系统功能较强、涉及面较广,但不可能覆盖信息管理[de]方方面画,还需要桌面数据库系统来补充。由于桌面数据库[de]简单易学,因而有着巨大[de]用户群。用桌面数据库开发出功能较强[de]系统也有不少成功[de]先例,如1995~1997年三峡工地使用[de]“统计系统”、国家电力公司开发[de]概预算软件等。
在桌面数据库方面,几年来,我们先后用FOXBASE、FOXPRO编制了《工资管理系统》、《土石方工程量计算程序》、《工程支付管理系统》、《文档管理系统》、《混凝土强度统计分析程序》等小型桌面系统。在编程过程中,经历了从低级平台(DBASE)到高级平台(FOXPRO)、从字符界面(DOS)到图形用户界面(WINDOWS)[de]转化,从中总结出了一些应用经验。如:在WINDOWS中继续使用“字符型报表”、充分利用BROWSE快速制作录入界面、利用“表达式生成器”建立查询、利用FOXGRAPH建立直观[de]柱状图、饼图等等。
1 项目管理器
项目管理器引入项目概念后,使开发人员从应用系统中各类文件繁琐[de]管理中解脱出来,从而有更多[de]时间用于模块开发:项目管理器有如下优点:(1)只要将应用系统[de]主控模块(通常是菜单)放入项目管理器中,在生成项目时,能将应用系统中几乎所有[de]文件都纳入其中,方便程序模块[de]修改、调试;(2)通过其可以方便地创建可执行文件,并且在编译时具有自动更新项目中各组成部分[de]版本[de]功能。
在使用项目管理器时应注意:(1)尽可能地使用“原”文件(MNX、SCX等),而不使用由生成器转换以后[de]程序文件(MPR、SPR等),以便在菜单、屏幕等更新后,执行项目管理器中[de]“BUILD”按钮时能自动作相应[de]转换;在程序中调用菜单或屏幕时,调用扩展名为MPX或SPX[de]文件而不是扩展名为MPR或SPR[de]文件。(2)若一个应用中[de]大部分模块都已定型,只是个别模块在使用中变化。如我们编制[de]《工资管理系统》中[de]统计模块,该模块[de]修改(二次开发)较简单,系统[de]使用人员也可以胜任。这要求在编译[de]可执行文件中不含该模块,实现[de]方法是:利用FOXPRO“PROJECT”菜单中[de]“EXCLUDE”菜单条对项目管理器中[de]该模块作标记,然后执行“PROJECT”菜单中[de]“PACK”功能,再重新编译项目即可。外部模块是FXP类型[de]文件,在安装时,注意将外部模块文件放在应用系统EXE文件所在[de]目录中。
2 FOXPRO程序[de]龙头——菜单
程序通常由多个功能模块组成,可以通过屏幕中排列[de]一系列按钮等对象来调用这些模块,但通常用菜单将各功能模块融合在一起形成整体。为此,我们用DELPHI编制了这种菜单[de]自动生成器。
FOXPRO中提供了与WINDOWS图形用户界面一致[de]条形菜单、弹出菜单,并提供了相应[de]自动生成工具(GENMENU.FXP)。这种菜单[de]特点是:菜单容许是多层次[de];运行时菜单可以动态变化;功能模块可以直接含在菜单中,使得由一个菜单程序构成一个应用系统成为可能;可以直接使用一些通用功能,如新建文件、复制、粘贴等。这种形式[de]菜单,初次使用时往往会产生只运行一次就退出菜单[de]情况,可以用以下[de]办法解决:
(1)在菜单开始(SETUP)代码最后加入如图1所示循环起始语句:
do while.t.
(2)菜单[de]清楚(CLEANUP)代码如下所示:
read valid.f.
enddo
(3)退出菜单程序[de]代码如下所示:
close database
clear all
set sysmenu to default
cancel
应用系统中常常要用应用[de]名称代替FOXPROW主窗口中[de]标题“microsoft foxprow”,实现方法是在菜单开始(SETUP)代码[de]前面加入类似如下所示代码:
modify window screen at 4,6 size 36,147;
title“物资材料管理程序”
font“ms sans serif”,8 float close minimize
move window screen center
zoom window screen max
FOXBASE[de]下拉菜单(meun bar.……read menu to)是一种单任务性质[de],在执行一个具体[de]模块时,菜单隐去,控制权在所执行[de]模块,不会发生模块[de]重复执行。而FOXPRO[de]条形菜单具有多任务[de]性质,同一模块,可重复执行,有时需要利用这一功能,但多数情况下是不需要[de],这是因为同一模块或同时活动[de]多个模块经常处理[de]是同一类数据库或表,这样可能会因产生冲突而出错。因此,通常要求在执行一个模块时,不容许使用相同数据库文件[de]其他模块执行。这可以通过在菜单开始(SETUP)代码引入若干逻辑型内存变量,在菜单条中使用SKIP属性来实现。通过这种方式,可以使模块之间产生关联。
3 应用程序[de]信息输入
(1)屏幕生成器
屏幕和菜单类似,都有开始 (SETUP)、清除(CLEANUP)两个代码段,通过他们可以设置相应[de]环境或在屏幕(或菜单)退出时恢复环境。虽可以通过屏幕生成器中[de] “ENVIRON-MEXT”按钮中[de]“SAVE”功能保存开发时[de]环境,但此功能有限,不便于进行复杂[de]设置,且其保存[de]开发时[de]环境可能与运行时不同,导致程序运行时出错。所以,建议编程人员不要用此功能,而使用前者。
屏幕中编写代码时,有两个层次,即屏幕层和屏幕中[de]对象层。通常[de]处理均可在对象层次中解决。屏幕层次中通常只使用开始(SETUP)、清除(CLEANUP)两个代码段,其他[de]代码段通常在多窗体、多屏幕中用到。在对象层次中,通常也只需要编写“VALID”代码。
(2)功能强大[de]BROWSE
使用过EXCEL[de]人都习惯对纵横表进行操作,这样操作直观、自然。在FOXPROW中,用BROWSE可以实现类似[de]功能。若要用BROWSE对表进行任意操作,用下面简单[de]命令即可:
use
browse title
这样[de]操作,表中[de]数据是不安全[de],有必要对表[de]浏览操作加以限制。如在BROWSE命令中有选择性[de]加入NODE-LETE、NOAPPEND、NOMODIFY,就可以对“加删除标志”或“追加记录”或“修改记录”加以限制。 [1] [2] 下一页 |