环境
l 报表设计器:可以到http://download.eclipse.org/birt/downloads/下载最新版本,当前的最新版是birt-rcp-report-designer-2_0_1。将下载来的zip压缩包解压到相应的目录,如:E:/birt-rcp-report-designer-2_0_1。
l 可运行环境:可以到http://download.eclipse.org/birt/downloads/下载最新版本,当前的最新版是birt-runtime-2_0_1。将其解压到相应目录,如:E:/birt-runtime-2_0_1。
l 可运行服务器:本人采用的是Tomcat5.0,jdk1.4.2。
l 其他:下载所需要的jar包,包括iText1.3、prototype.js v1.4.0 ,这两个jar包都可以在http://download.eclipse.org/birt/downloads/下载。将下载的iText1.3jar包放在E:/birt-runtime-2_0_1/Web Viewer Example/plugins/org.eclipse.birt.report.engine.pdf/lib目录下,prototype.js v1.4.0包放在E:/birt-runtime-2_0_1/Web Viewer Example/ajax/lib目录下。
2、Birt部署到项目中。
1. 从Eclipse BIRT官方网站下载birt-runtime-2_0_0.zip。
2. 解压之后,需要其中的web view example目录下的内容。
3. 检查并且复制以下第三方软件包到web view example目录:(一般不用改动,iText 1.3这一项可以忽略不用考虑,如果pdf格式不能输出,可参考后面)
需要的jar文件
复制位置
Apache Axis
axis.jar
axis-ant.jar
commons-discovery-0.2.jar
jaxrpc.jar
saaj.jar
wsdl4j-1.5.1.jar
WEB-INF/Lib
iText 1.3
itext-1.3.jar
Plugins/org.eclipse.birt.report.engine.emitter.pdf/lib
prototype.js v1.4.0
prototype.js v1.4.0
ajax/lib
4. 将web view example目录发布到web容器中,如tomcat,把相应内容拷入web项目的文件件下,并且把web view example里面的web.xml文件中的内容复制粘贴到项目的web.xml文件中。
6. 发布设计完成的报表文件,可在web项目中创建reports目录,用于存放报表设计文件。
7. 在应用中通过正确格式的访问路径,例如:http://localhost:8080/birtApp/frameset?__report=报表文件路径,就可以访问报表了。
这个web应用支持2个动作:
frameset,以frameset的形式显示报表。这个界面包含一些frame,如页面导航,报表主体在其中的一个frame中显示;使用形式:
http://localhost:8080/birtApp/frameset?__report=报表文件路径&参数=........
选项
说明
__format
报表输出格式:html或pdf,缺省是html。对于frameset不起作用。
__isnull
指明一个参数是null,常用于字符串类型。如果提供参数且值为空: - 对于日期和数字类型,BIRT会将它们当作null处理。 - 对于字符串,BIRT会将它作为空字符串。因此,为了说明某个字符串是null,通常写为:__isnull=参数。
__locale
本地化选项,缺省是jvm的locale。
__report
报表设计文件路径。
报表参数
报表参数参数值对,形式:参数名=参数值。对于frameset,直接在地址栏中输入参数名=参数值后回车,不会影响报表结果。虽然,此时选择"运行报表"时,弹出的参数值已经改变。
run,报表以一个单独的html页面或pdf显示,由于这种形式没有frmaeset,因此使用者必须自己提供相应的参数,如报表参数,页号等。使用形式:
http://localhost:8080/birtApp/run?__report=报表文件路径&参数=........
对于以上2个动作,以下列出可用的参数:
虽然本节所说的是针对web应用的集成,但是这种方法同样也可与非web应用集成。此时,我们可以采取一种变通的方法:在非web应用中使用内嵌的web容器,如jetty,也可达到同样的效果。这种做法和Eclipse的做法类似。还记得在报表设计时使用"报表 -> 运行报表"吗?那个弹出的窗体,实际就是一个web页面。