表单设计器功能设计.docx
- 文档编号:25009780
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:22
- 大小:25.49KB
表单设计器功能设计.docx
《表单设计器功能设计.docx》由会员分享,可在线阅读,更多相关《表单设计器功能设计.docx(22页珍藏版)》请在冰豆网上搜索。
表单设计器功能设计
表单自定义设计器
1设计思路
1.1表单自定义功能的误区
1、关于成本:
表单自定义一般容易实现的仅布局、字段的增减、简单的脚本控制等,但有很多诸如复杂脚本控制、自动计算、特殊逻辑验证、主从关系,复杂基础数据选择(过滤、合并)、与其它功能模块的交互等等需求,自定义工具都不能很轻易地解决,最终可能带来的代价是重做,甚至推翻整个系统架构重新实现,付出成本是预计成本的2-4倍以上均有可能。
建议采用对此类复杂需求通过关联创建人定义的SQL语句来实现。
2、表单自定义功能实现的方式一般是数据库表中预制了很多字段或者是一个表中的记录存储为ID、字段名、值、字段类型,而且值的类型往往是字符型,这些做法给数据的查询统计及SQL优化带来的是非常大的性能损失和阻力,业务系统数据量不大的时候看不出,一旦数据业务表大到一定程度的时候,性能瓶颈就会出现。
我们知道需要工作流的业务系统都是大量用户和大规模业务数据的。
对于表单自定义做法,性能瓶颈是一定要考虑的;
3、?
?
表单自定义往往实现的是一个数据实体的增、删、改,但对于一个系统来讲一个表单仅仅是一个功能点而已,这个功能点对于整个系统来讲远不是那么单纯的,有可能一个数据实体的资料分别在多个表单里进行更新和维护,自定义逻辑往往是处理不了它们之间的冲突,还有查询和统计分析,这些是需要关联很多基础数据、关联其它业务数据。
自定义表单功能本身也只是从功能特性的角度去出发,对于系统复杂的实体关系、业务模式、设计模式的支持几乎为零,一个高质量系统需要的因素基本实现不了;
4、?
企业使用表单自定义工具的时候往往已经有了很多的系统,比如HR、CRM甚至ERP系统,很多关联数据会是来自于这些系统的数据。
表单自定义工具往往无法提供高可靠性的集成方案,即使能集成也是勉强的,后续会付出很多手工同步、统计口径不一致等代价,为企业整体的信息化效果大打折扣;
5、?
另外从实际的使用情况而言,实现一个表单自定义功能的目标往往是为了方便用户实现自己的业务逻辑,但实际上很少客户会自己去自定义这些表单。
而开发人员都会热忠于实现一个表单自定义工具,但不会愿意长期去做表单的定制工作。
对于团队的管理者来说用程序员的工资去做表单配置工作也是不划算的;
6、?
假如我们一定要去实现一个好的表单自定义工具,一定是有很多事件接口的、一定是要能支持调试的、布局一定要能有足够的细致、自定义过程中要有提供给业务人员的自动向导(比开发人员需要的向导更加傻瓜化)、一定能做到足够的优化或支持优化的实现、能支持缓存、调用程序集、从WebService获取信息、能对页面交互过程进行优化。
。
。
。
。
。
这些都实现后,会发现做的表单定义工具其实就是大软件公司研发的IDE开发环境,如:
visualstudio开发环境。
鉴于此,我认为公司在此问题上应该保证有足够的人员投入以及开发周期,否则肯定会欲速则不达。
1.2系统设计思路
设计的系统初步适用于网上OA系统的自定义表单模块的快速开发,需要结合工作流系统功能,并实现数据导入、导出以及打印功能;同时可以用于公司在软件投标过程中实现快速原型。
成熟后可以用于信息管理系统方面的软件开发项目等。
通过表单的定义自动创建/修改自定义数据表,复杂数据字段的执行通过设计器的有关表单控件提供用户定义的相关SQL语句来实现。
包括几部分:
表单定义管理部分、表单呈现/提交部分、表单数据查看/管理部分。
表单定义管理:
表单基本信息管理(表单名称、描述)、表单存储表字段管理、表单布局设计、表单数据验证定义、表单字段关联/子表单管理、表单字段编辑框行为管理。
表单存储表字段定义:
定义表单中用到的数据项,包括字段名、字段类型、长度、默认值、编辑框类型、是否允许为空、是否自增长字段、分组名称、是否在列表中显示等信息。
编辑框类型一般有:
文本框、文本域、复选框、单选框、列表框、时间日期选择、文件上传框等;这里定义的是表单主表字段,注意每张表单仅针对一张表,否则操作多张表的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中的具体用法。
数据表:
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多选选择对话框
提供用户在编辑框中的光标位置添置多选选择对话框,需要保存相关的设置参数。
处理界面:
字段说明:
数据源:
当前控件对应的SQL语句,此语句有子查询时,其主查询的关键字from,where改为_from,_where,语句的条件中其条件字段为表达式或子查询时其and改为_and,条件中子查询带参数部分应将参数部分写在子查询之外,
默认的参数为:
curUserId:
当前用户ID,:
curOrgId:
当前组织ID,与单选对话框不同的是此语句的查询字段为两个,第一个为ID之类的字段,第二个为显示出来的字段,其通用快捷条件查询控件显示列表中为第二个字段
参数:
点击参数信息的“+”则在参数列表中添加一新行,参数名对应SQL语句中的参数(两冒号之间的变量,全字匹配);参数控件对应当前表单中的保存控件;参数类型则选择参数的数据类型。
返回字段:
点击查询结果返回字段后面的“+”则在返回字段中添加一新行,返回字段对应SQL语句中的查询字段,返回控件则从当前表单中选择已有控件。
2.2.2.12在线编辑器
提供用户在编辑框中的光标位置添置在线编辑器,需要保存相关的设置参数。
处理界面:
说明:
此控件可让用户输入带格式的各种文本内容,目前是用于非保存字段,在设计界面是一个图片,这个图片的大小决定其在运行时的编辑器大小。
2.2.2.13标签页
提供用户在编辑框中的光标位置添置标签页,此控件不对应数据表中的任何字段,用于页面展示
处理界面:
字段说明:
页头名称:
用于显示的页头的名称
页头高度:
控件页头的高度
页头百分比:
用于控件页头显示的页面比例
页体高度:
用于控件页体的显示高度
2.2.2.14明细表
提供用户在编辑框中的光标位置添置明细表,需要保存相关的设置参数。
可以添置多个明细表。
处理界面:
字段说明:
显示名:
明细表的中文名
使用名:
明细表的数据库表名
1、选择已有表做为明细表
外键字段:
与主表关联的字段(从数据表的number字段中选择)
添加按钮:
直接添加新字段(此字段是不能选择保存的)
其它:
从现在表中选择字段做为明细表字段
字段名:
不能编辑,为选择字段的名称
2、新建数据表
外键字段:
默认为xr_child_parentId
添加按钮:
直接添加新字段,可选择是否保存
其它:
暂为空
字段名:
当前字段的使用名,不能重复
字段类型:
当前字段的数据类型(修改里不可编辑)
审核修改:
当前字段在审核时可修改其值
表达式:
或对日期或数字型的字段进行计算,其来源字段只能是保存字段,表达式对应的字段将不可保存
求和:
对数字类型的字段是否求和(即显示小计,合计项)
参数做为条件:
如果当前字段是有数据源的,在运行界面的查询结果不根据此选项是否把数据源参数做为主查询的条件
焦点去向字段:
当按enter键时的焦点控件字段(默认依顺序)
表达式内容:
当前字段的运算公式
编辑控件:
当前字段在录入数据里的状态
数据源:
当前字段在可编辑时的数据来源
是否分页:
在运行时的查询或编辑时是否显示分页信息,不分页则显示全部
是否显示数据列:
基本数据列在运行时是否可见
明细表行数:
默认的明细表表格行数
2.2.2.15快捷控件
提供用户在编辑框中的光标位置添置快捷控件,需要保存相关的设置参数。
快捷控件提供的类型有:
当前用户,当前部门,单据编号,单据日期,快捷控件在运行里将自动的为其赋值
处理界面:
字段说明:
主键控件:
当类型为当前用户或当前部门时选择存其ID的字段控件(大多数情况下数据表中存的是ID,并非其名称)。
2.2.2.16可编辑块
提供用户在编辑框中的光标位置添置可编辑块,需要保存相关的设置参数。
此控件不对应数据表中的任何字段,在运行时其外观是不可见的,但当焦点获得时可录入文本
处理界面:
2.2.2.17树结构
提供用户在编辑框中的光标位置添置树结构,需要保存相关的设置参数。
处理界面:
字段说明:
查询名称:
树界面的显示名称
树结构表名:
用于查询的数据表名或视图(只用于单表,多表需够成视图)
主键名:
当前表或视图的主键或类似主键的字段
父ID名:
当前表或视图中与所写主键名有父子关系的字段
查询条件:
查询里的过滤条件
排序条件:
与主表关联字段:
能与当前表单建立唯一关系的字段
选末节:
在树界面是否点击末级才选中内容
树表头信息:
当点击“+”号将添加一行表头字段录入行,此行中字段名为树结构表名中的相关字段;字段显示名为此字段在树运行界面的显示名称;字段类型为此字段的数据类型;树结构为当前字段将以树的形式显示;隐藏将在树运行界面隐藏该字段
返回字段:
点击查询结果返回字段后面的“+”则在返回字段中添加一新行。
返回字段列针对主键字段或表头字段,返回控件则是当前字段对应的表单控件。
2.2.3表单—增加—表单事件
提供用户增加、维护表单的事件,完成后将表单属性及当前设计区域的内容(包括明细表)保存进数据库到表单事件表中。
“源文件”选中按钮:
点击选择后,显示设计的表单页面的解析文件。
表单事件按钮说明:
按钮说明如下:
2.2.3.1保存表单
用户将表单属性及当前设计区域的内容(包括明细表)保存进数据库
,只有保存后才能进行后续的操作(添加说明、设置字段属性、设置表单按钮、添加查询条件、自定义查询、预览等)。
否则进行后续操作时进行提示:
如果表单是已经保存过的,进行版本更新,显示如下:
空表单(表单页面编辑框中没有任何内容)不能保存,提示如下:
表单状态:
0未提交,1000可执行,2000已完成,3000已停用,-1000已作废
数据表:
表单设计定义主表
表单设计定义明细表
表单设计数据字典表
2.2.3.2添加说明
提供用户在文本编辑框中录入当前表单的说明内容。
可以任意增加内容,完成后点击按钮“确定”由系统以大对象保存起来。
数据表:
表单设计定义主表
2.2.3.3设置字段属性
将先对表单内容进行保存,其后将弹出表单中的保存控件或与通用快捷条件查询控件/树级联相关的控件进行字段属性的设置界面:
字段说明:
1、字段名称:
对应表单控件中标题
2、条件查询编号
●维护:
在维护运行界面的查询条件顺序号
●审核:
已取消
●查询:
在查询运行界面的查询条件顺序号
●数据源:
在查询界面的查询条件中对通用快捷条件查询控件或树的数据来源(可与编辑界面不一致),其中单据状态是自定义其键值(可取系统参数表中定义的部分)
3、查询结果编号
●维护:
在维护运行界面的查询结果顺序号
●审核:
已取消
●查询:
在查询运行界面的查询结果顺序号
●隐藏:
在查询界面的查询列表中是否做隐藏字段
4、流程分支条件标识
表单走工作流程时,在预定义流程时是否可用此字段做为分支条件
5、审核中可修改标识
表单走工作流程时,此字段是否可在审核时做为编辑字段
6、是否求和
在查询主界面的列表中是否显示此字段的小计/合计选项
7、是否刷新
在查看或编辑表单里当前字段的值是否从数据库中取最新的
数据表:
自定义查询表
自定义查询字段属性表
表单设计数据字典表
2.2.3.4设置表单按钮
将先对表单内容进行保存,表单保存后系统自动添加默认的按钮,可对按钮的显示名及事件自定义。
包括:
提供用户设置表单在维护节点、审核节点和查询节点下的有关操作按钮。
数据表:
表单设计定义主表-按钮表
2.2.3.5添加查询条件
提供用户设置当前表单的通用查询过滤条件。
将可以分别添加维护/审核/查询主界面的过滤条件,其条件为表名.字段名+运算符号+参数(或常量)
数据表:
自定义查询表
2.2.3.6自定义查询
提供用户设置当前表单的自定义查询条件,用于在维护、审核、查看业务单据等操作时,用户录入查询条件。
若运行界面的查询条件或查询结果字段的来源超出了表单控件的范围,可以在此自定义SQL语句,并添加相应的查询控件
控件类型:
控件类型选择项:
数据表:
自定义查询表
自定义查询字段属性表
2.2.3.7表单预览
本功能提供权限用户对自己设计的表单随时进行全局预览展示,达到所见即所得的效果。
通过预览,用户可以发现不合理的局部细节,然后返回修改操作功能中,对不满意的局部细节进行修改,使设计的表单达到理想的效果。
下图为预览效果示例图:
数据表:
表单设计定义主表
表单设计定义明细表
表单设计定义主表-按钮表
表单设计数据字典表
表单设计控件类型配置表
自定义查询表
自定义查询字段属性表
附件表
2.2.3.8关闭设计器
提供用户退出设计器处理界面,退出前提示用户进行数据保存,用户确认后予以关闭。
2.3表单—修改
用于用户修改已经创建的自定义表单模板,完成后进行保存。
包括修改表单的属性,使用相关控件进行表单内容修改,以及修改表单的处理事件。
相关操作与表单--新增基本一致。
只能修改未启用或者处于停用状态的表单:
修改表单时需要先检验引用标志和启用标志,如果已经启用或者引用,必须先停用才能进行修改。
被引用的表单在被停用修改时必须进行版本管理,原有的表单不能直接被刷新;未启用的表单在修改保
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 表单 设计 功能设计