论文表单自定义设计器功能设计_第1页
论文表单自定义设计器功能设计_第2页
论文表单自定义设计器功能设计_第3页
论文表单自定义设计器功能设计_第4页
论文表单自定义设计器功能设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、表单自定义设计器功能设计1 设计思路1.1 表单自定义功能的误区1、 关于成本:表单自定义一般容易实现的仅布局、字段的增减、简单的脚本控制等,但有很多诸如复杂脚本控制、自动计算、特殊逻辑验证、主从关系,复杂基础数据选择(过滤、合并)、与其它功能模块的交互等等需求,自定义工具都不能很轻易地解决,最终可能带来的代价是重做,甚至推翻整个系统架构重新实现,付出成本是预计成本的2-4倍以上均有可能。建议采用对此类复杂需求通过关联创建人定义的sql语句来实现。2、 表单自定义功能实现的方式一般是数据库表中预制了很多字段或者是一个表中的记录存储为 id、字段名、值、字段类型,而且值的类型往往是字符型,这些做

2、法给数据的查询统计及sql优化带来的是非常大的性能损失和阻力,业务系统数据量不大的时候看不出,一旦数据业务表大到一定程度的时候,性能瓶颈就会出现。我们知道需要工作流的业务系统都是大量用户和大规模业务数据的。对于表单自定义做法,性能瓶颈是一定要考虑的;3、表单自定义往往实现的是一个数据实体的增、删、改,但对于一个系统来讲一个表单仅仅是一个功能点而已,这个功能点对于整个系统来讲远不是那么单纯的,有可能一个数据实体的资料分别在多个表单里进行更新和维护,自定义逻辑往往是处理不了它们之间的冲突,还有查询和统计分析,这些是需要关联很多基础数据、关联其它业务数据。自定义表单功能本身也只是从功能特性的角度去出

3、发,对于系统复杂的实体关系、业务模式、设计模式的支持几乎为零,一个高质量系统需要的因素基本实现不了;4、企业使用表单自定义工具的时候往往已经有了很多的系统,比如hr、crm甚至erp系统,很多关联数据会是来自于这些系统的数据。表单自定义工具往往无法提供高可靠性的集成方案,即使能集成也是勉强的,后续会付出很多手工同步、统计口径不一致等代价,为企业整体的信息化效果大打折扣;5、另外从实际的使用情况而言,实现一个表单自定义功能的目标往往是为了方便用户实现自己的业务逻辑,但实际上很少客户会自己去自定义这些表单。而开发人员都会热忠于实现一个表单自定义工具,但不会愿意长期去做表单的定制工作。对于团队的管理

4、者来说用程序员的工资去做表单配置工作也是不划算的;6、假如我们一定要去实现一个好的表单自定义工具,一定是有很多事件接口的、一定是要能支持调试的、布局一定要能有足够的细致、自定义过程中要有提供给业务人员的自动向导(比开发人员需要的向导更加傻瓜化)、一定能做到足够的优化或支持优化的实现、能支持缓存、调用程序集、从webservice获取信息、能对页面交互过程进行优化。这些都实现后,会发现做的表单定义工具其实就是大软件公司研发的ide开发环境,如:visual studio 开发环境。鉴于此,我认为公司在此问题上应该保证有足够的人员投入以及开发周期,否则肯定会欲速则不达。1.2 系统设计思路设计的系

5、统初步适用于网上oa系统的自定义表单模块的快速开发,需要结合工作流系统功能,并实现数据导入、导出以及打印功能;同时可以用于公司在软件投标过程中实现快速原型。成熟后可以用于信息管理系统方面的软件开发项目等。通过表单的定义自动创建/修改自定义数据表, 复杂数据字段的执行通过设计器的有关表单控件提供用户定义的相关sql语句来实现。包括几部分:表单定义管理部分、表单呈现/提交部分、表单数据查看/管理部分。表单定义管理:表单基本信息管理(表单名称、描述)、表单存储表字段管理、表单布局设计、表单数据验证定义、表单字段关联/子表单管理、表单字段编辑框行为管理。表单存储表字段定义:定义表单中用到的数据项,包括

6、字段名、字段类型、长度、默认值、编辑框类型、是否允许为空、是否自增长字段、分组名称、是否在列表中显示等信息。编辑框类型一般有:文本框、文本域、复选框、单选框、列表框、时间日期选择、文件上传框等;这里定义的是表单主表字段,注意每张表单仅针对一张表,否则操作多张表的sql不容易处理,涉及到主从表的情况可用子表单来处理。对字段的相关要求还包括:1. 涉及到字段的权限级别控制2. 涉及到字段的自定义下拉列表控制3. 涉及到字段的默认值控制4. 涉及到字段的多层关联的数据引用控制,初步实现单层关联应用5. 需要考虑自定义字段的值参与系统原来的业务逻辑运算如何设置的问题6. 初步达到代码级的字段业务逻辑控

7、制7. 虚拟字段的存在,就是表单中并不存在,而只需要从其它地方引用显示的字段表单布局设计:这一步很关键也是较难实现,简单的做法是做一个表单模板,那么表单中的数据项说明、编辑框、数据验证就都可以用内部变量来代替,系统可提供自动生成表单的功能,用户也可以自己手工修改,当然需要提供一个表单设计器,这样使用起来就更方便了。表单数据验证定义:定义需要验证字段的规则,验证规则,可用正则表达式的方式来定义,系统内部可自带一些常用的验证规则,复杂的情况可能会出现各字段之间的值进行比较的情况。表单字段关联/子表单管理:定义表/表单之间的关联信息,即主键外键信息。表单字段编辑框行为定义:主要负责处理字段值发生变化

8、时引发的其他编辑框事件,比如连动下拉框、从选择值中返回值并赋予其他字段编辑框、其他编辑框的隐藏等。表单运行时呈现及提交:根据表单定义的布局及其他设置呈现表单,并一起生成验证、行为用到的js代码。如果填写表单时,先填主表信息,然后填写从表信息,保存的临时表单值可采用session进行传递,最后一起提交,提交时先写入主表信息,并返回主键值(如果存在主从表的话),然后写从表数据。表单数据管理:可根据字段配置信息显示表单的数据列表,并进行管理。实现新建表单与流程的结合:1. 设计表单属性,提供了多种参数,用户可以直接选择。2. 表单中添加控件, 在添加用于控制数据输入或用户选择的控件(如文本框,单选框

9、,下拉菜单等)后表单才有完整的功能。3. 验证数据的绑定,鼠标位于控件上时显示的图表和说明文字将表明数据的帮定情况,也可从右侧的数据源中查看。4. 设置错误的验证,用户设置设计表单并使其具有自动检验一些错误的功能(如必须输入),在输入出现错误自动弹出提示。5. 表单模板的上传,在流程管理中的表单模板定义中可以将之前定义好的表单模板上传,并使之与流程绑定,也可以自由的选择要显示的字段,及调整显示的顺序。6. 在流程的定义中选择执行人是否可以修改表单业务数据的有关字段值,这样就可以实现人员之间的协同操作。7. 流程管理中的自定表单可以看到表单的数据的一览情况。8. 如果与流程绑定,在新增时需要选择

10、绑定的流程。9. 如果使用中的表单进行了修改,必须可以自动保存表单的历史版本,并要实现与已经完成的业务单据数据的自动的对应关联,防止业务数据的显示异常,杜绝张冠李戴现象发生。10. 填写过表单后可以选择提交申请或保存退出,提交申请数据提交,保存退出后数据还可以再继续编辑。11. 可以对表单数据进行灵活的查询及统计分析。2 设计器功能要点2.1 表单设计器管理主界面用户权限用户对定义的表单进行管理,相关操作包括:启用、停用、增加、修改、删除、关闭。查询条件:表单名称:用户创建的表单的名称。表单id:表单模板在数据库中的记录id。表单类别:用于用户从定义的系统参数码表中选择表单的类别,便于有些企业

11、在表单很多的情况下进行分类管理。表单状态:未启用(草稿)、启用、停用。引用标志:引用、未引用。默认为未引用。启用的表单在业务办理过程中被使用,存在有对应的业务数据时,由系统自动检验该字段,把未引用改写为引用。表单使用位置:表单在业务树结构下的位置,由管理员进行配置,此处只显示配置好的结果。2.2 表单增加提供权限用户在图形界面下,增加并维护表单内容,新增自定义表单模板,完成后进行保存。需要定义表单的属性,使用相关控件进行表单内容设置,还能定义表单的处理事件。2.2.1 表单增加表单属性 提供用户在图形界面内创建表单的有关属性,保存到表单属性表中。 图中,“源文件”选中按钮说明:点击选择后,显示

12、设计的表单页面的解析文件。表单属性有关字段说明:表单显示名称:显示用户新增录入的或者已经录入的单据名称,可以修改。数据库表名称:显示用户新增录入的或者已经录入的单据名称,保存后不可修改,需要进行唯一性检验。当前表单对应的数据库表名。新增表单时根据输入的表名判断当前数据库是否存在此表,若存在则让用户选择用现有表还是重命名,使用现有表新增的控件默认为不保存,从现有表选择字段则默认为保存。表单类别: 用于用户从定义的系统参数码表中选择表单的类别,分为普通表单和其它表单(具体根据不同项目来定)便于在有些企业表单很多的情况下进行分类管理。上传附件: 设置定义的表单是否需要上传附件。如果选择上传附件,调用

13、附件处理模块,选是则在表单末端会显示附件列表,否则不显示。工作流: 选择当前表单是否走工作流程,选择是则则可以在工作流管理中进行流程设置,在业务流程定义中可查询出此表单,并选择未启用、自由流程、预定义流程三种流程类型。选否则在表单提交后直接变为可执行状态。表单宽度: 设置表单在运行时的窗体大小(不包括工作流程步骤的高度),指表单的宽度。表单高度:设置表单在运行时的窗体大小(不包括工作流程步骤的高度),指表单的显示高度。 鼠标右键:光标在表单设计器的编辑框内时,点击鼠标右键,出现下述操作列表,供用户选择:右键列表中相关功能的操作与用法类似word中的具体用法。数据表:2.2.2 表单增加表单控件

14、本处提供各种表单控件给用户,采用对常见的功能和控件内置的方法,使得开发一些常见的功能(如数据库的增、删、改、查,树控件,表格控件)非常容易方便,几乎不用写一行代码,直接通过控件的拖拉,然后再设置属性和事件即可完成。在此编辑框内,用户可以在光标位置处增加文字和有关表单内容,也可以对当前选择的控件内容进行修改、删除(按.del键)。调整以后的表格内容应该保存到相关表中。控件按钮说明: 所有表单控件,都包括以下公用属性:字段名:当前字段的英文名称标题:当前字段的中文名称css名:当前控件应用的样式表名称对齐方式:当前控件内容的对齐方式必须项:判断当前控件在表单保存时是否是必须的边框:当前控件是否有边

15、框保存:当前控件是否对应数据表中的字段只读:当前控件是否可获得焦点颜色:控件的背景色 数据表:表单设计控件类型配置表 自定义查询字段属性表表单设计数据字典表2.2.2.1 单行输入框提供用户在编辑框中的光标位置添置单行输入框,需要保存相关的设置参数。处理界面: 字段说明:默认值:表单初始化时的初始值最大字节数:当前控件能允许输入内容长度正则表达式:当前控件的输入特殊校验2.2.2.2 多行输入框提供用户在编辑框中的光标位置添置多行输入框,需要保存相关的设置参数。处理界面:字段说明:默认值:表单初始化时的初始值审核输入:表单如果选工作流,在相关人员审核此表单时此控件成编辑状态(在其它界面(新增/

16、编辑/查看)时是只读的2.2.2.3 下拉列表提供用户在编辑框中的光标位置添置下拉列表,需要保存相关的设置参数。处理界面:字段说明:保存值:当前控件的value值显示值:当前控件的显示值2.2.2.4 复选框提供用户在编辑框中的光标位置添置复选框,需要保存相关的设置参数。 处理界面: 字段说明:默认值:1选中值:当前控件选中时的保存值(当前控件为保存)2不选中值:当前控件未选中时的保存值(当前控件为保存)3是否选中:表单初始化时当前控件的状态 2.2.2.5 单选框提供用户在编辑框中的光标位置添置单选框,需要保存相关的设置参数。 处理界面:字段说明:默认值:当前控件选中时的保存值及表单初始化时

17、当前控件的状态2.2.2.6 隐藏标签提供用户在编辑框中的光标位置添置隐藏标签,需要保存相关的设置参数。处理界面:字段说明:默认值:表单初始化时的值数据类型:当前字段的数据类型号2.2.2.7 日历控件提供用户在编辑框中的光标位置添置日历控件,需要保存相关的设置参数。 处理界面:字段说明:类型:当前控件的时间控件类型当前日期:表单初始化时是否显示当前日期2.2.2.8 数字控件提供用户在编辑框中的光标位置添置数字控件,需要保存相关的设置参数。 处理界面:字段说明:数据精度:1整数当前控件录入时的最大整数位数 2小数当前控件录入时的最大小数位数货币:当前控件在运行时做查询结果时,其列表中是否以货

18、币形式显示2.2.2.9 负数控件提供用户在编辑框中的光标位置添置负数控件,需要保存相关的设置参数。 处理界面:字段说明:数据精度:1整数当前控件录入时的最大整数位数 2小数当前控件录入时的最大小数位数货币:当前控件在运行时做查询结果时,其列表中是否以货币形式显示2.2.2.10 单选选择对话框提供用户在编辑框中的光标位置添置单选选择对话框,需要保存相关的设置参数。 处理界面:字段说明:数据源:当前控件对应的sql语句,此语句有子查询时,其主查询的关键字from,where改为_from ,_where,语句的条件中其条件字段为表达式或子查询时其 and 改为 _and ,条件中子查询带参数部

19、分应将参数部分写在子查询之外,默认的参数为 :curuserid: 当前用户id,:curorgid:当前组织id显示字段:此控件在通用快捷条件查询控件界面的列表中要显示的字段名,以分号间隔与主表关联字段:选择此通用快捷条件查询控件列表中能与当前表单建立唯一关系的字段参数:点击参数信息的“+”则在参数列表中添加一新行,参数名对应sql语句中的参数(两冒号之间的变量,全字匹配);参数控件对应当前表单中的保存控件及主键;参数类型则选择参数的数据类型;默认值对当前参数赋默认值。返回字段:点击查询结果返回字段后面的“+”则在返回字段中添加一新行,返回字段对应sql语句中的查询字段,返回控件则从当前表单

20、中选择已有控件(注:sql语句中的查询字段名与返回字段名及返回控件名必须保存一致)。2.2.2.11 多选选择对话框提供用户在编辑框中的光标位置添置多选选择对话框,需要保存相关的设置参数。 处理界面:字段说明:数据源:当前控件对应的sql语句,此语句有子查询时,其主查询的关键字from,where改为_from ,_where,语句的条件中其条件字段为表达式或子查询时其 and 改为 _and ,条件中子查询带参数部分应将参数部分写在子查询之外,默认的参数为 :curuserid: 当前用户id,:curorgid:当前组织id,与单选对话框不同的是此语句的查询字段为两个,第一个为id之类的字

21、段,第二个为显示出来的字段,其通用快捷条件查询控件显示列表中为第二个字段参数:点击参数信息的“+”则在参数列表中添加一新行,参数名对应sql语句中的参数(两冒号之间的变量,全字匹配);参数控件对应当前表单中的保存控件;参数类型则选择参数的数据类型。 返回字段:点击查询结果返回字段后面的“+”则在返回字段中添加一新行,返回字段对应sql语句中的查询字段,返回控件则从当前表单中选择已有控件。2.2.2.12 在线编辑器提供用户在编辑框中的光标位置添置在线编辑器,需要保存相关的设置参数。 处理界面:说明:此控件可让用户输入带格式的各种文本内容,目前是用于非保存字段,在设计界面是一个图片,这个图片的大

22、小决定其在运行时的编辑器大小。2.2.2.13 标签页提供用户在编辑框中的光标位置添置标签页,此控件不对应数据表中的任何字段,用于页面展示 处理界面:字段说明:页头名称:用于显示的页头的名称页头高度:控件页头的高度页头百分比:用于控件页头显示的页面比例页体高度:用于控件页体的显示高度2.2.2.14 明细表提供用户在编辑框中的光标位置添置明细表,需要保存相关的设置参数。可以添置多个明细表。 处理界面:字段说明:显示名:明细表的中文名使用名:明细表的数据库表名1、选择已有表做为明细表外键字段:与主表关联的字段(从数据表的number字段中选择)添加按钮:直接添加新字段(此字段是不能选择保存的)其

23、它:从现在表中选择字段做为明细表字段字段名:不能编辑,为选择字段的名称2、新建数据表外键字段:默认为xr_child_parentid添加按钮:直接添加新字段,可选择是否保存其它:暂为空字段名:当前字段的使用名,不能重复字段类型:当前字段的数据类型(修改里不可编辑)审核修改:当前字段在审核时可修改其值表达式:或对日期或数字型的字段进行计算,其来源字段只能是保存字段,表达式对应的字段将不可保存求和:对数字类型的字段是否求和(即显示小计,合计项)参数做为条件:如果当前字段是有数据源的,在运行界面的查询结果不根据此选项是否把数据源参数做为主查询的条件焦点去向字段:当按enter键时的焦点控件字段(默

24、认依顺序)表达式内容:当前字段的运算公式编辑控件:当前字段在录入数据里的状态数据源:当前字段在可编辑时的数据来源是否分页:在运行时的查询或编辑时是否显示分页信息,不分页则显示全部是否显示数据列:基本数据列在运行时是否可见明细表行数:默认的明细表表格行数2.2.2.15 快捷控件提供用户在编辑框中的光标位置添置快捷控件,需要保存相关的设置参数。快捷控件提供的类型有:当前用户,当前部门,单据编号,单据日期,快捷控件在运行里将自动的为其赋值处理界面:字段说明:主键控件:当类型为当前用户或当前部门时选择存其id的字段控件(大多数情况下数据表中存的是id,并非其名称)。2.2.2.16 可编辑块提供用户

25、在编辑框中的光标位置添置可编辑块,需要保存相关的设置参数。此控件不对应数据表中的任何字段,在运行时其外观是不可见的,但当焦点获得时可录入文本 处理界面:2.2.2.17 树结构提供用户在编辑框中的光标位置添置树结构,需要保存相关的设置参数。 处理界面:字段说明:查询名称:树界面的显示名称树结构表名:用于查询的数据表名或视图(只用于单表,多表需够成视图)主键名:当前表或视图的主键或类似主键的字段父id名:当前表或视图中与所写主键名有父子关系的字段查询条件:查询里的过滤条件排序条件:与主表关联字段:能与当前表单建立唯一关系的字段选末节:在树界面是否点击末级才选中内容树表头信息:当点击“+”号将添加

26、一行表头字段录入行,此行中字段名为树结构表名中的相关字段;字段显示名为此字段在树运行界面的显示名称;字段类型为此字段的数据类型;树结构为当前字段将以树的形式显示;隐藏将在树运行界面隐藏该字段返回字段:点击查询结果返回字段后面的“+”则在返回字段中添加一新行。返回字段列针对主键字段或表头字段,返回控件则是当前字段对应的表单控件。2.2.3 表单增加表单事件提供用户增加、维护表单的事件,完成后将表单属性及当前设计区域的内容(包括明细表)保存进数据库到表单事件表中。“源文件”选中按钮:点击选择后,显示设计的表单页面的解析文件。表单事件按钮说明:按钮说明如下:2.2.3.1 保存表单 用户将表单属性及

27、当前设计区域的内容(包括明细表)保存进数据库,只有保存后才能进行后续的操作(添加说明、设置字段属性、设置表单按钮、添加查询条件、自定义查询、预览等)。否则进行后续操作时进行提示:如果表单是已经保存过的,进行版本更新,显示如下:空表单(表单页面编辑框中没有任何内容)不能保存,提示如下: 表单状态:0未提交,1000可执行,2000已完成,3000已停用,-1000已作废数据表:表单设计定义主表 表单设计定义明细表 表单设计数据字典表2.2.3.2 添加说明提供用户在文本编辑框中录入当前表单的说明内容。可以任意增加内容,完成后点击按钮“确定”由系统以大对象保存起来。 数据表:表单设计定义主表 2.

28、2.3.3 设置字段属性 将先对表单内容进行保存,其后将弹出表单中的保存控件或与通用快捷条件查询控件/树级联相关的控件进行字段属性的设置界面:字段说明:1、 字段名称:对应表单控件中标题2、 条件查询编号l 维护:在维护运行界面的查询条件顺序号l 审核:已取消l 查询:在查询运行界面的查询条件顺序号l 数据源:在查询界面的查询条件中对通用快捷条件查询控件或树的数据来源(可与编辑界面不一致),其中单据状态是自定义其键值(可取系统参数表中定义的部分)3、 查询结果编号l 维护:在维护运行界面的查询结果顺序号l 审核:已取消l 查询:在查询运行界面的查询结果顺序号l 隐藏:在查询界面的查询列表中是否

29、做隐藏字段4、 流程分支条件标识表单走工作流程时,在预定义流程时是否可用此字段做为分支条件5、 审核中可修改标识表单走工作流程时,此字段是否可在审核时做为编辑字段6、 是否求和在查询主界面的列表中是否显示此字段的小计/合计选项7、 是否刷新在查看或编辑表单里当前字段的值是否从数据库中取最新的数据表:自定义查询表自定义查询字段属性表表单设计数据字典表2.2.3.4 设置表单按钮将先对表单内容进行保存,表单保存后系统自动添加默认的按钮,可对按钮的显示名及事件自定义。包括:提供用户设置表单在维护节点、审核节点和查询节点下的有关操作按钮。 数据表:表单设计定义主表-按钮表 2.2.3.5 添加查询条件

30、提供用户设置当前表单的通用查询过滤条件。将可以分别添加维护/审核/查询主界面的过滤条件,其条件为 表名.字段名+运算符号+参数(或常量) 数据表:自定义查询表2.2.3.6 自定义查询提供用户设置当前表单的自定义查询条件,用于在维护、审核、查看业务单据等操作时,用户录入查询条件。若运行界面的查询条件或查询结果字段的来源超出了表单控件的范围,可以在此自定义sql语句,并添加相应的查询控件控件类型: 控件类型选择项:数据表:自定义查询表自定义查询字段属性表2.2.3.7 表单预览本功能提供权限用户对自己设计的表单随时进行全局预览展示,达到所见即所得的效果。通过预览,用户可以发现不合理的局部细节,然

31、后返回修改操作功能中,对不满意的局部细节进行修改,使设计的表单达到理想的效果。下图为预览效果示例图: 数据表:表单设计定义主表表单设计定义明细表表单设计定义主表-按钮表 表单设计数据字典表 表单设计控件类型配置表 自定义查询表 自定义查询字段属性表 附件表 2.2.3.8 关闭设计器提供用户退出设计器处理界面,退出前提示用户进行数据保存,用户确认后予以关闭。2.3 表单修改用于用户修改已经创建的自定义表单模板,完成后进行保存。包括修改表单的属性,使用相关控件进行表单内容修改,以及修改表单的处理事件。相关操作与表单-新增基本一致。只能修改未启用或者处于停用状态的表单:修改表单时需要先检验引用标志和启用标志,如果已经启用或者引用,必须先停用才能进行修改。被引用的表单在被停用修改时必须进行版本管理,原有的表单不能直接被刷新;未启用的表单在修改保存时进行直接刷新。修改过程中保存表单时,需要检验有关内容。 数据表:表单设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论