表单自定义设计器功能设计--2012毕业论文
自定义表单设计思路

自定义表单设计思路为了满足与现有工作流系统的耦合,在对现有工作流进行适当修改的基础上,定制表单系统(包括与工作流相关的)的设计计划如下:1。
基本功能模块:部门、角色、人员信息、团队和组、职位(所有这些都可能是潜在的流程参与者)在现有基础上适当扩展。
2。
权限管理:在操作权限中增加字段权限和记录权限,即表单权限、记录权限和字段权限。
3。
表单的基本信息:表单对应的表实体和实体属性的定义;4。
可视化表单定制工具:实现基于网络的图形表单设计器,努力实现可拖动控件,不需要安装任何客户端控件;困难在于数据绑定,即页面元素到数据表字段的映射。
此外,动态数据存储结构、表间数据校验和计算、主从表建立等问题也是难点。
因此,相应的样式库、脚本库、函数库、模板库等。
应该建立。
5。
除了可视化的表单定制工具外,还应具有表单加载、表单分析、表单数据处理和表单存储功能;6.设计起点:努力为未来的系统实现准备(即系统的运行已经是过程驱动或服务驱动的),以面向服务或面向过程的方式构建系统,使未来的系统维护不会停留在代码级维护水平。
7。
设计目标:我们开发的定制表单系统是实现工作流和定制表单松耦合的好方法。
它使用自定义表单,能够有效地将工作流与工作流过程定义方法和工作流系统结构结合起来。
8.整个表单系统的设计采用分层建模的方法进行设计和开发,分为数据层建模、业务层建模和表示层建模9。
采用基于描述的方法来提高表单的可维护性、可扩展性和灵活性。
表单数据模型、业务模型和表示模型是否用XML描述,需要讨论后确定(设计的表单以XML的形式保存在数据库的指定表中);10。
最初假设我们开发的自定义表单系统是基于XForms标准,而不是传统的HTML表单标准。
表单数据、行为和表示的分类也需要在设计者表单模板+数据中得到反映,设计者表单模板+数据本质上是以XML为中心的,实现了表单数据模型和表示层(表单格式)的分离创建表单的一般步骤如下: 步骤1:定义表单的基本信息;的第二步是建立表单设计者的数学模型。
自定义表单设计思路

自定义表单设计思路为了满足和现有工作流系统的耦合,在适当改动现有工作流的基础上,对自定义表单系统(包括与工作流相关)的设计做出如下的规划:1.基础功能模块:部门、角色、人员信息、班组、岗位(这些都可能是潜在的流程参与者)在现有基础上适当扩展;2.权限管理:需要在操作权限的基础上增加字段权限和记录权限,也就是要实现表单权限、记录权限、字段权限;3.表单基本信息:表单对应的表实体的定义、实体属性定义等等;4.可视化的表单定制工具:实现基于web的图形化表单设计器,争取做到可拖拽控件,无需安装任何客户端控件;——难点为数据绑定,也就是页面元素与数据表字段的映射,另外动态数据存储结构问题、表间数据校验和计算、建立主从表的问题是难点;因此要建立相对应的样式库、脚本库、函数库、模板库等等。
5.除了可视化表单定制工具外应有:表单加载、表单解析、表单数据处理和表单存储功能;6.设计出发点:争取为今后我们做系统实现以面向服务或面向流程的方式构建系统做准备(即系统的运行已流程驱动或服务驱动),做到随需而变,使得将来的系统的维护不要停留在代码级的维护层面上;7.设计目标:我们开发出的自定义表单系统做到工作流和自定义表单松耦合实现为好,用户自定义表单并能与工作流有效结合的工作流过程定义方法及工作流系统结构;8.整个表单系统的设计采用分层建模方法进行设计与开发,可以分为:数据层建模、业务层建模以及表现层建模9.采用基于描述的方法来提高表单的可维护性、可扩展性以及灵活性,是否通过采用XML来描述表单数据模型、业务模型和表示模型需要讨论后确定(设计完成的表单以XML 形式保存到数据库指定表中);10.初步设想我们开发的自定义表单系统是基于XForms标准而非基于传统的HTML表单标准,分类表单数据,行为与表示也需要在设计器中体现出来——表单模板+数据,本质上是以XML为核心并且实现表单数据模型与表现层(表单格式)分离。
大致的建立表单步骤如下:第一步:定义表单基本信息;第二步:表单设计器数学模型的建立,表单设计器引擎是整个表单设计的核心;第三步:通过表单设计器定义表单样式和所有字段详细信息;第四步:定义对表单的各类基本操作(仅仅针对的是增、删、改、查的基本操作)。
ecology关于流程表单设计器自定义开发及常见场景方案分享

关于流程表单设计器自定义开发及常见场景方案分享一、表单设计器模板如何自定义开发表单设计器可设置自定义属性以及插入代码块,二者相辅结合、灵活运用,可实现多样化客户需求自定义属性分为:行自定义属性(绑定在table布局tr行标签上)、单元格自定义属性(绑定在table布局td标签子元素div上)、列自定义属性(绑定在明细table此列所有td标签上);代码块可填写Script代码块、Style样式块及直接对JS/CSS文件的引用;二、常用开发场景实现场景1:控制日期字段选择范围,比如费用产生日期只能选择当前日期往前十天至今天,否则不允许流程提交实现方式: 代码块插入<script type="text/javascript">function checkCustomize(){//流程提交校验方法var isconform = cus_judgeDateRange("field11", -10, 0);//封装校验日期范围方法if(!isconform){window.top.Dialog.alert("费用产生日期超出范围");return false;}return true;}</script>封装方法:cus_judgeDateRange(fieldid, floorday, upperday)* @param {fieldid} 日期字段ID* @param {floorday} 下限天数(与当前日期比较),空值代表不限制* @param {upperday} 上限天数(与当前日期比较),空值代表不限制* @return 返回true表示在范围内,false表示超出限定范围或日期置为空场景2:实时计算两个日期时间字段组合相差小时数,并赋值给另一字段实现方式:代码块插入jQuery(document).ready(function(){var bindFun = function(){var diffhours = cus_CalTimeDiff("field31,field32", "field35,field36", 2);jQuery("[name=field39]").val(diffhours);}jQuery("#field31,#field32,#field35,#field36").bindPropertyChange(bindFun);bindFun();});封装方法:cus_CalTimeDiff(begfields, endfields, unit, digit)* @param {begfields} 开始时间* @param {endfields} 结束时间* @param {unit} 计量结果单位1(天)、2(小时)、3(分钟)、4(秒),默认为天* @param {digit} 计算结果保留小数位数,默认2位小数* @return 以endfields字段值减去beginfields字段值得到时间差值场景3:提交流程时校验结束时间必须大于开始时间,否则不允许流程提交实现方式:代码块插入function checkCustomize(){var state= cus_CompareTime("field31", "field32");if(!state){window.top.Dialog.alert("结束时间必须大于开始时间");return false;}return true;}封装方法:cus_CompareTime(timefield1, timefield2)* @param {timefield1} 字段1(开始时间)* @param {timefield2} 字段2(结束时间)* @return 返回true表示timefield2较大,false表示timefield1较大或相等* 注:timefield1/timefield2结构,可为单独日期字段、单独时间字段、日期+时间组合字段(以英文逗号隔开);日期字段空值默认取今天,时间字段空值默认为00:00场景4:E8表单字段中没有单选框(Radio样式),如何实现单选框?将选择框字段转换成单选框显示/编辑实现方式:代码块插入jQuery(document).ready(function(){cus_ConvertSelectToRadio("field41");});封装方法:cus_ConvertSelectToRadio(fieldids)* @param {fields}字段id集合,以逗号隔开* 注:转换后可能不支持联动功能,只是转换样式显示/编辑场景5:根据选择框值不同控制明细区域的显示及隐藏实现方式:步骤一:设计器明细所在单元格/行设置自定义属性name:_detailarea步骤二:代码块插入jQuery(document).ready(function(){var selectObj = jQuery("#field51");var controlDetailFun = function(vthis){if(jQuery(vthis).val() == "1")cus_HideAreaByName("_detailarea"); //封装的根据name属性隐藏区域方法elsecus_ShowAreaByName("_detailarea"); //封装的根据name属性显示区域方法}selectObj.bindPropertyChange(controlDetailFun);controlDetailFun(selectObj[0]);});场景6:根据选择框值不同控制明细列的隐藏/显示实现方式:步骤一:需要隐藏的列设置列自定义属性class:_detailcolumn步骤二:代码块插入jQuery(document).ready(function(){var trifieldid = "field10793"; //触发选择框字段IDvar dynEvent = function(){var fieldval = cus_getFieldValue(trifieldid);if(fieldval === "2")cus_ControlDetailColumnByClass("_detailcolumn", 1);elsecus_ControlDetailColumnByClass("_detailcolumn", 2);}jQuery("#"+trifieldid).bindPropertyChange(dynEvent);jQuery("input[name=indexnum0]").bindPropertyChange(dynEvent);//添加明细行时联动,0代表明细表1 dynEvent();//页面加载联动});封装接口:cus_ControlDetailColumnByClass(cusclassname, status)* @param {cusclassname} 列自定义class属性* @param {status} 1为显示,2为隐藏场景7:当满足某条件时,提交流程验证指定字段必填实现方式:代码块插入function checkCustomize(){if(jQuery("#field10793").val() == "1"){var state = cus_verifyExistNullField("field13031,field13032", "字段未填写"); //封装的校验是否存在空值字段方法 if(state) return false;}return true;}场景8:根据字段ID,直接获取字段对应值封装接口:cus_getFieldValue(fieldid)* @param {fieldid} 字段ID* @return 字段对应值* 注:支持文本、多行文本框、浏览框(ID值)、选择框、check框(选中为1未选中为0)场景9:给文本类型字段赋值封装接口:cus_setInputFieldValue(fieldid, fieldvalue)* 给文本字段赋值,支持只读/编辑/必填情况* @param {fieldid} 字段ID* @param {fieldvalue}字段应赋的值以上场景参考使用方法:一、下载附件文件customPublicFun_wev8.js文件放入应用服务器ecology/workflow/exceldesign/js目录下;二、模板代码块中增加引用<script type="text/javascript"src="/workflow/exceldesign/js/customPublicFun_wev8.js"></script>;三、参考样例,按照业务需要调整字段ID等参数;注:从E8+KB81001611版本后可免去步骤1及步骤2,标准产品涵盖引用;样例中所有以cus_开头的方法都封装在附件文件中,内含参数详细说明;后续我们会不断完善接口方法;三、CSS块分享场景1:主表占比为百分比时,默认为屏幕总宽95%,如何调整总占比宽度(模板根据屏幕自适应同时控制总宽度)代码块插入CSS样式<style>.excelMainTable{width:80% !important}</style>场景2:主表浏览按钮字段默认为210px,如何自定义控制浏览按钮宽度步骤一、在需要调整的浏览按钮字段所在单元格增加自定义属性class: cusbrowwidth步骤二、代码块style标签内增加CSS内容.cusbrowwidth .e8_os{min-width:130px !important;}场景3:明细按钮固定为单元格右侧显示,如何居左显示代码块style标签内增加CSS内容.detailButtonDiv{float:left !important; text-align:left !important;}场景4:单个模板上传Logo后到服务器成为独立图片,如何设置统一图片便于后续快速替换Logo 步骤一、在需要插入Logo的单元格增加自定义属性class:logocell步骤二、代码块style标签内增加CSS内容.logocell{background-image:url(/logoimage/logo.png) !important;background-repeat:no-repeat;height:100%;}根据上述图片路径,将图片拷贝至应用服务器目录中;后续切换Logo替换此图片即可四、联系方式您在使用表单设计器对表单进行二次开发遇到困难时可以直接联系我们;也欢迎大家能够将您在项目上遇到的场景反馈给我们,以便于我们完善接口方法库。
一种基于ASP.NET的自定义报表的设计与实现

种需求对应一个报表 文件 , 同的组合要 求制作 大量 的 不
报表文件 , 使得 开发过 程变得极为繁琐 , 以实现用户 的需 难 求。因此 , 需要实现用 户可对 报表的数 据源 和界面进 行 控 制的 自定义报 表 。在 开发 AS . T We 用 程序 的 复 P NE b应 杂报表的过程 中, 利用 C y tl eot fr sa Su i rsa R p r o u l td s Vi o.
Vi a u i) 起 发 布。C ytl e r . T与 Vi a s l d 一 u o rsa R p t NE o s s l u
Su i. T的集成 比以前 更加紧密 , tdo NE 它包 括一个在 Vi a sl u
Su i I tdo DE中可用 的集 成 的报 表设计 器 , 于创 建报 表文 用
表 的 实现 问题 。
Ab ta tThsp p rsu ish w O d sg n pe n s rd f e e e o ta d p e e t s rd f e eor sr c: i a e t de o t e ina di lme t u e - ei dW b rp r n r sn sau e- e n drp t m a n i mo e d 1.Thsmo e n i l lme t s rd f e e o t sn h y tl p rsEn iea d AI(. i d le tr yi e n su e ei dr p rsu ig t eCr sa e mp n Re o t gn n )) NET,a ds le n ov s u e- e n d rp rsi c p l a o sefciey s rd f e e t n W b a p i t n f t l. i o ci e v
自定义表单的实现方法浅谈

⾃定义表单的实现⽅法浅谈⾃定义表单的实现⽅法浅谈2008年05⽉29⽇星期四 11:32⾃定义表单的⽤途⽐较⼴泛,在OA的⾃定义⼯作流程中、CMS功能扩展、⾃定义调查中都将涉及到。
为什么要使⽤⾃定义表单呢?试想⼀下,如果某个系统中没有⾃定义表单功能,⽽要实现增加功能或系统扩展,会怎么样?这时只能依靠界⾯设计师与程序员配合再做⼀个表单及编写代码来处理表单,处理表单的代码是枯燥⽽机械重复的,因为这样的代码⽆⾮是⼀些增、删、改、插,对⼀般的程序员来说,似乎太简单了;对⼀个项⽬来讲,如果客户需要的表单很多,可想⽽知,这样的代码将会有多少重复的,虽然⽣成代码的⼯具不少,可以减少⼀些⼯作量,但也会让整个系统变的更庞⼤,维护也不是那么⽅便,假如客户要加个数据项或改个什么的,整个项⽬⼜得重新编译。
诚然,开发⼀套⾃定义表单系统是需要耗费不稍精⼒,占⽤⼀些项⽬时间,但有了这个平台之后,对以后的其他项⽬开发或者系统本⾝的功能扩展还是有很⼤帮助的。
上⾯列举了⼀些⾃定义表单的种种好处,我们应该怎么实现它呢。
⾃定义表单就是将上⾯的情况进⾏抽象,通过表单的定义⾃动创建/修改⾃定义数据表、动态⽣成数据表操作的SQL语句并执⾏。
当然⾸先要知道⼀般的⾃定义表单系统包含哪些功能。
我想的话,可分为这样⼏部分:表单定义管理部分、表单呈现/提交部分、表单数据查看/管理部分。
表单定义管理:表单基本信息管理(表单名称、描述)、表单存储表字段管理、表单布局设计、表单数据验证定义、表单字段关联/⼦表单管理、表单字段编辑框⾏为管理。
表单基本信息定义⽐较简单就不说了。
表单存储表字段定义:定义表单中⽤到的数据项,包括字段名、字段类型、长度、默认值、编辑框类型、是否允许为空、是否⾃增长字段、分组名称、是否在列表中显⽰等信息。
编辑框类型⼀般有:⽂本框、⽂本域、复选框、单选框、列表框、时间⽇期选择、⽂件上传框等;这⾥定义的是表单主表字段,注意每张表单仅针对⼀张表,否则操作多张表的SQL不容易处理,涉及到主从表的情况可⽤⼦表单来处理。
vue拖拽表单设计器原理

vue拖拽表单设计器原理Vue是一种流行的JavaScript框架,用于构建用户界面。
它提供了一种简单而强大的方式来创建交互式的Web应用程序。
在Vue中,拖拽表单设计器是一种常见的功能,它允许用户通过拖拽和放置来创建自定义的表单。
拖拽表单设计器的原理是通过使用Vue的指令和组件来实现。
首先,我们需要创建一个可拖拽的容器,用户可以将表单元素拖拽到该容器中。
在Vue中,可以使用`v-draggable`指令来实现这一功能。
该指令可以将任何元素变为可拖拽的,并允许我们定义拖拽过程中的行为。
一旦用户将表单元素拖拽到容器中,我们需要将其渲染为真正的表单元素。
在Vue中,可以使用`v-for`指令来遍历容器中的表单元素,并将其动态渲染为相应的组件。
例如,可以将输入框渲染为`<input>`组件,复选框渲染为`<checkbox>`组件等等。
除了渲染表单元素,我们还需要处理用户对表单元素的操作,例如改变值、删除等等。
在Vue中,可以使用事件绑定来实现这些功能。
例如,可以为每个表单元素绑定一个`change`事件,当用户改变表单元素的值时,将触发相应的事件处理函数。
拖拽表单设计器还需要提供一些额外的功能,例如保存表单、导出表单等等。
在Vue中,可以使用计算属性和方法来实现这些功能。
例如,可以使用计算属性来保存表单的当前状态,并在需要时导出为JSON格式。
总的来说,拖拽表单设计器的原理是通过使用Vue的指令、组件、事件绑定、计算属性和方法来实现。
它允许用户通过拖拽和放置来创建自定义的表单,同时提供了一些额外的功能,使用户能够保存和导出表单。
这种原理的实现可以帮助开发人员提高开发效率,并提供更好的用户体验。
流程审批系统功能介绍

流程审批系统功能介绍流程审批系统作为一种高效的工作协同工具,广泛应用于各个行业和组织中。
它能够极大提升工作效率,简化审批流程,并且方便管理者进行监控和统计。
本文将介绍流程审批系统的核心功能及其优势。
一、表单设计器流程审批系统提供了丰富的表单设计器,用户可以根据自身需求自定义表单内容。
设计人员可以通过拖拽方式添加各种表单字段,如文本框、下拉框、单选框等。
通过表单设计器,用户可以设计出适应不同审批流程的表单,提高工作效率,减少错误和遗漏。
二、自定义审批流程流程审批系统允许用户自主设计和配置审批流程。
通过简单的设置,用户可以定义审核人员、审批条件、流程逻辑等。
系统还支持并行审批和串行审批两种模式,让用户能够根据具体业务需求灵活配置审批过程。
同时,系统会对每个审批节点进行状态追踪,确保审批过程的透明和可控。
三、权限管理流程审批系统提供了全面的权限管理功能。
管理员可以对系统中的用户和角色进行灵活配置,设置不同用户对数据和功能的操作权限。
这样,不同岗位的员工能够根据自身权限进行审批操作,保证了数据的安全性和隐私性。
四、消息提醒流程审批系统支持多种消息提醒方式,如短信、邮件、内部消息等。
在流程进行中,系统会根据配置的规则自动向相关人员发送消息提醒,防止审批任务被忽略或延误。
同时,用户也可以根据自己需求主动查询待办事项,保证任务的及时完成。
五、统计分析流程审批系统能够自动生成各类报表和统计图表,为管理人员提供决策支持。
管理员可以通过系统的统计分析功能,了解审批过程中的瓶颈和问题,优化工作流程。
此外,系统还支持导出数据,方便进一步的数据分析和处理。
六、数据可视化流程审批系统通过直观的数据可视化展示,将复杂的审批流程变得简单易懂。
用户可以通过图表或仪表盘等形式,直观地了解审批流程的状态、进度和效率等关键指标。
这种可视化方式不仅提高了审批的透明度,还能够帮助用户更好地把握工作进展和优化流程。
结语流程审批系统作为一种方便高效的工作协同工具,为各个行业和组织带来了极大的便利和效益。
基于微服务的流程管理系统设计

基于微服务的流程管理系统设计摘要:项目基于分布式服务系统架构,结合工作流引擎和表单设计器等中间件技术,设计通用的流程框架,实现业务建模、流程设计、界面设计、部署执行、流程监控的全闭环式流程生命周期管理。
关键词:流程引擎;自定义表单;分布式服务1引言目前工作流引擎广泛应用于人事管理、行政管理、财务管理、营销管理、质量管理等领域,企业在业务开展过程中,涉及大量的流程管理,且随着业务的变化而变化。
为提高企业对业务流程的高效管理,本文设计了一套基于微服务的流程管理系统,提高流程管理的灵活性,实现全闭环式的流程生命周期管理。
2系统总体设计项目基于分布式服务框架,实现系统认证授权、流程管理等基本功能;实现服务的注册和发现、动态配置、服务监听、流量控制、服务熔断降级等服务治理功能。
基于流程引擎Flowable实现流程的设计和部署,基于表单设计器Form Generator实现业务的自定义建模,最终实现基于微服务的流程管理系统设计。
2.1分布式服务框架图1 系统架构图•网关(Gateway):分布式服务网关是一个服务器,是系统的唯一入,负责请求路由、流量控制、负载均衡、静态响应处理等功能。
本文中使用网关主要实现聚合接口使得服务对调用者透明,客户端与后端的耦合度降低;聚合后台服务,节省流量,提高性能,提升用户体验;提供安全、流控、过滤、缓存、监控等API管理功能•注册中心(Nacos):分布式服务的动态管理中心。
主要实现动态服务发现、统一的配置管理和服务管理平台。
•流量控制(Sentinel):监控应用流量的QPS或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。
•认证中心:用户认证授权中心,基于RBAC实现用户角色权限管理。
•分布式服务:搭建分布式服务集群,实现系统管理服务、业务建模服务、流程管理服务等。
2.2工作流引擎项目系统性梳理、设计、编制和管理企业流程架构,为实现分层分级结构化、可视化的呈现流程全景,采用Flowable流程组件(Java编写的轻量级业务流程引擎),提供一组紧凑且高效的开源业务流程引擎核心,包括流程引擎ProcessEngine、内容引擎ContentEngine、身份识别引擎IdmEngine、表单引擎FormEngine、决策引擎DmnEngine五大引擎。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表单自定义设计器功能设计--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_BILLDSIBILLDSIID BILLDSINAME BILLDSI_STATES OPERATIONCODE DATATABLENAME DESIGN DESCRIPTION CREATEBY CREATEDATE LASTUPDATEBY LASTUPDATEDATE NODEPOSITIONDTLDTL_TABLENAME ACCESSORYUSE_OLDTABLEDTL_USE_OLDTABLE DTL_DISPLAY_NAME DTL_FOREIGNKEY FORMTYPE EXPLAIN_CONTENT WIDTHHEIGHT NUMBERVARCHAR2(100) VARCHAR2(6) VARCHAR2(10) VARCHAR2(30)CLOBVARCHAR2(255) VARCHAR2(20)DATEVARCHAR2(20)DATEVARCHAR2(200) CLOBVARCHAR2(50) NUMBERNUMBERNUMBERVARCHAR2(30) VARCHAR2(30) NUMBERCLOBNUMBERNUMBER<pk>2.2.2表单—增加—表单控件本处提供各种表单控件给用户,采用对常见的功能和控件内置的方法,使得开发一些常见的功能(如数据库的增、删、改、查,树控件,表格控件)非常容易方便,几乎不用写一行代码,直接通过控件的拖拉,然后再设置属性和事件即可完成。
在此编辑框内,用户可以在光标位置处增加文字和有关表单内容,也可以对当前选择的控件内容进行修改、删除(按.Del键)。
调整以后的表格内容应该保存到相关表中。
控件按钮说明:所有表单控件,都包括以下公用属性:字段名:当前字段的英文名称标题:当前字段的中文名称Css名:当前控件应用的样式表名称对齐方式:当前控件内容的对齐方式必须项:判断当前控件在表单保存时是否是必须的边框:当前控件是否有边框保存:当前控件是否对应数据表中的字段只读:当前控件是否可获得焦点颜色:控件的背景色数据表:表单设计控件类型配置表自定义查询字段属性表表单设计数据字典表2.2.2.1 单行输入框提供用户在编辑框中的光标位置添置单行输入框,需要保存相关的设置参数。
处理界面:字段说明:默认值:表单初始化时的初始值最大字节数:当前控件能允许输入内容长度正则表达式:当前控件的输入特殊校验2.2.2.2 多行输入框提供用户在编辑框中的光标位置添置多行输入框,需要保存相关的设置参数。
处理界面:字段说明:默认值:表单初始化时的初始值审核输入:表单如果选工作流,在相关人员审核此表单时此控件成编辑状态(在其它界面(新增/编辑/查看)时是只读的2.2.2.3 下拉列表提供用户在编辑框中的光标位置添置下拉列表,需要保存相关的设置参数。
处理界面:字段说明:保存值:当前控件的value值显示值:当前控件的显示值2.2.2.4 复选框提供用户在编辑框中的光标位置添置复选框,需要保存相关的设置参数。