Aimd's Blog

  博客园 :: 首页 :: 新随笔 ::  :: 订阅 订阅 :: 管理 ::
  29 随笔 :: 0 文章 :: 81 评论 :: 0 引用

BIRT是一个优秀的报表插件,本文将涉及它的安装到简单使用的整个过程。

一,安装

1:到http://download.eclipse.org/birt/downloads下载相应版本(我的Eclipse3.2,所以BIRT的版本是2.1M5)的Frameworkruntime两个包。把Framework包解压,然后和其它plugin一样放到Eclipsepluginsfeatures目录下;把runtime解压到任意目录下,如C:\birtruntime。这里说明一点:BIRTruntime在有些时候并不需要,比如但plugin导出为rcp发布后,在其它的机器上就不需要安装runtime来运行报表了。

2BIRT要依赖GEFEMF,所以你的Eclipse平台要正确安装GEFEMF

3:如果想用pdf格式显示报表结果,我们还要做以下两件事情:到http://prdownloads.sourceforge.net/itext/itext-1.3.jar下载itext,然后拷贝到plugins/org.eclipse.birt.report.engine.emitter.pdf_version/lib目录下;到http://dev.conio.net/repos/prototype/dist/prototype.js下载prototype.js,然后拷贝到/org.eclipse.birt.report.viewer_version/birt/ajax/lib目录下。


二,创建报表

0:配置BIRT环境,因为例子将要使用jdbc做为数据源,birt本身并布提供这样数据库的驱动,所以要把所使用的数据库驱动文件放到相应的目录。

下载derby.jarderbyclient.jarderbynet.jarderbytools.jar四个jar,然后把他们拷贝到以下两个目录:

\plugins\org.eclipse.birt.report.data.oda.jdbc_2.1.0.M20060303-0920\drivers

\birt-runtime-2_1_0\ReportEngine\plugins\org.eclipse.birt.report.data.oda.jdbc\drivers

      1:创建一个报表工程
 

2:创建一个report文件,最后一步选空模板。

       3:创建数据源。BIRT支持多种数据源,这里选择比较复杂的JDBC数据库数据源,数据库使用Derby做为例子。假定你的derby数据库已经配置正确并已运行,然后在Data Explore navigator视图下创建新的数据源,配置如下图,如果数据库访问有用户名和密码也正确填写:

        4:创建数据集。选择创建数据集后会有一个如下的窗口弹出,第一个是数据集的属性操作切换页,第二个窗口列出所有的数据表,第三个是编辑框,可以在里面手写或者在第二个框里拖动我们需要的数据库的某一列。

5:设计报表。这一步开始按照自己的需求来设计报表,birt提供了丰富的报表格式,如:柱状图、饼状图、chart、表等,这里我们用表做为例子,假设数据库有一个consignee的表,表有IDnamelocation三列,我们设计一个报表,用户可以在报表上选择一个location,然后报表给出在这个location的所有用户。

       51:按照需求,用户可以在报表上选择一个地点来统计结果,所以这里用到BIRTparameter(参数)的技术,双击Data set数据源,选择parameters,创建一个新的参数,如图:

然后切换到Query界面,添加一句sql语句where location = ?,如下:

5.2 创建一个叫做Parameter的新数据集,此数据集只提供动态参数的数据来源(这个作用稍后会更清晰的看见)

SQL语句为:

 

select DISTINCT APP.CONSIGNEE.LOCATION

from APP.CONSIGNEE
      53 创建一个新的Report Parameter(报表参数)。

54设计报表的表格。

       541 拖动一个默认属性的table到界面上,然后点右键,选择“Edit Data Binding”,如下图设置:

        542 Data Set数据集里的三列分别拖到table的第一到第三列,效果如图:

        55 预览。到这里,简单的应用都有了,点击一下preview看一下效果,首先点击“show Report Parameter”,出现这个:


这个combobox里面的内容就来自数据集Parameter,是动态的。选择一个参数运行就能看见结果了。


三,使用设计好的报表

如果想在另外一个项目中使用设计好的报表文件,有两种方式,一个是用web的方式查看结果,另一个是用pdf的方式,这里介绍web方式,例子是一个单独运行起来的birt报表。

在想显示报表的地方使用如下语句:

DtpManifestExplorer.getInstance().getExtensionManifests();
String path 
= filePath + "filename.rptdesign";
WebViewer.display(path, WebViewer.HTML, 
true);


注意最后一句的最后一个参数,如果想在报表中使用参数就为
true否则为false

四,总结birt的功能很强大,还有柱状图等很图形可供使用,原理都很相似,可以在使用种慢慢摸索。
posted on 2006-05-16 09:54 Aimd 阅读(3280) 评论(14)  编辑 收藏 所属分类: Eclipse&&Java技术

评论

#1楼  2006-12-06 17:30 rucie [未注册用户]
想问下,是否有用birt做过动态列的??或者交叉表?
或者您可以给我点实现动态列的建议??使用哪种工具更好呢?
  回复  引用    

不太明白你说的动态列是什么意思
  回复  引用    

#3楼  2006-12-11 14:34 rucie [未注册用户]
就是由用户选定显示字段,生成相应报表的,多表的
  回复  引用    

#4楼 [楼主] 2006-12-19 13:08 Aimd      
@rucie
这个没试过。

  回复  引用  查看    

#5楼  2007-06-19 08:50 athena [未注册用户]
能否把上面例子发给我看看,我想把birt做的报表引用到自己的程序里,但是总做不好,我的邮箱是maorr@sugang.com.cn
  回复  引用    

re: BIRT 中怎么显示网格线
  回复  引用    

#7楼  2007-06-26 14:06 aimd [未注册用户]
@athena
sorry,i can't sent codes to you,it's forbidden.
  回复  引用    

#8楼  2007-06-26 14:06 aimd [未注册用户]
@re: BIRT 中怎么显示网格线
设计birt报表样式时应该可以吧
  回复  引用    

#9楼  2007-08-28 22:11 邵 [未注册用户]
<1>选中单元格
<2>选中下方的“Property Editor - Cell”,选属性列表中的“Border”,就可以设置网格线

  回复  引用    

我安装了birt但是,只能新建模板,不能新建报表和新建库,请问那个高手知道是怎么解决?谢谢了
  回复  引用    

#11楼 [楼主] 2008-01-23 08:47 Aimd      
@天涯游客
看看是不是安装的不正确
  回复  引用  查看    

动态列我已经做出来了
  回复  引用    

#13楼  2008-05-28 10:27 fy_kenny      
这个我知道的,就是报表文件的设计.

我问的是:怎么样添加,那个工具条:如:打印,导出功能等.

要是基于viewer的,我知道指定frameset就可以显示出工具条了.

但是,我用报表引擎,就只能看到报表结果,而没有工具条出现.

所以,我考虑自己写代码实现那些功能.

如果,有更方便的方法就可以有那个工具条就更加好了.

你明白了吗?
  回复  引用  查看    

#14楼  2008-06-18 06:03 wxsnow [未注册用户]
@lucifer821031
你好!有个动态列的问题困扰我好多天,我涉及的是birt chart中y轴列动态该,请指教或把你的动态列的答案\例子告诉我好吗?sherllywx@vip.sina.com
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-05-17 15:55 编辑过


相关链接: