“多表单系统”,顾名思义,就是多个不同形式的表单构成的一个系统,是一个极其抽象的概念。它在企业内部也是一种常见的管理信息系统,每个表单的内容和流程不尽相同,也可以说每个表单是一个子系统。在企业内部,各单位的需求不一致,以至于设计一个通用的表单系统非常困难。尽管不能通用,并且也避免不了新表单的增加和已有表单的修改,但是还是可以抽象出一些共同的东东来,如表单的动作,因此,我们可以将不变的部分抽象出来,以方便维护和增加新需求。
在此,我将以一个系列的形式来设计和实现一个多表单系统的开发模式。自知设计的功力尚浅,有许多考虑不到的地方,还请各位看客提出宝贵的意见。我深知这个东东想设计好非常困难,但是本着学习和交流的宗旨,决心硬着头皮将它写完整,在写的过程中,若大家有什么好的方法,可以提出来,大家共同探讨,互相学习。
下面先介绍一下多表单系统的各个需求。
1.需求概述
某单位主管向软件开发部提出,我们单位有一个申请单,想把它做成Web网页形式的。流程是:
- 本部门工程师填写申请单;
- 然后本人来审核,审核不通过,则退回申请人重新申请,审核通过,则跑到处理单位主管那里审核;
- 处理单位主管审核不通过,则退回申请人重新申请,审核通过,则分派给处理人员处理;
- 处理人员处理完成,则通知处理单位主管结案、通知申请人。
这个表单流程就算跑完了。流程图:
2.功能需求
根据以上需求,我们可以设计如下功能:
- 表单申请:申请表单1、申请表单2、……、申请表单n
- 表单查询:申请表单查询、历史表单查询
- 表单审核:审核工作、代理审核
- 代理设置:默认代理设置、代理区间设置
- 表单管理:工作分派、工作清单、处理状况
- 报表管理:报表1、报表2、……、报表n
- 系统管理:表单设置、角色管理、流程管理、单位管理、(包括表单共同部分设置)
3.表单动作需求
有了系统功能结构,但不同表单还有不同动作,概括起来,表单共有以下动作:
- 申请
- 修改
- 重新申请
- 取消
- 检视
- 审核
- 分派
- 处理
- 撤单
- 结案
审核可能有好几步,如上面例子,申请人主管和处理单位主管审核,有的表单有可能在处理单位主管审核前还有好几步审核。
4.结语
在这里我只介绍了大致需求,关于具体细节需求,我将在实现开发框架的过程中一一叙述。