界面自动生成工具
主题:本文介绍了一个直接根据数据库表结构定义自动生成对该表记录进行存取操作界面(FORM)的工具
1. 界面自动生成的必要性
一般在数据库应用程序,特别是MIS软件开发时,都会选择使用开发工具,如PB、C++BUILDER,DELPHI,UNIFACE等等。这些工具为数据库应用程序的开发提供了强大的支持和帮助,使大部分开发工作转化成一种简单的,机械重复劳动。对一个新手,只要拖拉一些控件,在短短1-2个小时就可开发出一个可对数据库进行操作的漂亮界面,这对一个新手的工作是一个极大的鼓励。但我与一些从事数据库应用程序开发时间较长的朋友交谈时,他们几乎全部都抱怨做数据库应用程序开发太没有意思,没有创新,作长了感觉很烦。有个朋友也做了个小工具来减少重复劳动,效果还不错。因此本人就决定开发了界面自动生成工具。开发的第一个工具是以ORACLE和C++BUILDER 为基础的,用于一个大型MIS项目开发,效果很好,大大地减少开发工作量,降低了开发成本,特别是为维护工作带来了很大方便。在那个开发项目中,当第一个开发负责人因故要离开该项目时,软件交接很容易。这是因为自动生成的程序很整齐,很规范,严格遵守命名规则,因此程序的可读性很好,数据库中的表名与界面名和源文件名直接对应,找源文件就很方便。 在第一个工具成功的鼓励下,本人开发了实用性更强的第二个工具,是基于DELPHI的,可选择ORACLE 或SQL-SERVER数据库管理系统,及BDE或ADO连接方式。这里主要介绍第二个工具的一些设计思路。
2. 工具设计的主要思路
由于界面的一个重要功能是对数据库中表内的数据进行存取,界面与表之间有着直接关联,因此这里采用为每个数据库表生成一套界面的思路。由于每个表的数据项多少不同,界面的空间有限,这里根据每个表内数据项所占用的空间不同生成三种界面:
A 对数据项占用空间较小的情况,在界面的上半部安排一个记录列表(DBGRID),
下半部安排编辑面板(安排LABEL和各种编辑框)。如图1
图1
B对数据项占用空间中等的情况,把记录列表和编辑面板分别安排在两个界面
上。通过记录列表上的编辑按钮,调用编辑面板界面。如图2
图2
其中相片为图形文件,挡案按钮自动调用WORD,且把该WORD文件保存到数据库中去。
C对数据项占用空间较大的情况,生成类似与B的界面,只是在编辑界面上有
多页切换功能。
作为工具设计者来说,总希望生成的界面具有尽可能多的功能。但是靠计算机自动生成的只能是一些常规的,公共通用功能。对一些业务规则要求的非常规功能要自动生成难度很大,这还得靠人工来编程。对一些通用常规功能是否能自动生成,这还取决于该功能的语法定义是否简洁直观,及生成器开发难度。我们在生成器开发前,先开发尽可能多的通用控件。我们开发的通用控件有:通用打印控件,通用查询控件及时间编辑框。在对时间编辑框内数据进行编辑时,程序会自动弹出日历窗口。对DBGRID的功能进行扩展,可对DBGRID中的每一列进行排序,求最大值,最小值,平均值及求和。对界面生成时可供开发者选择的功能如下。
1)可选择该界面所对应的数据集使用TTABLE还是使用TQUERY。当使用后者时,给出查询条件。
2)一个数据项是否允许为空。本来数据库本身会做这个检查,但为提高效率,我们把这个检查放到前端来做。
3)该数据项在界面上是否可见。
4)该数据项是否是只读,或在插入时可给出数据,但不允许修改。
5)该数据项是否代表货币。
6)给出该数据项的检查范围(LIMIT)。
7)给出该数据项在读写时的MARSK。
8)定义该数据项是否存储图形文件,用户编辑该数据项时,当该数据项为空时会自动弹出文件目录窗口,供用户选择加载图形文件。当该数据项有内容时,会调用该图形文件的处理软件。
9)定义该数据项是否存储WORD文件。当用户编辑这个数据项时程序会自动弹出WORD窗口。
上一篇:在DELPHI程序中拨号上网
下一篇:中国互联网发展进入新阶段