架构深渊

慢慢走进程序的深渊……关注领域驱动设计、测试驱动开发、设计模式、企业应用架构模式……积累技术细节,以设计架构为宗。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

自定义表单的实现方法浅谈

Posted on 2008-10-08 21:31  chen eric  阅读(1848)  评论(1编辑  收藏  举报

 

自定义表单的实现方法浅谈
2008年05月29日 星期四 11:32

自定义表单的用途比较广泛,在OA的自定义工作流程中、CMS功能扩展、自定义调查中都将涉及到。为什么要使用自定义表单呢?试想一下,如果某个系统中没有自定义表单功能,而要实现增加功能或系统扩展,会怎么样?这时只能依靠界面设计师与程序员配合再做一个表单及编写代码来处理表单,处理表单的代码是枯燥而机械重复的,因为这样的代码无非是一些增、删、改、插,对一般的程序员来说,似乎太简单了;对一个项目来讲,如果客户需要的表单很多,可想而知,这样的代码将会有多少重复的,虽然生成代码的工具不少,可以减少一些工作量,但也会让整个系统变的更庞大,维护也不是那么方便,假如客户要加个数据项或改个什么的,整个项目又得重新编译。诚然,开发一套自定义表单系统是需要耗费不稍精力,占用一些项目时间,但有了这个平台之后,对以后的其他项目开发或者系统本身的功能扩展还是有很大帮助的。

上面列举了一些自定义表单的种种好处,我们应该怎么实现它呢。自定义表单就是将上面的情况进行抽象,通过表单的定义自动创建/修改自定义数据表、动态生成数据表操作的SQL语句并执行。当然首先要知道一般的自定义表单系统包含哪些功能。我想的话,可分为这样几部分:表单定义管理部分、表单呈现/提交部分、表单数据查看/管理部分。

表单定义管理:表单基本信息管理(表单名称、描述)、表单存储表字段管理、表单布局设计、表单数据验证定义、表单字段关联/子表单管理、表单字段编辑框行为管理。

表单基本信息定义比较简单就不说了。

表单存储表字段定义:定义表单中用到的数据项,包括字段名、字段类型、长度、默认值、编辑框类型、是否允许为空、是否自增长字段、分组名称、是否在列表中显示等信息。编辑框类型一般有:文本框、文本域、复选框、单选框、列表框、时间日期选择、文件上传框等;这里定义的是表单主表字段,注意每张表单仅针对一张表,否则操作多张表的SQL不容易处理,涉及到主从表的情况可用子表单来处理。

表单布局设计:这一步是很关键也是较难实现,简单的做法是做一个表单模板,那么表单中的数据项说明、编辑框、数据验证就都可以用内部变量来代替,系统可提供自动生成表单的功能,用户也可以自己手工修改,当然能够提供一个表单设计器就完美了,使用起来就更方便的了。

表单数据验证定义:定义需要验证字段的规则,验证规则,可用正则表达式的方式来定义,系统内部可自带一些常用的验证规则,复杂的情况可能会出现各字段之间的值进行比较的情况。

表单字段关联/子表单管理:定义表/表单之间的关联信息,即主键外键信息。

表单字段编辑框行为定义:主要负责处理字段值发生变化时引发的其他编辑框事件,比如连动下拉框、从选择值中返回值并赋予其他字段编辑框、其他编辑框的隐藏等。

表单运行时呈现及提交

根据表单定义的布局及其他设置呈现表单,并一起生成验证、行为用到的JS代码。如果填写表单时,先填主表信息,然后填写从表信息,多个表单之间要进行跳转,保存的临时表单值可采用SESSION进行传递,最后一起提交,提交时先写入主表信息,并返回主键值(如果存在主从表的话),然后写从表数据。

表单数据管理

可根据字段配置信息显示表单的数据列表,并进行管理,这一步实现比较简单。

---from[http://www.zhangyongjun.com/blog/article.asp?id=147]