通过最近一段时间的
birt
报表的研究,也有了一点心得,现在遇到的最大的麻烦就是
birt
在
Websphere
中的部署问题,因为一直是在
JBOSS
中测试的,客户的应用服务器是
Websphere5.0,
不能运行,查找原因,发现不支持
Websphere5.0
,文档如下:
Deploying the BIRT viewer on WebSphere
BIRT supports IBM WebSphere Release 5.1 or higher. WebSphere Release 5.0
cannot run the BIRT viewer because the viewer requires a Java Virtual Machine
(JVM) Version 1.4 or higher. WebSphere Release 5.0 uses a Version 1.3 JVM.
BIRT supports IBM WebSphere Release 5.1 or higher. WebSphere Release 5.0
cannot run the BIRT viewer because the viewer requires a Java Virtual Machine
(JVM) Version 1.4 or higher. WebSphere Release 5.0 uses a Version 1.3 JVM.
现在对
Websphere
是失望透顶,不能设置
jdk
,如果用
Websphere5.0
,只能是
jdk1.3
。
BIRT
是
Eclipse
也自己的报表框架,应该很有前途。下载地址是:
http://download.eclipse.org/birt/downloads/
现在的最新版本是
BIRT 2.1 RC4
,稳定版是
2_0_1
,
BIRT
大体可以分成两个环境:运行时环境和报表制作环境。
报表制作环境时
eclipse
的插件,你可以之间下载
birt-report-designer-all-in-one
,下载就可以直接制作报表了,或者下载
birt-report-framework
用插件的方法安装,最好使用
link
的方法安装,我的另一篇文章中有方法。下载后还需要下载第三方的软件包,如下
:
|
需要的
jar
文件
|
复制位置(都在
plugins
目录下)
|
axis.jar axis-ant.jar commons-discovery-0.2.jar jaxrpc.jar saaj.jar wsdl4j-1.5.1.jar |
org.eclipse.birt.report.viewer_version/birt/WEB-INF/Lib
| |
itext-1.3.jar
|
org.eclipse.birt.report.engine.emitter.pdf_version/lib
| |
prototype.js v1.4.0
|
org.eclipse.birt.report.viewer_version/birt/ajax/lib
|
iText1.3
是
pdf
的支持,
prototype.js
是在
html
中的显示支持,不同的版本可能具体位置有一点差别但是问题不大。下面就可以进入报表的制作了。
报表的制作过程还是比较简单的,比操作
word
还要简单通过简单的拖拉就可以完成,相信你会很快上手的。放一张图吧:

很简单吧!
重点要理解几个概念:
- 数据源:数据的来源,或提供者。如xml数据源、jdbc数据源等。
- 数据集:数据集合,它必须与数据源关联,可以理解为查询的结果。
- 报表以及报表项,报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形式的某个具体的单元。它们之间的关系,与窗体和控件的关系非常类似。报表、数据集、数据源三者间的关系:数据源 --- 数据集 --- 报表。
- 报表参数:查询参数的表现形式,使用它可以构建更灵活的报表。
- 模板和库:主要用于复用报表设计,提高报表开发的效率。
birt
的报表网上也有一些开发的例子,可以参考。eclipse网站上也有几个flash和视频可以参考,
一般的报表制作也是比较简单的,第一步:建立
数据源,
第二步建立数据集
建数据集的时候有一些问题要注意,如果查询的sql语句中需要参数只要写成×××=?并且数据集的参数要和?数量相等,并且是按顺序对应的。
第三步建立报表参数,也就是你的页面需要传递的参数。
第四部,设计界面了,最常用的可能就是表了,表有页眉、详细内容和页脚,你的数据集中的数据当然一般放在详细内容中的。
第五部就要绑定参数了。
很快你就可以制作好一张报表了。有几点注意的内容:表的详细内容里只能一个数据集的东西,如果要多个数据集只能用潜套表,但是会存在嵌套表与外部表对齐的问题,有一个解决方法,是网友提供给我的,有需要的 可以和我联系。
运行时环境也是比较简单的,只要下载birt-runtime
运行的参数如下:
- frameset,以frameset的形式显示报表。这个界面包含一些frame,如页面导航,报表主体在其中的一个frame中显示;使用形式:
http://localhost:8080/birtApp/frameset?__report=报表文件路径&参数=........ - run,报表以一个单独的html页面或pdf显示,由于这种形式没有frmaeset,因此使用者必须自己提供相应的参数,如报表参数,页号等。使用形式:
http://localhost:8080/birtApp/run?__report=报表文件路径&参数=........
对于以上2个动作,以下列出可用的参数:
选项 | 说明 |
---|---|
__format | 报表输出格式:html或pdf,缺省是html。对于frameset不起作用。 |
__isnull | 指明一个参数是null,常用于字符串类型。如果提供参数且值为空: - 对于日期和数字类型,BIRT会将它们当作null处理。 - 对于字符串,BIRT会将它作为空字符串。因此,为了说明某个字符串是null,通常写为:__isnull=参数。 |
__locale | 本地化选项,缺省是jvm的locale。 |
__report | 报表设计文件路径。 |
报表参数 | 报表参数参数值对,形式:参数名=参数值。对于frameset,直接在地址栏中输入参数名=参数值后回车,不会影响报表结果。虽然,此时选择"运行报表"时,弹出的参数值已经改变。 |