表单自定义设计器功能设计--2012毕业论文
表单自定义设计器功能设计
1设计思路
1.1表单自定义功能的误区
1、关于成本:表单自定义一般容易实现的仅布局、字段的增减、简单的脚本控制等,但有很多诸如复杂脚本控制、自动计算、特殊逻辑验证、主从关系,复杂基础数据选择(过滤、合并)、与其它功能模块的交互等等需求,自定义工具都不能很轻易地解决,最终可能带来的代价是重做,甚至推翻整个系统架构重新实现,付出成本是预计成本的2-4倍以上均有可能。建议采用对此类复杂需求通过关联创建人定义的SQL语句来实现。
2、表单自定义功能实现的方式一般是数据库表中预制了很多字段或者是一个表中的记录存储为ID、字段名、值、字段类型,而且值的类型往往是字符型,这些做法给数据的查询统计及SQL优化带来的是非常大的性能损失和阻力,业务系统数据量不大的时候看不出,一旦数据业务表大到一定程度的时候,性能瓶颈就会出现。我们知道需要工作流的业务系统都是大量用户和大规模业务数据的。对于表单自定义做法,性能瓶颈是一定要考虑的;
3、表单自定义往往实现的是一个数据实体的增、删、改,但对于一个系统来讲一个表单仅仅是一个功能点而已,这个功能点对于整个系统来讲远不是那么单纯的,有可能一个数据实体的资料分别在多个表单里进行更新和维护,自定义逻辑往往是处理不了它们之间的冲突,还有查询和统计分析,这些是需要关联很多基础数据、关联其它业务数据。自定义表单功能本身也只是从功能特性的角度去出发,对于系统复杂的实体关系、业务模式、设计模式的支持几乎为零,一个高质量系统需要的因素基本实现不了;
4、企业使用表单自定义工具的时候往往已经有了很多的系统,比如HR、CRM甚至ERP系统,很多关联数据会是来自于这些系统的数据。表单自定义
表单定义管理:表单基本信息管理(表单名称、描述)、表单存储表字段管理、表单布局设计、表单数据验证定义、表单字段关联/子表单管理、表单字段编辑框行为管理。
表单存储表字段定义:定义表单中用到的数据项,包括字段名、字段类型、长度、默认值、编辑框类型、是否允许为空、是否自增长字段、分组名称、是否在列表中显示等信息。编辑框类型一般有:文本框、文本域、复选框、单选框、列表框、时间日期选择、文件上传框等;这里定义的是表单主表字段,注意每张表单仅针对一张表,否则操作多张表的SQL不容易处理,涉及到主从表的情况可用子表单来处理。
对字段的相关要求还包括:
1.涉及到字段的权限级别控制
2.涉及到字段的自定义下拉列表控制
3.涉及到字段的默认值控制
4.涉及到字段的多层关联的数据引用控制,初步实现单层关联应用
5.需要考虑自定义字段的值参与系统原来的业务逻辑运算如何设置的问
题
6.初步达到代码级的字段业务逻辑控制
7.虚拟字段的存在,就是表单中并不存在,而只需要从其它地方引用显示的
字段
表单布局设计:这一步很关键也是较难实现,简单的做法是做一个表单模板,那么表单中的数据项说明、编辑框、数据验证就都可以用内部变量来代替,系统可提供自动生成表单的功能,用户也可以自己手工修改,当然需要提供一个表单设计器,这样使用起来就更方便了。
表单数据验证定义:定义需要验证字段的规则,验证规则,可用正则表达式的方式来定义,系统内部可自带一些常用的验证规则,复杂的情况可能会出现各字段之间的值进行比较的情况。
表单字段关联/子表单管理:定义表/表单之间的关联信息,即主键外键信息。
表单字段编辑框行为定义:主要负责处理字段值发生变化时引发的其他编辑框事件,比如连动下拉框、从选择值中返回值并赋予其他字段编辑框、其他编辑框的隐藏等。
表单运行时呈现及提交:
根据表单定义的布局及其他设置呈现表单,并一起生成验证、行为用到的JS代码。如果填写表单时,先填主表信息,然后填写从表信息,保存的临时表单值可采用SESSION进行传递,最后一起提交,提交时先写入主表信息,并返回主键值(如果存在主从表的话),然后写从表数据。
表单数据管理:
可根据字段配置信息显示表单的数据列表,并进行管理。
实现新建表单与流程的结合:
1.设计表单属性,提供了多种参数,用户可以直接选择。
2.表单中添加控件,在添加用于控制数据输入或用户选择的控件(如文
本框,单选框,下拉菜单等)后表单才有完整的功能。
3.验证数据的绑定,鼠标位于控件上时显示的图表和说明文字将表明数据
的帮定情况,也可从右侧的数据源中查看。
4.设置错误的验证,用户设置设计表单并使其具有自动检验一些错误的功
能(如必须输入),在输入出现错误自动弹出提示。
5.表单模板的上传,在流程管理中的表单模板定义中可以将之前定义好的
表单模板上传,并使之与流程绑定,也可以自由的选择要显示的字段,及调整显示的顺序。
6.在流程的定义中选择执行人是否可以修改表单业务数据的有关字段值,
这样就可以实现人员之间的协同操作。
7.流程管理中的自定表单可以看到表单的数据的一览情况。
8.如果与流程绑定,在新增时需要选择绑定的流程。
9.如果使用中的表单进行了修改,必须可以自动保存表单的历史版本,并
要实现与已经完成的业务单据数据的自动的对应关联,防止业务数据的显示异常,杜绝张冠李戴现象发生。
10.填写过表单后可以选择提交申请或保存退出,提交申请数据提交,
保存退出后数据还可以再继续编辑。
11.可以对表单数据进行灵活的查询及统计分析。
2设计器功能要点
单选对话框
多选对话框
在线编辑器
标签页
明细表
快捷控件
可编辑块
树结构
2.1 表单设计器管理主界面
用户权限用户对定义的表单进行管理,
相关操作包括:启用、停用、增加、修改、删除、关闭。
查询条件:
表单名称:用户创建的表单的名称。
表单ID:表单模板在数据库中的记录ID。
表单类别:用于用户从定义的系统参数码表中选择表单的类别,便于有些企业在表单很多的情况下进行分类管理。
表单状态:未启用(草稿)、启用、停用。
引用标志:引用、未引用。默认为未引用。启用的表单在业务办理过程中被使用,存在有对应的业务数据时,由系统自动检验该字段,把未引用改写为引用。
表单使用位置:表单在业务树结构下的位置,由管理员进行配置,此处只显示配置好的结果。
2.2 表单—增加
提供权限用户在图形界面下,增加并维护表单内容,新增自定义表单模板,完成后进行保存。
需要定义表单的属性,使用相关控件进行表单内容设置,还能定义表单的处理事件。
2.2.1表单—增加—表单属性
提供用户在图形界面内创建表单的有关属性,保存到表单属性表中。
图中,“源文件”选中按钮说明:点击选择后,显示设计的表单页面的解析文件。
表单属性有关字段说明:
表单显示名称:
显示用户新增录入的或者已经录入的单据名称,可以修改。
数据库表名称:
显示用户新增录入的或者已经录入的单据名称,保存后不可修改,需要进
行唯一性检验。
当前表单对应的数据库表名。新增表单时根据输入的表名判断当前数据库是否存在此表,若存在则让用户选择用现有表还是重命名,使用现有表新增的控件默认为不保存,从现有表选择字段则默认为保存。
表单类别:
用于用户从定义的系统参数码表中选择表单的类别,分为普通表单和其它表单(具体根据不同项目来定)便于在有些企业表单很多的情况下进行分类管理。
上传附件:
设置定义的表单是否需要上传附件。如果选择上传附件,调用附件处理模块,选是则在表单末端会显示附件列表,否则不显示。
工作流:
选择当前表单是否走工作流程,选择是则则可以在工作流管理中进行流程设置,在业务流程定义中可查询出此表单,并选择未启用、自由流程、预定义流程三种流程类型。选否则在表单提交后直接变为可执行状态。
表单宽度:
设置表单在运行时的窗体大小(不包括工作流程步骤的高度),指表单的宽度。
表单高度:
设置表单在运行时的窗体大小(不包括工作流程步骤的高度),指表单的显示高度。
鼠标右键:
光标在表单设计器的编辑框内时,点击鼠标右键,出现下述操作列表,供用户选择:
右键列表中相关功能的操作与用法类似word中的具体用法。
数据表:
COM_BILLDSI
BILLDSIID BILLDSINAME BILLDSI_STATES OPERATIONCODE DATATABLENAME DESIGN DESCRIPTION CREATEBY CREATEDATE LASTUPDATEBY LASTUPDATEDATE NODEPOSITION
DTL
DTL_TABLENAME ACCESSORY
USE_OLDTABLE
DTL_USE_OLDTABLE DTL_DISPLAY_NAME DTL_FOREIGNKEY FORMTYPE EXPLAIN_CONTENT WIDTH
HEIGHT NUMBER
VARCHAR2(100) VARCHAR2(6) VARCHAR2(10) VARCHAR2(30)
CLOB
VARCHAR2(255) VARCHAR2(20)
DATE
VARCHAR2(20)
DATE
VARCHAR2(200) CLOB
VARCHAR2(50) NUMBER
NUMBER
NUMBER
VARCHAR2(30) VARCHAR2(30) NUMBER
CLOB
NUMBER
NUMBER
2.2.2表单—增加—表单控件
本处提供各种表单控件给用户,采用对常见的功能和控件内置的方法,使得开发一些常见的功能(如数据库的增、删、改、查,树控件,表格控件)非常容
易方便,几乎不用写一行代码,直接通过控件的拖拉,然后再设置属性和事件即可完成。
在此编辑框内,用户可以在光标位置处增加文字和有关表单内容,也可以对当前选择的控件内容进行修改、删除(按.Del键)。
调整以后的表格内容应该保存到相关表中。
控件按钮说明:
所有表单控件,都包括以下公用属性:
字段名:当前字段的英文名称
标题:当前字段的中文名称
Css名:当前控件应用的样式表名称
对齐方式:当前控件内容的对齐方式
必须项:判断当前控件在表单保存时是否是必须的
边框:当前控件是否有边框
保存:当前控件是否对应数据表中的字段
只读:当前控件是否可获得焦点
颜色:控件的背景色
数据表:表单设计控件类型配置表
自定义查询字段属性表
表单设计数据字典表
2.2.2.1 单行输入框
提供用户在编辑框中的光标位置添置单行输入框,需要保存相关的设置参数。
处理界面:
字段说明:
默认值:表单初始化时的初始值
最大字节数:当前控件能允许输入内容长度
正则表达式:当前控件的输入特殊校验
2.2.2.2 多行输入框
提供用户在编辑框中的光标位置添置多行输入框,需要保存相关的设置参数。
处理界面:
字段说明:
默认值:表单初始化时的初始值
审核输入:表单如果选工作流,在相关人员审核此表单
时此控件成编辑状态(在其它界面(新增/编辑/查看)时
是只读的
2.2.2.3 下拉列表
提供用户在编辑框中的光标位置添置下拉列表,需要保存相关的设置参数。
处理界面:
字段说明:
保存值:当前控件的value值
显示值:当前控件的显示值
2.2.2.4 复选框
提供用户在编辑框中的光标位置添置复选框,需要保存相关的设置参数。
处理界面:
字段说明:
默认值:1选中值:当前控件选中时的保存值(当前控件
为保存)
2不选中值:当前控件未选中时的保存值(当前控件
为保存)
3是否选中:表单初始化时当前控件的状态
2.2.2.5 单选框
提供用户在编辑框中的光标位置添置单选框,需要保存相关的设置参数。
处理界面:
字段说明:
默认值:当前控件选中时的保存值及表单初始化时当前
控件的状态
2.2.2.6 隐藏标签
提供用户在编辑框中的光标位置添置隐藏标签,需要保存相关的设置参数。
处理界面:
字段说明:
默认值:表单初始化时的值
数据类型:当前字段的数据类型号
2.2.2.7 日历控件
提供用户在编辑框中的光标位置添置日历控件,需要保存相关的设置参数。
处理界面:
字段说明:
类型:当前控件的时间控件类型
当前日期:表单初始化时是否显示当前日期
2.2.2.8 数字控件
提供用户在编辑框中的光标位置添置数字控件,需要保存相关的设置参数。
处理界面:
字段说明:
数据精度:1整数当前控件录入时的最大整数位
数
2小数当前控件录入时的最大小数位
数
货币:当前控件在运行时做查询结果时,其列表中是否
以货币形式显示
2.2.2.9 负数控件
提供用户在编辑框中的光标位置添置负数控件,需要保存相关的设置参数。
处理界面:
字段说明:
数据精度:1整数当前控件录入时的最大整数位
数
2小数当前控件录入时的最大小数位
数
货币:当前控件在运行时做查询结果时,其列表中是否
以货币形式显示
2.2.2.10 单选选择对话框
提供用户在编辑框中的光标位置添置单选选择对话框,需要保存相关的设置参数。
处理界面:
字段说明:
数据源:当前控件对应的SQL语句,此语句有子查询时,
其主查询的关键字from,where改为_from ,_where,语句
的条件中其条件字段为表达式或子查询时其and 改为
_and ,条件中子查询带参数部分应将参数部分写在子查
询之外,
默认的参数为:curUserId: 当前用户ID,:curOrgId:当
前组织ID
显示字段:此控件在通用快捷条件查询控件界面的列表
中要显示的字段名,以分号间隔
与主表关联字段:选择此通用快捷条件查询控件列表中
能与当前表单建立唯一关系的字段
参数:点击参数信息的“+”则在参数列表中添加一新行,
参数名对应SQL语句中的参数(两冒号之间的变量,全
字匹配);参数控件对应当前表单中的保存控件及主键;
参数类型则选择参数的数据类型;默认值对当前参数赋
默认值。
返回字段:点击查询结果返回字段后面的“+”则在返回
字段中添加一新行,返回字段对应SQL语句中的查询字
段,返回控件则从当前表单中选择已有控件(注:SQL
语句中的查询字段名与返回字段名及返回控件名必须保
存一致)。
2.2.2.11 多选选择对话框
提供用户在编辑框中的光标位置添置多选选择对话框,需要保存相关的设置参数。
处理界面: