首页 基于jatoolsPrinter打印控件在物流平台下的应用及研究

基于jatoolsPrinter打印控件在物流平台下的应用及研究

举报
开通vip

基于jatoolsPrinter打印控件在物流平台下的应用及研究 基于jatoolsPrinter打印控件在物流平台下的应用及研究 张国晋、李仕金、陆歌皓(云南大学信息学院、云南大学软件学院) 摘要: B/S模式下报表打印的问题一直以来是web系统开发过程中的一个关键,介绍了B/S结构下物流服务平台中报表打印的一种解决方案,详细描述了使用jatoolsPrinter控件进行报表设计的实现过程,满足了对应用的实际需求,并且在物流服务平台中得到了良好的应用,为B/S模式下报表设计提供了一种新的思路。 关键词: jatoolsPrinter;B/S架构;报表;物流平台;打...

基于jatoolsPrinter打印控件在物流平台下的应用及研究
基于jatoolsPrinter打印控件在物流平台下的应用及研究 张国晋、李仕金、陆歌皓(云南大学信息学院、云南大学软件学院) 摘要: B/S模式下报表打印的问题一直以来是web系统开发过程中的一个关键,介绍了B/S结构下物流服务平台中报表打印的一种解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,详细描述了使用jatoolsPrinter控件进行报表设计的实现过程,满足了对应用的实际需求,并且在物流服务平台中得到了良好的应用,为B/S模式下报表设计提供了一种新的思路。 关键词: jatoolsPrinter;B/S架构;报表;物流平台;打印 正文: 现如今随着信息技术的发展,基于Web的应用平台已经成为互联网环境下最广泛、最普遍的业务平台。由于应用的Web化和浏览器的局限性,怎样来进行基于Web的报表打印,成为了Web环境下开发应用平台的重要组成部分。而基于Web的物流信息平台的建设对于现代物流业基础设施的建设具有至关重要的作用,是一个集物流管理过程于一体的系统平台,能够实现包括物流派车管理、货物管理、结算管理、物流信息发布、单据打印等功能,达到物流运营过程的信息化、高效化、快捷化物流信息平台的建设中单据打印直接关系到整个物流业务的流程。 基于Web的报表打印需要将浏览器中呈现的HTML精确地打印到票据上Web.由于只能采用浏览器作为用户界面进行交互,所以对于精确控制客户端的打印机是一个比较难以解决的问题。但是基于B/S结构的应用程序具有计算资源分布异构的特点,常常需要完成非常复杂的报表打印任务。因此建立一个通用、稳定、易用的报表系统变得比较复杂,要考虑很多因素而靠IE自带的页面打印功能一般不能满足需要,且工作量大,难以控制页面打印效果。于是在异步环境下,一套能够处理复杂的数据资源、对客户端用户来说简单易用的打印技术对提高系统的使用效率和系统的质量都是至关重要的。 1.背景研究 1.1、 现有Web报表打印技术 现如今,基于Web的报表打印技术主要有:采用纯ActiveX;采用Applet方式;利用IE自带的WebBrowser控件实现打印。 (1)采用纯ActiveX ActiveX是一种体系结构,它让程序(即ActiveX控件)在网络上与其他程序交互通信。ActiveX体系结构使用微软公司的组件对象模型(COM)和分布式组件对象模型(DCOM)标准。COM允许不同的应用程序实现本地相互交谈,而DCOM提供网络上的通信。 纯ActiveX就是通过下载一个控件,让票据的数据呈现在ActiveX中,而不是以HTML方式呈现,由于ActiveX不依赖于某种具体的语言,所以基于ActiveX的打印在跨平台方面具有较好的兼容性,同时这种打印的精确度高,分页的可控性好,不需要访问后台服务程序,不占用服务器资源。可是嵌入ActiveX控件破坏了Web应用的整体风格,且这样的控件比较大,对用户的可操纵性具有一定的限制。 (2)采用Applet方式 Applet是有java实现的,Applet被嵌入到HTML页面中,并由applet的容器(appletviewer或者web浏览器)执行,它的运行由浏览器控制,不由Applet中的代码控制。当浏览器载入包含由applet的web页面时,它将生成一个Applet类的对象,然后利用Applet类对象的五个public的void方法控制applet的执行。采用Applet方式,分页或精确打印都可以做到完美,但缺点也很明显:打印报表时,需要重新向服务器检索数据,效率低。因为Applet方案,一般采用HTML方式呈现数据,打印时Applet必须向服务器检索同一张票据的数据,看上去,是打印了当前页的票据。实际上,Applet根本不会用当前HTML页的数据来打印,而是向服务器下载数据到Applet中来打印。也就是说,打印的话,必须两次请求,一次HTML呈现,一次用来打印,不能解决连续打印 (3)利用IE自带的WebBrowser控件实现打印 这种方法实质上是利用了浏览器自带的打印功能,因而实现起来比较简单,无须大量编程。但也因存在两方面的重大缺陷:一方面,无法精确的控制打印格式和位置,分页的解决也不是很理想;另一方面,所有需要打印的页面都要存在两个版本,即原始显示的版本和打印显示的版本,增加了开发的工作量。 1.2物流服务平台背景 近年来随着物流行业的快速发展,物流企业都积极关注物流信息化技术的发展,相继开发或引进基于互联网的物流信息平台,以求把本企业的业务活动提高到新的水平并尽快地融人一体化的全球物流网络。物流信息化技术的发展促使物流基础设施具备一定规模的基础上综合运输网络体系也得到了一定的发展,同时,传统的交通运输、仓储管理的物流业的蓬勃发展促使以第三方物流为组织形式的现代物流业迅速发展。 物流服务平台是以信息采集、信息处理、信息发布为主的系统,总体上是对共享信息实现采集、处理、存储、发布等功能。但是大多数物流公司都是从传统的运输企业和仓储中发展而来,信息现代化技术比较落后,所以建设现代物流信息平台的一个主要目的是将物流、资金流、信息流等整合为一体,提升物流信息平台,推进物流的标准化建设。在整个信息处理的过程中,监测整个物流实现的过程是极其重要的,在这个过程当中,为方便用户管理、查询相关货物等的流转情况。同时,为了有效地对物流交易过程的相关数据有一个有效地凭证需要根据用户的实际需要对派车单、运单、结算单、事故单等票据以报表的方式打印。 关键技术 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 2.1 jquery和Ajax JQuery(JavaScript Query Library)是继prototype之后的一个优秀的轻量级javascript库,于2006年由Jhon Resig最初创建的开源项目。JQeryt凭借简洁的语法和跨平台的兼容性,极大地简化了Javascript开发人员遍历HTML文档、操作Domain、处理事件、执行动画和开发Ajax的操作。JQeryt做多写少的理念是由于其拥有丰富的函数库,这使得基于JQeryt的应用开发减少了代码的重复编写和DOM脚本库的调用,而只关心程序逻辑结构的实现。 Ajax综合应用了javascript,xhtml与css、dom、xml与xstl,xmlhttprequest等技术,为用户提供了无刷新的动态数据交换等功能。JQeryt的核心是javascript和xmlhttprequest。xmlhttprequest处理所有服务器通信的对象,是一种支持异步请求的技术。 JQery将所有的Ajax操作封装到一个函数S.ajax()里,是一个轻量级的Ajax框架,使得开发者处理Ajax的时候能,够专心处理业务逻辑而无需关心复杂的浏览器兼容性和xmlhttprequest对象的创建和使用的问题。简而言之,就是将Ajax技术封装到JQery框架技术来实现Ajax应用程序的开发。这使得服务器将原来直接发送到用户表现层的数据,改为向Ajax引擎理解和解释返回其可用数据(纯文本、xml、json)等。如图1为基于Ajax的Web应用程序模型。 图1应用程序模型 2.2jatoolsPrinter jatoolsPrinter(杰表打印控件)是一款实现网页套打的最为专业的工具,是一种轻量级ActiveX的打印方式,同时还采用了IE拥有的打印技术(templatePrint)实现打印功能。作为Web应用开发者,经常会遇到在浏览器中打印报表、票据的需求,这些需求浏览器本身的打印功能一般不能满足,如精确分页、套打等。 jatoolsPrinter的特点是可以直接对Web页面进行精确的分页打印。jatoolsPrinter通过在网页中嵌入控件,解决了Web客户端精确打印、批量打印自动分页、打印配置自动保留等问题,这使“会设计网页就会做网页套打”成为可能。不仅支持IE浏览器,最新版本还支持如FireFox、chrome、safari浏览器。 jatoolsPrinter打印控件特点: 1、小巧,整个控件只有200k。 2、可以打印预览。 3、支持一维码,二维码显示、打印功能。 4、有可视化设计套打功能,可轻松地拖拽位置、调整样式,保存调整结果; 5、支持票据上万份的连续批量打印,不走样、不偏移。 6、完美支持复杂 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 分页。 7、支持excel导出功能。 8、支持浏览器有IE、Firefox、Chrome、Opera、Safari,带微软数字签名。 9、大型电子政务项目、各大软件开发商指定打印控件。 实际应用 3.1物流平台设计 物流服务平台的整体框架如图2所示,分为服务提供者、服务发布层、业务流程层和服务使用者层。 其中,服务的使用者主要包括供应商、运输公司、物流公司、移动终端等物流运营实体,这些物流运营实体通过发送请求服务命令,仅有网络通过一个统一的服务接口层调用注册中心注册的物流服务提供者(ISP)提供的服务,服务接口层主要完成服务的处理,包括服务的调用和发布、xml文档生成和解析等功能。业务流程层主要使用ESB总线技术来实现应用和服务的整合,服务之间请求/响应、发布/订阅等事件都有ESB来进行的。ESB服务总线在服务的请求者和提供者之间改变消息的格式,同时提供安全、策略、事务、管理等功能。服务发布层有WSDL,UDDI,SOAP组成,主要实现服务的描述、发布和调用。服务的提供者用WSDL来描述所提供的Web服务,然后通过UDDI发布自己的Web服务,服务使用者通过UDDI或其它服务注册库来获取Web服务,并向服务提供者发送一个SOAP消息来请求执行服务。服务提供者(ISP)将自己所实现的功能模块以服务的方式在UDDI注册中心注册并对外开放。 图2物流服务平台模型 3.2物流信息平台报表打印的问题 由于物流信息平台的多数终端使用用户都对计算机的相关操作都比较浅薄,对现在的基于Applet方式打印,而Applet是有java实现的,这就需要设置JRE等环境变量和安全策略,而终端用户对这些的设置有时是不可能完成的,操作具有一定的复杂性,因此必须有相关的专业人员才能维护客户端的打印环境,这无疑增加了开发商的后期维护的服务成本。物流行业整个的运营过程包括收货、库存、入库、调配、运输、目的地收货,其中目的地收货有包括客户收货、本地仓储或者连运等,这个过程中涉及到资金的流转、货物的转发与跟踪、车辆的调度、事故的管理、物流 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 的统计等,物流的运营活动其实就是实现商品的运输转移,其转移过程如图3所示,在这个转移过程中将产生各种各样的清单和票据,如运单、派车单、收货单、结算单、入库清单、出库清单、事故单等,如此多的千差万别的报表清单,如何正确的有效的在运行期间从数据库中读取数据,并能完成自动分页、套打、批量打印等功能也是物流信息平台面临的一个问题。随着物流业务的扩展,数据的规模也在不断地增加,且这些数据可能需要在不同的地域来完成并响应单据的查询和打印,那么这种大数据量分布的业务系统,如何有效地、无差错的进行数据打印,也是面临的一个问题。 图3物流业务过程 3.3基本设计思想 在物流服务平台中需求的角度和打印中将会面临的问题出发,同时结合现有的Web打印技术,提出了针对物流服务平台单据打印的一个设计思想。其基本思想可描述如下:首先设计好一个单据的通用框架( 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 ),也就是没有具体数据的空白单据,然后根据设置好的各种参数动态填充单据的空白内容和相应的数据,从而生成具体的单据。应用中只要新建或修改对应的参数就可新建或修改一张单据。从而实现一表多用,以不变应万变并且方便客户或开发者进行二次开发。如图4所示为单据的生成过程。 图4动态单据生成过程 动态单据有两部分组成:单据管理页面ManPage和单据创建页面CrePage.单据管理页面主要在已设计好的静态html单据模板的基础上动态生成基本的数据以完成具体单据,ManPage上的数据一般为具体的静态数据,主要用于显示单据类型,打印时间,页码等。单据创建页面主要用于动态生成单据的各种具体的内容和参数,以完成对空白单据的填充。同时对单据的标题、单元格的高度及宽度等单据样式通过该模块调用来实现。 3.4基于jatoolsPrinter的打印模型 物流服务平台中单据打印功能在JQuery技术下采用jatoolsPrinter控件实现的包图如图5所示,JSP页面通过JQuery中绑定的AJAX功能调用相应的HTML模板,同时调用对数据进行打印处理的servlet,在调用servlet的同时将关键字(单据类型、单据号)传给servlet,servlet然后通过关键字查找出需要打印的单据的内容筛选出来,并将结果返回给JQuery.同时将返回的数据填充到HTML模板的相应位置并通过调用jatoolsPrinter控件中的打印事件.print()来打印由HTML方式呈现的票据,这样一张填入所需数据的完整单据就打印了出来。 在物流服务平台中使用jatoolsPrinter打印控件必须注意以下几点: 将要用到的的jatoolsPrinter打印控件放到项目指定的目录,并将物流业务平台中需要打印的页面中添加jatoolsPrinter打印控件到开发环境中,其添加控件以及设置打印参数的核心代码在官方网站http://print.jatools.com都有详细描述,这里不再做过多描述。 在物流平台的打印过程中经常会遇到一次性打印多条记录的情况,且这多条记录不能打印在同一张票据当中,我们采取的措施是在每个打印的页面都设置一个挂载点$parent,并在该挂载点设置一个标记pageId,对于一次性需要打印多条记录的票据来说,每次打印完一条记录,复制模板到相应的挂载点,同时对挂载点的值都进行改变,然后依次对不同的挂载点的值代表的记录进行打印。 其核心代码如下所示: “clonePattern”:function($parent,$pattern,pageId){ //$parent: 父窗口,挂载点,$pattern:模板,pageId:打印控件需要的pageid if($parent==undefined|| $pattern == undefined || pageId==undefined){ Alert(“clonePattern error:请输入相应的参数”); }else{ $pattern.clone().show().attr(“id”,pageId).appendTo($parent);//挂载打印记录 } } 图5物流服务平台打印模型包图 (3)在物流平台的业务过程中单据在打印的时候需要动态增加,在动态增加的过程中需要根据模板类型、单据号加载对应的模板类型,同时调用对具体单据数据进行处理的servlet,而且还要根据用户的要求执行相应的打印方式。 其核心代码如下所示: “addPattern”: function($parent, patternType, danIdStr, how){ //patternType : 模板的类型;danIdStr:单据号; how:打印方法 If(patternType == “bulkcargoprintpattern”){ $parent.load(“HTMLPattern/bulkcargoprintpattern.html#page0”, function(){ varpageId = 0; $.each(danIdStr,funtion(){ $.ajax({ “dataType”:’json’, “type”:”post”, “url”: “org/logistics/print/servlet/BulkCargoPrintServlet”, “data”:{dan:this.toString()}. “success”: function(source){ ....... If(source.length!=0){ pageId++; JQuery.clonePattern($parent,$(‘#page0’),”page”+pageId); $.doPrintJquery(how); } } }) })})}} 4 结语 在物流平台中,单据报表是整个物流流程过程中进行交易的凭据,是用户和企业对收费情况进行了解的渠道,相关的单据信息清楚明了、准确无误地表现出来至关重要。本项目中在JQuery环境下使用jatoolsPrinter控件实现单据报表的打印是可行的,满足了应用对打印报表功能的各种要求,取得了满意的效果。这也为B/S架构下打印功能的开发提供了一种基本思路,具有很好的借鉴意义。
本文档为【基于jatoolsPrinter打印控件在物流平台下的应用及研究】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_723435
暂无简介~
格式:doc
大小:337KB
软件:Word
页数:11
分类:互联网
上传时间:2013-09-16
浏览量:32