admin 管理员组文章数量: 1086019
2024年4月20日发(作者:企业网站建设策划书范文)
维普资讯
计算机时代2007年第5期 ・47・
基于We b的数据打印技术的研究与实现★
刘伟’。唐泽龙。
(1.广东工业大学应用数学学院,广东广州510090;2.广州市盛祺计算机信息技术有限公司)
摘要:针对Web数据打印缺乏灵活性的问题,使用中间件动态生成的XML,结合XSL如Document对象,提出了几种
用户可自定义打印格式的通用解决方案。该方案应用于“国有资产智能管理系统”项目取得了良好的效果。
关键词:中间件;XML;XSL;Document;数据打印;Web
0引言
随着数据库技术与网络的发展以及互联网的普及,基于
B/S(Browser/Server)模式的软件应用越来越广泛。大多数管理
信息系统在应用中都有数据打印需求,因此对Web数据打印
的研究非常重要。
目前常用的Web数据打印的方式有:
简单应用:将需要打印的数据以表格标志(<table>、
<tr>、<th>、<td>)组织成HTML文件,以浏览器(如IE)显示并
打印。其优点为处理与实现简单。缺点是缺乏灵活性,不能由用
户自定义格式,形式太单调;数据多页显示时,分页打印定位不
准确。
模板打印:利用开发工具(如Java)开发一个ActiveX控件,
安装在需要打印的客户端,用户自定义打印格式并以模板文件
的形式存储,只需传递相应的数据给对应的模板文件就可以按
照用户要求打印。这种方式的优点为不需要开发人员修改程
序,用户可以利用开发人员提供模板修改工具直接修改模板文
件保存所需的格式。缺点是开发此模板处理工具比较复杂,或
要向专业公司购买类似的工具。
本文克服了Web数据打印的不灵活性以及模板处理工具
复杂性等缺陷,利用中间件技术(EJB、COM)动态生成XML,
结合不同的XSL文件,得到形式丰富多样的格式,以满足用户
自定义的需求;又可以通过参数设置选择不同的数据项(数据
字段)得到不同的打印数据;还可以设置显示页面数据的记录
数,结合Document对象动态生成HTML文件以确保分页定位
准确的数据打印。实际应用证明,方案灵活、实现简单,是可行
的通用方法。
1中间件技术生成XML数据
XML(extensible Markup Language)是网络第二代语言,可
以定义无穷无尽的标志来描述文件中的任何数据元素,突破了
HTML固定标记集合的约束,使文件的内容更丰富并组成一个
完整的信息体系。XML具有良好的数据结构,已成为广泛接受
的数据传输标准。
Web应用服务器调用中间件(EJB、COM)接口,通过设置
的参数获得封装的XML数据片段。下面我们在vJ++环境中
基金项目:广东省科技厅重大攻关项目(A0202039)
考虑XML数据的生成。
在vJ++中使用XML接口主要是通过微软提供的
Msxml2.d11实现。该动态链接库提供了对符合XML标准的所有
对象进行操作的方法。其中,主要的接口有:DOMDocument26,
IXMLD0MNOde,IXMLD0MNOdeList,IXMLDOMNamedMap,
IXMLDOMAtrribute等。
在国资项目中获取企业信息的XML片段则通过COM对
象Enpr的接口实现:
public String getEnprByCondition(int pageNum,int
pageRecord,String QueryCondition,String SortCondition)
其中:函数getEnprByCondition以字符串形式返回企业
xML信息;
参数pageRecord是分页传递数据时每页显示的记录数;
参数pageNum是分页传递数据时第pageNum页的数据;
参数QueryCondition是获取数据设置的过滤条件;
参数SortCondition是获取数据设置的排序条件。
2解决方案
下面给出3种解决方案:
2.1 XML与XSL相结合生成动态的HTML
使用此方案,用户在数据打印前可通过预览确认数据是
否符合要求,并通过数据字段的选择确认打印内容(如图l,图
2);若页面数据太多等,可重设“页记录数”等参数加以调整
(如图3,图4);对同一XML片段,若数据排列格式需变化可
通过选择预定义的XSL文件作为参数调整生成动态的
HTML( ̄IJ图5),同时也可直接修改XSL文件,从而得到形式
多样的打印格式。
操作步骤如下:
(1)用户通过浏览器(browser)设置参数:XSL文件名,页记
录数,第几页,查询条件等,然后向Web服务器请求。
(2)Web服务器响应,获取参数并调用中间件(COM)对象
接口生成XML片段,同时选择XSL文件,处理数据节点,以
HTML格式反馈给客户端。
(3)用户预览确认是否符合需求,若格式不合,继续执行步
骤(1),否则打印数据。
维普资讯
・
48・ Computer Era No.5 2007
图1打印数据范围选择
图2选择数据打印结果
髓圜毯—I——
每赛显露
趸显示行数设置
舒款: 壁
I
l
一._.一. 一。
鍪
.
溷 薹
. ~. 立
蓄
一。
l
。
j
图3页记录数设置
2.2 XML数据片段导入EXCEL
在w曲页面中嵌入MSOWC(Microsoft Ofifce Web
Components)的Spreadsheet Component对象,将XML数据赋
给此对象,利用Spreadsheet Component对象的“导出到Excel”
功能即可生成Excel文件(如图6)。
图5不同XSL显示打印结果
麴呲p『抽c 托砷扯 酬 e删 蚋 d 螂 蜊i
誊
黪 鎏
羹l革墩娄釉革垃代码 名鞴c 景^ 电话 辘 }
蠢茸蚀 5153"tS9 ̄ ̄-_Z 南_艇义蓊工作者联台台 禁袁烽 16.30 ̄C0 0 誊
山直|事业睦 456叶878 1鞭每区{荨} 馆 张 露 88gD啦 1i l誊
I霞事业性事业蛙 。 棒噜 聃区梢赛愚 。 辩透坤 82 i8 蚺
滋事娅睦T
曰 T0酾o-4
25娟38啃 南}
辩j
覃区电影麓行靛映中心
曩区广摇电提愚 郊涪飞
嵇平嗲
6335471 ∞
63:E'3T8 8 溢冀
事业睦 T事业眭
456O瑚
竹59l搏_
-T
z
藉_
黼瓠暖酶 控剞中心
艇市敢管理局 关礤研
躲耋毡
83掰H
∞322sT 60
∞
器鬏事 t蛙 o盯∞ 前●鹭阵霄愚 辩l担够蹲TB 88 ;
鲞 事业l生 6l8s l砒离坶区羽书馆 囊l鸯萍 8艘4
i耋羹i事业性 侧T蝴-2陌肯区文化馆 卢 828跚 15
差i事业睫 T2iI98l l 辩海影毓 爨直暑 628搿4 e {
疗嚣l生 t。0 l 南}卑边髓榆藿站钟粕63229∞- l87
行致l生∞" 3 南}荨医射技愚蒸荐华83∞】H 53
嚣聩睦. ToOOO哩辩_艇对外投暴妊济台佑菊叶霹62q368s 36
行段睦。 052 聃区发糕计划雨 王洁沂 83鸵I29 牡 i
誊鲑霭l鞋 o 嗡! l 离_由区朔盘联鸯盘 张霹暑 833T s 8
熏 行酸性
霸鼙啡 ooTos27 z
∞TO谨4 4
瓣缸
辩龌磐{£局
耐鞋聪盒台
麓丹格
王飞中 8拉聊
8∞ f
8
8
型行溉l生驺0 "tO-3 聃区公妥局变通暑察犬鼽菇 位 826B4“ 筠l互l一
图6打印数据导入EXCEL
部分代码如下:
<OBJECT classid=”CLSID:
0002E51 0..0000..0000..C
codeBase=file:msowc.cab#version=9,0,0,271 0
height=78 id=m Excel
style=”HEIGHT:200px:LEFT:0px;TOP:0px;
WlDTH:500px”width=333>
<PARAM NAME=。’DataType’’VALUE=’’HTMLDATA’’>
<param name=ViewableRange value=”¥A¥1:¥T¥22”>
</OBJECT>//在页面中插入对象
m
—
Exce1.HTMLData=tmpXML;//给对象赋值
2.3 XML数据与Document对象动态输出HTML文件
Web应用服务器调用中间件生成XML数据,页面(ASP)
通过Microsoft.XMLDOM类对象就可以访问XML数据中的
任何节点内容,并由页面内置对象Document的Write方法动
态输出HTML文件(如图7)。分页设置通过CSS控制。打印数
据字段、内容以及页记录数由用户通过参数设置。
(下转第51页)
维普资讯
计算机时代2007年第5期
有很强移植性的应用程序对程序设计和开发人员是一个艰巨
的任务。笔者结合自己的经历认为可行的思路如下:
(1)应用的用户界面和实际的处理逻辑尽量分开,将一些
可以共用的处理逻辑提炼成共用的函数接口。例如:日程应用
・51・
在程序中,所有数据结构的数据项,函数的参数和返回值,
类的成员数据都用上面的这些通用类型,这样编写的软件的可
移植性就可以大大提高。
如果可能,多采用成熟的第三方软件或者知名的开源代码库。
手机的应用经常碰到部分模块是自己开发还是采用第三
些模块应该多采用专业公司开发的成熟软件或者采用稳定的
较少。例如:现在很多手机都支持MP4播放,这样就涉及音视
强的第三方或者开源的音视频编解码库比自己进行开发要合
算得多,这样的应用程序的可移植性比自己在特定平台上全部
由自己开发的应用程序要好。
的阴阳历转换算法,电话本中的首字母查找算法等都可以放在
一
个单独文件或者库文件中,这样的代码可以很方便地移植到 方软件的问题。为了软件的可移植性,加快软件的开发速度,这
其他的平台上。
(2)编写代码的时候,数据结构的定义和函数的处理要考
开源软件。这比自己重新开发好、快捷方便得多,开发成本也比
虑不同硬件平台的差别。一个好的做法是定义一个平台上通用
据类型。例如:如果是在c,C++的开发平台上,我们可以定义一
个文件types,h,它里面包含如下通用类型的定义:
typedef char BOOLEAN;
typedef unsigned char BYTE;
typedef char CHAR;
typedef unsigned short WCHAR;
typedef char INT8;
typedef unsigned char UINT8;
typedef short INT16;
typedef unsigned short UINT16;
typedef long INT32;
typedef unsigned long UINT32;
typedef long LONG;
typedef unsigned long ULONG;
如果可能,选择一个经过市场验证,可移植性
的数据类型定义,而不是直接使用设计语言里面原始定义的数
频编解码的问题,
3结束语
手机上的应用程序开发环境现在还是一个比较封闭,与应
用程序耦合比较紧密的系统;应用程序的设计和开发相对复
杂,对应用的稳定性,安全性,实时性要求也比较高。无论是对
手机系统平台的设计人员还是开发人员,只有在了解其特点的
基础上才能提出有针对性的方案。本文指出了这些特点并阐述
了笔者的观点,希望能起到抛砖引玉的作用。
参考文献:
【11程宇,刘福峰.3GSM世界大会钡航未来手机发展http://v, ̄cw eaw.
com.cn/Article_Show.asp?ArticlelD:7684,2006.3.30.豳
{上接第48页)
部分代码如下:
var xmlDoc=new ActiveXObject(”Microsoft.XMLDOM”):
//咤{建XMLDOM对象
xmlDoc.Ioad(XMLData):,/XMLDOM对象装载XML数据
document.write(”<style media=print>.PageNext
3方案比较
(1)XML与XSL相结合生成动态的HTML:该方案一般
适应于单页数据打印,可以提供丰富多样的格式。
(2)XML数据片段导入EXCEL:该方案适应于需要调整
打印数据的情况,通过导出ExceI到文件,用户可对数据进行处
理,是较灵活的一种方式。
(page—break—after:always;)</style>”):I1分页标志
var xmlNodes=xmlDoc.selectNodes(”//Record”)://生成记录节点
xmlNodes.item(i).seIectSlngIeNode(”Field[@FName=
’OrganType’】,,).text;//获取第i条记录的字段”OrganType”的值
document.write(”<br><center>共”+pageCount+”页第”
+curPage+”页</center><div class=’PageNext’></div>”1
//分页设置。页尾说明
(3)XML数据与Document对象动态输出HTML文件:该
方案适应于数据比较多的连续打印情况。
4结束语
本文介绍了在vJ++环境利用中间件(c0M)封装XML数
据的方法。通过XML,结合XSL,Document等对象提出了三种
打印方案,并给出相应的实现。比较了三种方案的适用范围。
“国有资产智能管理系统”的应用效果表明,方案不失为通用的
静 } 赫l& § 醚 日口 醐2 黼 鬻 垂垂I B虢 萎摊 S燃 糍孵 *; e~ i勰…酆瓣
单位信息
单位类刷
摹 性
行政性
行政性
苻政性
行政性
致性
行政性
行政性
行政性
行政性
单位代码 名怀 联系人
721 19814.1 喃搀囊j屠 先 梁直君
G3a; ̄Y0000.1 南捧边防档壹站 神拱潮
0卵05238.0 南搀区财政局 蒹标华
f硎Y0000 2 南梅区对外贸易经济台作局 斗晖
00705235.6 南搀区发展计划局 王拮沂
00705275 1 南海区妇女联台舍 张丽麓
0钾O5276-X 南梅区工弼业联舍会 王飞宁 l
00705244.4 南梅区公安局 J黄丹梅
K3079670.3 南挎区公费局交通警察太队I高妙t殳
GJ'W"Y0000.3 南拇区公安捎防太队 I亭肖峰
电话
62822
6322998-41弛l
6338164
6293685
6332429
6337345
62242卵
6339931
6266444
6266635
数据打印方法。
参考文献:
【1】侯文彬等.网页设计教程【M】.清华大学出版社,2004.
【2】孙一中等.XML理论和应用基础【M】.北京邮电大学出版社,2001.
(31到文远等.用XML发布企业数据(J1.计算机工程与应用,2002.38
—
(23):239~242
【4】D Florescu,D Kossman.Storing and Querying XML Data using
a RDBMS[J].IEEE Data Engineedng Bulletin,1999.22(3):192~194
并6页第2页
图7分页打印数据
【5】徐彤等.Visual J++编程疑难详解【M】.人民邮电出版社,2000.翻
版权声明:本文标题:基于Web的数据打印技术的研究与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713606575a643030.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论