基于XML的动态表单设计
- 格式:pdf
- 大小:257.24 KB
- 文档页数:3
自定义表单设计思路为了满足与现有工作流系统的耦合,在对现有工作流进行适当修改的基础上,定制表单系统(包括与工作流相关的)的设计计划如下:1。
基本功能模块:部门、角色、人员信息、团队和组、职位(所有这些都可能是潜在的流程参与者)在现有基础上适当扩展。
2。
权限管理:在操作权限中增加字段权限和记录权限,即表单权限、记录权限和字段权限。
3。
表单的基本信息:表单对应的表实体和实体属性的定义;4。
可视化表单定制工具:实现基于网络的图形表单设计器,努力实现可拖动控件,不需要安装任何客户端控件;困难在于数据绑定,即页面元素到数据表字段的映射。
此外,动态数据存储结构、表间数据校验和计算、主从表建立等问题也是难点。
因此,相应的样式库、脚本库、函数库、模板库等。
应该建立。
5。
除了可视化的表单定制工具外,还应具有表单加载、表单分析、表单数据处理和表单存储功能;6.设计起点:努力为未来的系统实现准备(即系统的运行已经是过程驱动或服务驱动的),以面向服务或面向过程的方式构建系统,使未来的系统维护不会停留在代码级维护水平。
7。
设计目标:我们开发的定制表单系统是实现工作流和定制表单松耦合的好方法。
它使用自定义表单,能够有效地将工作流与工作流过程定义方法和工作流系统结构结合起来。
8.整个表单系统的设计采用分层建模的方法进行设计和开发,分为数据层建模、业务层建模和表示层建模9。
采用基于描述的方法来提高表单的可维护性、可扩展性和灵活性。
表单数据模型、业务模型和表示模型是否用XML描述,需要讨论后确定(设计的表单以XML的形式保存在数据库的指定表中);10。
最初假设我们开发的自定义表单系统是基于XForms标准,而不是传统的HTML表单标准。
表单数据、行为和表示的分类也需要在设计者表单模板+数据中得到反映,设计者表单模板+数据本质上是以XML为中心的,实现了表单数据模型和表示层(表单格式)的分离创建表单的一般步骤如下: 步骤1:定义表单的基本信息;的第二步是建立表单设计者的数学模型。
125摘要:随着信息技术的不断发展,数据在各行各业都发挥着越来越重要的作用,随之而来的问题是人们需要收集填报的数据也越来越多。
为了解决传统数据收集过程中遇到的数据表格单一、归集汇总繁琐易出错等问题。
论文设计并实现了一种基于动态表单的数据填报系统。
系统基于网络平台,采用B/S架构模式,界面简洁大方,操作简单,通过使用本系统,数据收集人员在线定制表格元素,填报者只需登录网站,提交信息即可,而其他细节都由程序自动完成,减少人工参与环节。
本系统的实现一方面可以提高数据填报效率,另一方面可以解决传统数据填报工作中耗费时间和精力、数据有差错、收集整理困难等问题,对于提高数据归集利用效率、更好发挥数据价值具有十分重要的实际价值。
关键词:动态表单;数据填报;数据管理;系统设计一、前言表格作为数据良好的载体,在各个领域得到广泛的使用,特别在当今自动化工作中,表格在各个部门间进行传递数据发挥了巨大的作用。
早期的数据统计表单大多采用纸张制作而成,可重用性差,而且浪费资源,从表格的制定、分发,再到填写汇总,整个过程繁琐而复杂,尤其当数据填报单位处在分散的地区时,统计数据的时效性将受到极大的耽搁[1]。
随着信息化技术的不断发展,开始逐渐采用电子化的方式收集填报数据,但当前应用比较广泛的方式主要包括Excel 电子表格和信息系统两种方式。
Excel 表格的方式仍然存在人工分发、收集的问题,不能满足对时效性和安全性要求较高的数据填报工作使用,而信息系统的方式会因系统内置表格相对固定导致不能灵活支持多种数据填报的使用需要。
因此,设计并实现一种能够动态设计表格,并能通过网络快速分发汇集的数据填报系统对提高工作效率具有一定的现实意义。
二、系统需求分析及功能设计(一)系统需求分析系统应具有相对完备的功能模块,通过使用本系统,可以解决当前数据汇集过程中遇到的问题,提高表格制作灵活性,简化表格分发汇总流程,提高数据填报归集应用质量和效率。
自定义表单设计思路为了满足和现有工作流系统的耦合,在适当改动现有工作流的基础上,对自定义表单系统(包括与工作流相关)的设计做出如下的规划:1.基础功能模块:部门、角色、人员信息、班组、岗位(这些都可能是潜在的流程参与者)在现有基础上适当扩展;2.权限管理:需要在操作权限的基础上增加字段权限和记录权限,也就是要实现表单权限、记录权限、字段权限;3.表单基本信息:表单对应的表实体的定义、实体属性定义等等;4.可视化的表单定制工具:实现基于web的图形化表单设计器,争取做到可拖拽控件,无需安装任何客户端控件;——难点为数据绑定,也就是页面元素与数据表字段的映射,另外动态数据存储结构问题、表间数据校验和计算、建立主从表的问题是难点;因此要建立相对应的样式库、脚本库、函数库、模板库等等。
5.除了可视化表单定制工具外应有:表单加载、表单解析、表单数据处理和表单存储功能;6.设计出发点:争取为今后我们做系统实现以面向服务或面向流程的方式构建系统做准备(即系统的运行已流程驱动或服务驱动),做到随需而变,使得将来的系统的维护不要停留在代码级的维护层面上;7.设计目标:我们开发出的自定义表单系统做到工作流和自定义表单松耦合实现为好,用户自定义表单并能与工作流有效结合的工作流过程定义方法及工作流系统结构;8.整个表单系统的设计采用分层建模方法进行设计与开发,可以分为:数据层建模、业务层建模以及表现层建模9.采用基于描述的方法来提高表单的可维护性、可扩展性以及灵活性,是否通过采用XML来描述表单数据模型、业务模型和表示模型需要讨论后确定(设计完成的表单以XML 形式保存到数据库指定表中);10.初步设想我们开发的自定义表单系统是基于XForms标准而非基于传统的HTML表单标准,分类表单数据,行为与表示也需要在设计器中体现出来——表单模板+数据,本质上是以XML为核心并且实现表单数据模型与表现层(表单格式)分离。
大致的建立表单步骤如下:第一步:定义表单基本信息;第二步:表单设计器数学模型的建立,表单设计器引擎是整个表单设计的核心;第三步:通过表单设计器定义表单样式和所有字段详细信息;第四步:定义对表单的各类基本操作(仅仅针对的是增、删、改、查的基本操作)。
java⾃定义表单动态表单表单设计器⼯作流引擎flowable项⽬源码特别注意:本代码为 Springboot ⼯作流前后分离 + 跨域版本(权限控制到菜单和按钮)后台框架:springboot2.3.0+ Flowable6.5.0+ mybaits+maven+接⼝前端页⾯:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互前后分离,前后台分开部署(特别注意,前端⽤的vue.js, 就是html页⾯引⼊vue.js形式,⽤tomcat部署运⾏,更适合后台开发者1.代码⽣成器: [正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术 ,0个代码不⽤写,⽣成完整的⼀个模块,带页⾯、建表sql脚本、处理类、service等完整模块2.多数据源:(⽀持同时连接⽆数个数据库,可以不同的模块连接不同数的据库)⽀持N个数据源3.阿⾥数据库连接池druid,安全权限框架 shiro(菜单权限和按钮权限), 缓存框架 ehcache4.代码编辑器,在线模版编辑,仿开发⼯具编辑器5.调⽤摄像头拍照⾃定义裁剪编辑头像,头像图⽚⾊度调节6.websocket 及时站内信并声⾳提醒、实时在线管理、websocket及时刷新页⾯(完胜ajax技术)7.Flowable⼯作流⽬前公认⽐较好⽤的⼯作流引擎,集成web流程设计器⼯作流模块-------------------------------1.模型管理:web在线流程设计器、导⼊导出xml、复制流程、部署流程2.流程管理:导⼊导出流程资源⽂件、查看流程图、根据流程实例反射出流程模型、激活挂起3.运⾏中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办⼈、⾃由跳转4.历史的流程:查看流程信息、流程⽤时、流程状态、查看任务发起⼈信息5.待办任务:查看本⼈个⼈任务以及本⾓⾊下的任务、办理、驳回、作废、指派⼀下代理⼈6.已办任务:查看⾃⼰办理过的任务以及流程信息、流程图、流程状态(作废驳回正常完成)办理任务时候可以选择⽤户进⾏抄送,就是给被抄送⼈发送站内信通知当前审批意见以及备注信息注:当办理完当前任务时,下⼀任务待办⼈会即时通讯收到新任务消息提醒,当作废和完结任务时,任务发起⼈会收到站内信消息通知------------------------------------------- 系统模块1. 权限管理:点开⼆级菜单进⼊三级菜单显⽰⾓⾊(基础权限)和按钮权限⾓⾊(基础权限): 分⾓⾊组和⾓⾊,独⽴分配菜单权限和增删改查权限。
Rdlc 动态加载xml 实现图表宽度(高度)自适应Rdlc 动态加载xml 实现图表宽度(高度)自适应2011-07-23 10:28bymr.张,442visits,收藏,编辑微软提供的Rdlc 报表为我们提供的很大的便利,功能强大,使用简单。
但在使用过程中总是有那么点美中不足:图表大小是固定的,不能根据内容自适应大小。
这就造成了如下情况,看图说话:数据少时图表比较稀疏数据多时图表很挤这对于我们追求完美的程序员来说是不能接收的,坚决要改造。
思路:Rdlc 是基于xml的,我们可以通过动态修改rdlc的xml数据,来更改rdlc 定义的图表大小。
宽度的计算:类别总数*序列数*(条形单位宽度+类别间隔)宽度计算根据图表的类型不同计算公式也不同,上述公式只适合"简单柱形图""简单条形图",其它类型的图表以后解决。
Rdlc报表xml解析:这里我们只需要动态改变图表的宽度和高度,需要知道如下几个节点:<Chart Name="chart1"> 中间数据省略</Chart> xpath 路径为: Report/Body/ ReportItems/ ChartChart的类型Type节点: <Chart><Type>Column</Type> </Chart> 其中Type为Column 代表简单柱形图,Type 为Bar 代表简单条形图Chart的宽度Width 节点: <Chart><Width>23cm</Width> </Chart>Chart的高度Height 节点: <Chart><Height>11.5cm</Height> </Chart>部分代码:public class RdlcReportHelper{private XmlDocument _rdlcDoc;private XmlNode _root;private string _chartName;private double _perWidth = 0.15; //厘米private XPathDocument xpathdoc;private XPathNavigator xnv;private XmlNamespaceManager xnm;private string[] _chartType = new string[] { "Bar", "Column" };public RdlcReportHelper(string path){//加载xml_rdlcDoc = new XmlDocument();_rdlcDoc.Load(path);_root = _stChild;xnm = newXmlNamespaceManager(_Table);xnm.AddNamespace("rd","/SQLServer/reporting/report designer");xnm.AddNamespace("default","/sqlserver/reporting/2005/01 /reportdefinition");xnm.PushScope();xpathdoc = new XPathDocument(path);xnv = xpathdoc.CreateNavigator();}/// <summary>/// 转换xml/// </summary>/// <returns></returns>public MemoryStream AutoSizeReport(){…………XmlNode ChartNode =_root.SelectSingleNode("//default:Body/default:ReportItem s/default:Chart[@Name='" + _chartName + "']", xnm); //查找Chart 节点XmlNode ChartTypeNode =ChartNode.SelectSingleNode("default:Type", xnm); //查找图表类型节点if (w != 0){if (ChartTypeNode.InnerText == "Bar"){XmlNode heightNode =ChartNode.SelectSingleNode("default:Height", xnm); //设置高度heightNode.InnerText = w + "cm";}else if (ChartTypeNode.InnerText == "Column"){XmlNode widthNode =ChartNode.SelectSingleNode("default:Width", xnm); //设置宽度widthNode.InnerText = w + "cm";}}}}如何使用:使用设计器设计好报表,设置要自动伸展的图表名称,类别字段、序列字段、值字段和单位宽度。
Android中的动画(XML方式)实践(逐帧动画与补间动画)属性动画。
逐帧动画:基于单元格的动画,每一帧显示一个不同的drawable。
一帧一帧的顺序播放。
补间动画:补间动画应用于view,通过对其位置,大小,旋转和透明度的改变,让view动起来。
属性动画:属性动画几乎可以让应用程序中任何对象动起来。
所有补间动画的内容,都可以通过属性动画实现。
下面逐一介绍:注:这篇文章偏重于以xml方式实现相应动画效果。
逐帧动画逐帧动画(Frame-by-frame Animations)从字面上理解就是一帧一帧的播放图片,类似卡通动画。
目标:实现如下图效果:loading步骤:1.在res/drawable目录下新建loading_frame.xml文件:loading_frame.xml根节点是animation-list,内部由一到多个<item>节点组成oneshot属性表示是否只播放一次(true:一次;false:循环播放).item节点声明是一个动画帧,其中 android:drawable属性定义要显示的图像,android:druation代表此帧持续的时间,毫秒为单位。
注:在AndroidStudio中强制规定带animation-list节点xml文件必须放在res/drawable文件下(eclipse(ADT)貌似支持任意放res/drawable和res/anim)。
在androidStudio中若放在res/anim下会报错:错误提示:1错误提示:22.新建页面布局activity_frame.xml:如上图布局很简单上面一个imageview,下面两个button,都水平居中(相对于parent)。
3.新建FrameActivityframeActivity主要逻辑代码当然为了避免animationDrawable带来的内存泄露,建议在onDestroy方法中做如下操作:onDestroy注意:帧数比较多的动画不建议用逐帧动画实现,其一会显得卡顿,其二容易引起OOM。
编号:V1.0 Livecycle动态模板开发手册2015年9月目录1单证模板设计 (3)1.1创建表单 (3)1.2绘制表单 (5)1.2.1控件介绍 (5)1.2.2绘制过程 (11)1.3绑定数据 (14)1.4模板测试 (17)2数据文件生成 (19)3IDPDocEngineAgent安装配置 (19)1单证模板设计1.1创建表单1.使用LiveCycle Designer工具开发模板,首先打开工具,出现如下所示的页面,点击“新建表单”2.选择“使用空白表单”点击“下一步”。
3.页面大小可以选择“默认值”,也可以选择“A4纸”,或者其他的一些页面方向可以选择“纵向”,或者是“横向”,一般都是选择“纵向”。
页面选择“1”。
点击“下一步”4.“添加电子表单按钮”与“添加打印按钮”可以勾选,也可以不勾选,一般不勾选点击完成5.出现如下所示的空白表单—表单1(由“主页面”以及“无标题子表单”构成的)1.2绘制表单1.2.1控件介绍1.2.1.1页面控件如上图所示,一个表单中主要包含两类页面元素:1.主页面主页面的名称通常以英文命名,支持定义多个主页面1)页面设置当需要使用特殊纸型时,需要在主页面内进行定义。
如下图所示:2)内容区域设置每个主页面中只能存在一个内容区域(region-body区域),每个主页面中元素可以按照下图分5个区域放置,除内容区外其他支持的4区域每个都对应一个子表单subform,其名称分别为:region-before,region-after,region-start和region-end,并且只能设计为静态(引用)元素。
主页面其他4个区域不能与内容区域重合。
内容区域限定了以该内容区域为基础的普通页面的可绘制范围,通常我们可以理解为页边距。
在一般场景下,如果没有页头、页尾、侧边文字等需要打印在每一页上的内容,仅绘制内容区域范围即可。
内容区域的大小可以通过内容区域的布局属性来进行设置,如下图所示:2.普通页面除每页都需要打印的一些基础内容外,所有在单证中需要显示的表单元素均需要绘制在普通页面上。
1. 在 InDesgn 中进行页面设置时,装订方向分为左侧书脊和右侧书脊,在图书杂志出版中,目前只有( )等国家在部分书籍中使用右侧书脊装订的方式。
O 中国、日本、国、中国、O 美国、日本、国、中国、O 马来西亚、中国、日本、国、中国、O 新加坡、英国、美国、中国2. 在一般的出版物或印刷品设计时,版面出血边尺寸通常都设置为 ( ) mm,但也有例外会设置的稍大或稍小。
O 5O 15O 3O 23. 在描述印刷用纸时,通常都用克重来形容,如 128g 、250g 、300g 等,这其中的克重是指()的重量。
O 每纸O 每半纸O 每平方米纸4. 在设计中,有时会接触到 PANTONE 的色标,其中当印刷类色标中出现诸如: PANTONE100 C 或 PANTONE 100 U 时,其中 C 代表铜版纸,而 U 则代表( ) 。
O 新闻纸O 胶版纸O 特种纸O 卫生纸5. 在使用 InDesign 进行文档设置时,当选择左侧装订且使用对页模式时,边距与分栏选项中的上、下、左、右边距分别对应的是版面俗称的( ) 。
O 天头、地脚、订口、切口O 天头、订口、切口、地脚O 地脚、订口、天头、切口6. 目前 PDF 格式在越来越多的出版领域被广泛利用, PDF 文件格式的中文名称叫做 ( ),PDF 文件可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中, PDF 文件还可以包含超文本、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。
O EPS 格式O 便携式文档格式O 纯文本格式O 多信息文本格式7. 在 InDesign 的文档,是否可以置入带有图层的 PSD 文件和 PDF 文件。
( )O 是O 否8. 在使用 InDesign 进行版面编排时,能否一次性向页面置入多页 PDF 文档页面?O 能O 不能9. 当使用 InDesign 输出带有超的 PDF 文档后,浏览 PDF 文档,会发现没有办法转到相关,是因为在导出为 PDF 文件时没有选择( )选项。