自定义表单的实现方法浅谈
自定义表单的用途比较广泛,在OA的自定义工作流程中、CMS功能扩展、自定义调查中都将涉及到。为什么要使用自定义表单呢?试想一下,如果某个系统中没有自定义表单功能,而要实现增加功能或系统扩展,会怎么样?这时只能依靠界面设计师与程序员配合再做一个表单及编写代码来处理表单,处理表单的代码是枯燥而机械重复的,因为这样的代码无非是一些增、删、改、插,对一般的程序员来说,似乎太简单了;对一个项目来讲,如果客户需要的表单很多,可想而知,这样的代码将会有多少重复的,虽然生成代码的工具不少,可以减少一些工作量,但也会让整个系统变的更庞大,维护也不是那么方便,假如客户要加个数据项或改个什么的,整个项目又得重新编译。诚然,开发一套自定义表单系统是需要耗费不稍精力,占用一些项目时间,但有了这个平台之后,对以后的其他项目开发或者系统本身的功能扩展还是有很大帮助的。 上面列举了一些自定义表单的种种好处,我们应该怎么实现它呢。自定义表单就是将上面的情况进行抽象,通过表单的定义自动创建/修改自定义数据表、动态生成数据表操作的SQL语句并执行。当然首先要知道一般的自定义表单系统包含哪些功能。我想的话,可分为这样几部分:表单定义管理部分、表单呈现/提交部分、表单数据查看/管理部分。 表单定义管理:表单基本信息管理(表单名称、描述)、表单存储表字段管理、表单布局设计、表单数据验证定义、表单字段关联/子表单管理、表单字段编辑框行为管理。 表单基本信息定义比较简单就不说了。 表单数据验证定义:定义需要验证字段的规则,验证规则,可用正则表达式的方式来定义,系统内部可自带一些常用的验证规则,复杂的情况可能会出现各字段之间的值进行比较的情况。 表单字段关联/子表单管理:定义表/表单之间的关联信息,即主键外键信息。 表单字段编辑框行为定义:主要负责处理字段值发生变化时引发的其他编辑框事件,比如连动下拉框、从选择值中返回值并赋予其他字段编辑框、其他编辑框的隐藏等。 表单运行时呈现及提交: 根据表单定义的布局及其他设置呈现表单,并一起生成验证、行为用到的JS代码。如果填写表单时,先填主表信息,然后填写从表信息,多个表单之间要进行跳转,保存的临时表单值可采用SESSION进行传递,最后一起提交,提交时先写入主表信息,并返回主键值(如果存在主从表的话),然后写从表数据。 表单数据管理: 可根据字段配置信息显示表单的数据列表,并进行管理,这一步实现比较简单。 |