BIRT简单实例

 

http://www.360doc.com/content/10/1109/19/3715754_68004729.shtml

BIRT是一个Eclipse-based开放源代码报表系统。它主要是用在基于Java与J2EE的Web应用程序上。BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。BIRT同时也提供一个图形报表制作引擎。

Birt Home :http://www.eclipse.org/birt/phoenix/
Birt环境及下载:[url]http://download.eclipse.org/birt/downloads [/url]
Birt教程:http://www.eclipse.org/birt/phoenix/tutorial/
eclipse技术论坛:[url]http://www.eclipseworld.org/bbs/ [/url]
Birt例子演示:[url]http://www.eclipse.org/birt/phoenix/examples/ [/url]
[url]http://download3.eclipse.org/birt/downloads/examples/misc/BIRT/BIRT_demo_Camv3.html [/url]
[url]http://download3.eclipse.org/birt/downloads/demos/MyFirstReport.html [/url]

Birt使用小结
Ide: birt-report-designer-all-in-one-2.1.2 (建议初学者下载,下载后是一个ECLIPSE,BIRT已经装好了,方便)
Runtime:birt-runtime-2.1.2
Jdk: jdk1.5.0_02

和现有项目有两种结合方式。
其一:直接使用birt_runtime_2.1.2中的WebViewerExample。
1.    将其发布到C:\jakarta-tomcat-5.0.28\webapps目录下,并将其更改名称为birtApp。
2.    在birtApp \WEB-INF\platform\plugins\com.lowagie.itext目录下新建文件夹lib,并将itext-1.3.jar和iTextAsian.jar拷入其中。
3.    将已完成的报表,比如test.rptdesign放到birtApp的根目录下,即可通过
http://localhost:8080/birt/frameset?__report=test.rptdesign(相对路径)
或者
http://localhost:8080/birt/frameset?__report=C:/jakarta-tomcat-5.0.28/webapps/birt/test.rptdesign(绝对路径)
来访问。
若报表设置以后参数,则只需在上述url后拼接参数及值即可。
Eg: http://localhost:8080/birt/frameset?__report=test.rptdesign&sample=my+parameter
其二:在我们的程序中使用birt提供的Report Engine Api来调用报表并展现报表。
1.    新建web项目webrpt。
2.    在webrpt的web模块下的WEB-INF目录中新建文件夹lib,并将birt-runtime-2_1_2\ReportEngine\lib下的所有文件拷入其中。
3.    如上,同样在WEB-INF目录中新建文件夹platform,并将birt-runtime-2_1_2\ReportEngine下的plugins和configuration拷入其中。
4.    将itext-1.3.jar和iTextAsian.jar拷入platform\plugins\com.lowagie.itext文件夹的lib目录中(此处如果没有该目录,新建之),亦或者将所述jar包拷入WEB-INF\lib目录下也可。
5.    在webrpt的web模块的根目录下新建images和reports文件夹。其中reports文件夹中放
已开发完成的报表文件。
6.    当然所使用的数据库驱动也要放在lib文件夹下。
7.    使用report engine api开发调用及展示报表的相关程序。代码如下:
WebReport.java

BirtEngine.java

 

8.    通过web页面输入要访问的报表名称,并提交到处理请求的相关servlet.
Test.jsp

9.    修改web.xml文件如下

参看Servlet Example.

另:一些在论坛里学到得很实用的小技巧,谢谢提供的作者们:)
分页(vii779):
2.1以后,只能按照分组分页,想要按每页固定记录数来分页比较困难。
论坛中已经介绍过通过分组的方式,加一个分页字段来实现分页功能。
但该方式操作起来稍显繁琐 。
通过Script方式,可以实现更简单的分页方式。
首先加一个表格,选中表格中的明细行,切换到Script标签页。
在onRender事件中加入以下代码

这样就实现了按每页20条记录的分页功能。
需要注意的是,在run方式下,看不到分页效果,打印预览时才能看到分页。
在framest(ctrl+shift+B)方式下,可以看到完整的分页效果。

纸张(paddycq):
主页—>常规   中设置方向、类型

Pdf中文乱码(mmwy):
放了itext-1.3.jar、iTextAsian.jar两个jar包在\plugins\com.lowagie.itext\lib目录下,一切ok,从来没有出现过中文问题。就连部署到linux下也是如此。

URL乱码问题.mht
两种解决方法:
一. java.net.URLDecoder.decode(java.net.URLEncoder.encode(“中文”));
二.如果使用tomcat做web应用服务器,则修改server.xml文件,在connector元素中增加属性uriencoding.
Eg:

前提:
1.使用eclipse提供的runtime viewer.
2.使用超链方式查看报表.
3.使用tomcat.

具体解决办法:
修改tomcat的server.xml文件,在Connector元素中增加属性useBodyEncodingForURI=”true”
并且,url中的中文参数必须事先转码.
eg:
String param=java.net.URLEncoder.encode(“公用信息表”,”UTF-8″);
<a href=”../birt/frameset?__report=privilegerpt.rptdesign¶m=<%=param%>”>查看</a>
即ok.