基于数据库的企业级智能表单系统设计(asp.net)-序言
本文章是对过去工作的一个总结,内容取材于已经运行的智能表单系统,这里只讨论asp.net的实现。
目前市场上关于智能表单的内容已经有很多,很多OA系统自动的智能表单,一些专业级别的开发平台等等,都提供了类似的快速开发框架。每个框架都有自己的优势和不足,很难有一个相对完美的解决方案,这些不足列举如下:
- 不提供数据库支持。一些智能表单使用xml作为数据存取介质,或者是通过预先定义好的表结构来存取数据,而不是根据用户设计的内容通过表单引擎来创建对应的数据库。当然是用xml有使用xml的好处,比如简单灵活,但这样以来就失去了企业级的应用市场,无法支持大数据量的存取,无法使用数据库本身的特性对数据进行优化等。
- 不支持二次扩展。很多智能表单系统使用系统内定的一些事件或者函数来支持二次扩展的开发,这样实现的后果就是客户只能在指定的、有限的范围内进行扩展,但是客户需求是不定的、无限的,我们不能预先假设客户的需求范围,从而将扩展限制的某个范围内。
- 没有生成针对表单操作的源代码文件:这样问题和上一个基本相同,如果智能表单系统生成的针对表单操作的源代码文件,那么扩展问题就迎刃而解了。
- 或者面向开发人员,或者面向终端用户:比如一些oa自动的智能表单系统,主要是面向终端用户的,而一些专业级别的开发平台又是面向开发人员的,二者很难进行统一。有没有一个开发人员可是用来提高开发速度,终端用户用来提高需求响应速度的统一的工具呢?
- 过于简单:一些oa的智能表单系统实现的比较简单,对于一些高级的交互元素无法处理。例如子表,级联下拉框,计算域,树形结构,拓扑图,数据验证等。
- 基于c/s结构:这里无意对于b/s和c/s结构。一些专业的开发工具做的很好,提供了c/s结构的类似于vs.net的开发平台的工具来进行设计,但这样一来就就限制了客户对象是开发人员,对于终端客户来说是无法使用的。并且如果能直接在vs.net里面进行二次开发岂不是更好?
- 无法快速响应客户需求:使用一些专业开发平台设计出来的智能表单,必须要对项目进行编译部署,对于一些需求相应要求高的应用来说无法满足需求。
- 只管实现数据存取,不管权限:设计出来的表单可以交付使用,但是无法对表单进行权限设置,例如操作权限(增、删、改、查等),字段权限(可见,可写等),记录权限(人员对每条记录的可见性)
- 没有相对应的工作流系统:对于不需要流程的表单当然工作流系统无用,但对于一些需要走流程的表单,就必须有相应的工作流系统来辅助工作。一些产品在设计上,工作流系统和表单的交互做的不够,流程无法通过配置的方式去读取表单的数据,而是必须通过二次开发的工作来完成。
- 界面不够友好,使用性不强。比如一个选择域,如果供选择的数据源只有几十条,那么可以使用下拉框来实现,但如果有百万条的数据,显然下拉框是不现实的,必须使用其他的方式来实现。
- 没有自带的智能报表和统计功能。客户对智能表单收集的数据无法实现自动的报表和统计功能。
- 没有详细的表单操作日志。既然实现了智能表单,那么就多一步也实现用户对这个表单进行增、删、改、查详细记录就更好了。
本文将探讨实现一个可以解决以上问题的智能表单系统。当然您也可以列举出更多的问题,或者在不同角度下看待以上问题的另一面。
贴一些图片参考。
表单设计器:
组织架构拓扑图
树形列表
图表统计