正文:
1:frameset 是什么?(提供了什么,有什么特点,为什么我要用它?)
2:怎样为我所用(如何汉化,重新打包viewservlet.jar部署)
(一)frameset 是什么?(WFW: What, Feature and Why?)
相信接触过BIRT的人对frameset都有了解,第一次接触肯定会对其工具栏,分页显示及进度条效果印象深刻。可是其默认显示是英文的,对于中文的应 用来说,似乎有种“可远观而不可亵玩”的味道。我之前的工作中,也一直对BIRT默认提供的东西敬而远之。之前的工作中,一直是采用自己写的页面去调用报 表,仅仅是用BIRT的runtime包生成定制文件(html、excel)而已。最近刚用BIRT 3.7搭建了一套报表展现方案,回首过去的做法,感觉自己做了很多无用功(重复造轮子)。经历了5年多的发展,birt累计了不少优秀的东西。其提供的几 个servlet(preview、run、frameset)一直很强大,阔别一些时日后,这种感觉更加深刻。今天就本人对frameset汉化的事 情,做个总结,希望和大家一起分享,进步。
1.1 什么是frameset?
Birt的runtime 3.7包中提供了多个servelet(preview、frameset、run等),下面主要对frameset说一下(至于其他的servlet详细解释,可以参考: BIRT servlet详细解释 )
frameset:
采用Ajax框架,可以显示工具条,导航条和TOC面板,实现复杂的操作,
如分页处理,导出数据,导出报表,打印等。
该模式下会自动生成report document文件(预览report design文件)到特定的目录
(用户可以用参数指定,也可以定义在web.xml里)。采用Ajax,速度较慢。
1.2 frameset特点
在此就不多说frameset的特点了,截个图你自己体会吧。
1.2.1:提供报表展示用工具条(导出、打印、分页等)
1.2.2:frameset展示页面开源,后期拓展、自定义修改容易
也许有人会说:其默认的frameset功能不错,但是其界面样式、风格等与公司产品风格不协调,希望对其自定义改造。
对于这个问题,开源又一次展现了其魅力。我们完全可以直接去修改webcontent中的内容,按照自己的想法,去修改CSS等。
如下以工具栏按钮为例(ToolbarFragment.jsp),看里头的页面还是写得很清晰的。
JSP代码片段:
- < TD WIDTH = "15px" >
- < INPUT TYPE = "image" NAME = 'toc' SRC = "birt/images/Toc.gif"
- TITLE =" < %= BirtResources.getHtmlMessage( " birt .viewer.toolbar.toc" )% > "
- ALT =" < %= BirtResources.getHtmlMessage( " birt .viewer.toolbar.toc" )% > " CLASS = "birtviewer_clickable" >
- </ TD >
1.3 为什么要使用frameset?
在此我也不过多地废话了,根据你自己的情况看着办吧。我的理由很简单,既然别人帮我们做了,而且还不赖,干嘛不拿来用呢,呵呵。
(二)frameset汉化
相信你已经对frameset有了一定好感,可能已经开始动手去改造frameset了。 “请先等下,不要重复造轮子!”,BIRT在设计的时候已经考虑了国际化的问题,eclipse官网上得汉化包能很快速地帮助我们解决BIRT汉化的问 题。下文将详细说明frameset的汉化。
汉化的过程也很方便,大体来说:先到官网下载相应的汉化包,替换viewServlet.jar 包中得messages.properties文件;重新打包viewServlet.jar包即可。
2.1 下载汉化包
汉化的过程很简单,先到官网下载相应的汉化包, http://download.eclipse.org/birt/downloads/lang.php?build=R-R1-2_2_2-200802271210
我实际操作过程中发现3.7下对应的语言包下载完后没有messages_zh.properties文件,在2.5版本的链接中是有的,所以推荐到2.5中去下。
2.2 替换viewservlets.jar 部署
2.2.1 找到刚才安装的汉化插件包,进入plugins目录找到一个名为 “org.eclipse.birt.report.viewer.nl_zh_*.jar(*代表版本号)的jar包,然后解压,在/org /eclipse/birt/report/resource目录下面会得到一个Messages_zh.properties文件,这个文件就是能够实 现汉化的文件啦。
2.2.2 找到birt运行库目录,即默认的birt-runtime-*目录,然后去/WebViewerExample/WEB-INF/lib下找到名为 “viewservlets.jar”的jar包,使用压缩工具打开(不用解压),进入/org/eclipse/birt/report /resource目录,这里会发现一个Messages.properties文件,这个就是birt本身带的语言包配置文件啦。
2.2.3 将在第一步里得到的“Messages_zh.properties”重命名为“Messages.properties”,然后使用压缩工具的“添加” 按钮将此文件添加到“viewservlets.jar”文件中(需要点击“覆盖”),这一步的目的就是将英文的配置文件替换为中文的配置。
2.2.4 将修改后的viewservlets.jar文件添加到工程,或者覆盖原来的viewservlets.jar文件,即可实现birt在客户端的汉化。
结语:
在替换完viewservlet.jar 之后,直接替换原有lib包里的同名jar,就可以正常显示中文版的frameset了。
在最后把自己替换后的viewservlet.jar 也放到CSDN上了,需要的自己去下吧。