自定义表单设计思路
为了满足和现有工作流系统的耦合,在适当改动现有工作流的基础上,对自定义表单系统(包括与工作流相关)的设计做出如下的规划:
1.基础功能模块:部门、角、人员信息、班组、岗位(这些都可能是潜在的流程参与者)在现有基础上适当扩展;
2.权限管理:需要在操作权限的基础上增加字段权限和记录权限,也就是要实现表单权限、记录权限、字段权限;
表单设计器怎么做3.表单基本信息:表单对应的表实体的定义、实体属性定义等等;
4.可视化的表单定制工具:实现基于web的图形化表单设计器,争取做到可拖拽控件,无需安装任何客户端控件;——难点为数据绑定,也就是页面元素与数据表字段的映射,另外动态数据存储结构问题、表间数据校验和计算、建立主从表的问题是难点;因此要建立相对应的样式库、脚本库、函数库、模板库等等。
5.除了可视化表单定制工具外应有:表单加载、表单解析、表单数据处理和表单存储功能;
6.设计出发点:争取为今后我们做系统实现以面向服务或面向流程的方式构建系统做准备(即系统的运行已流程驱动或服务驱动),做到随需而变,使得将来的系统的维护不要停留在代码级的维护层面上;
7.设计目标:我们开发出的自定义表单系统做到工作流和自定义表单松耦合实现为好,用户自定义表单并能与工作流有效结合的工作流过程定义方法及工作流系统结构;
8.整个表单系统的设计采用分层建模方法进行设计与开发,可以分为:
数据层建模、业务层建模以及表现层建模
9.采用基于描述的方法来提高表单的可维护性、可扩展性以及灵活性,是否通过采用XML来描述表单数据模型、业务模型和表示模型需要讨论后确定(设计完成的表单以XML形式保存到数据库指定表中);
10.初步设想我们开发的自定义表单系统是基于XForms标准而非基于传统的HTML表单标准,分类表单数据,行为与表示也需要在设计器中体现出来——表单模板+数据,本质上是以XML为核心并且实现表单数据模型与表现层(表单格式)分离。
大致的建立表单步骤如下:
第一步:定义表单基本信息;
第二步:表单设计器数学模型的建立,表单设计器引擎是整个表单设计的核心;
第三步:通过表单设计器定义表单样式和所有字段详细信息;
第四步:定义对表单的各类基本操作(仅仅针对的是增、删、改、查的基本操作)。
在搞清楚工作流控制数据、工作流相关数据以及工作流业务数据的前提下,流程的配置主要为以下步骤:
第一步:创建流程角;
第二步:对创建的系统用户分配角;
第三步:创建流程(建立自动流程);
第四步:表单中绑定流程(动态加载工作流表单),将表单视为多个表单项的组合,每一个
表单项都是用户需要填写的内容,对表单项进行定义;
第五步:试运行流程。
表单系统相关模块以及将要实现的功能
第一个功能模块:表单管理分配
表单管理员是设计表单样式、确定表单审批流程和分配使用者的一种角;建立表单管理员角以及分配表单管理员权限(延用目前OA系统的角权限管理和人员角管理模块即可)。
第二个功能模块:表单基础信息
表单基础数据字典信息建立(延用目前只是管理中的通用参数维护,稍作修改),旨在维护通用参数类别以及各相应类别下的参数维护。
第三个功能模块:表单设计制作
主要的输入类型分文本框、标签、文本域、单选按钮、复选按钮、下拉列表框和扩展控件
标签:只供显示不可编辑,故只有在设了初始值才有意义,可以设置字段的货币 符号大小写转换,该字段将显示货币符号大写。
文本域:较文本框多了一个垂直滚动条。为多行显示;在操作设置中设置了该字段为追加,调用表单发送协同时,在后续流程节点中对该字段有编辑权限的用户单击文本域字段可
以弹出一输入页面,可以向该文本域中追加信息。
单选按钮和下拉列表框:都是从多个选择项中(即参数值)选出一个,只是展现形式不一样,在后续设置时都需要指定所绑定的通用参数类型。
复选按钮:复选所有的项目都必须在表单制作时单个表示出来,且其前面设计一文本框,可以进行勾选。
扩展控件:借助于选择器完成录入的一种方式,设置时需要指定所绑定的选择器,目前我们大致可以提供了选择人员、选择部门、选择岗位、选择班组和选择日期这5种选择器。
计算字段设置仅对数字型数据项、文本框有效。表示该数据项的值是通过其它数字型数据项的计算所得。例如,金额可以设为{单价} * {数量},总金额可以设为sum({金额}) 计算可以通过表单数据域、系统变量(预设的通用参数——系统变量不可删除和修改)。
通过如上图所示的表单定制工具进行设计,旨在画出表单单据的样式,设计后形成表单模板通过XML存储表单的展示,并生成相应的表单实体以及表单实体属性(字段以及数据类型、长度等信息);表单定制工具的基本功能是:定义表单的数据结构和数据表现形式。
数据结构的定义是指表单中字段的信息:字段的个数、字段顺序、字段属性等。
数据的表现形式即表单的外观:数据排列、字体、标题等;考虑XML结构描述的优势,编辑完成的后表单内容用XML文档来描述。表单定制完成产生的XML文档还是保存在数据库中,分两个实体存储,一个是表单类型表,存储所有的空表单类型,一个是表单实例表即流程运行时产生的表单,这个实体按类型加时间加编号检索,具体的XML描述文档采用大字段格式作为实体的字段(也可以考虑采用XML附件形式)。
表单分类进行存储:对新建的表单进行分类存储,以便于调用该表单模板时方便查,比如可以分为 管理类、行政类、技术类、销售类等等。
【特别说明】由于表单定制工具是一个独立的工具,系统运行时,还必须提供读取、解析、保存表单XML文档的程序模块。在将来的设计中,表单运行时程序采用组件对象的方式提供,嵌入应用程序页面,并调用对象提供的方法处理表单。对HTML初始表单模板进行解析。转换模板格式为XHTML,利用XML工具解析该表单模板,对其中的表单控件进行分析标识,同时在数据库中动态生成数据表,存储表单记录。
模板存储和解析采用XML + XSLT方案解决
采用XML描述数据,XSLT定义XML数据显示格式。通过XSLT来控制数据的显示;查询数据库返回XML格式数据,将XML保存到数据库中,通过XSLT来解析XML数据文件生成HTML代码,最终将HTML代码显示到前台页面中。见如下图所示
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论