BIRT是一个Eclipse-based开放源代码报表系统。它主要是用在基于Java与J2EE的Web应用程序上。BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。BIRT同时也提供一个图形报表制作引擎。
1.典型的Eclipse插件,可以方便的在BIRT perspective中进行可视化数据编辑、图表生成和报表生成。
2.支持java应用和J2EE WEB应用程序。
3.众多的数据处理函数。
4.图表生成格式有PNG,JPG,BMP,GIF,SVG.生成SVG格式的图表的时候,可支持事件,给用户更多交互。
5.数据源
数据的来源,可以是xml数据源、jdbc数据源、脚本化的数据源、平面文件的数据源。
6.报表参数
查询参数的表现形式,使用它可以构建更灵活的报表。
7.XML格式的报表
不管是通过Eclipse BIRT可视化界面生成的报表文件,还是调用Design API生成的报表文件,其本质都是一个XML格式的配置文件,其中配置有数据源、数据集、报表信息、图表信息等信息,这些都可以方便在配置文件中修改。
比如数据集的sql都写在了配置文件中,以后可以方便的修改。如果数据集是存储过程,更方便修改。
9.库和模板
除了脚本使开发者可以自定义报表的行为外,BIRT还提供了库和模板机制来重用设计,加快报表的开发,提高重用性。
10.三种整和方法
运行时整合(Runtime Integration)
设计时整合(Design-Time Integration)
扩展BIRT
了解了BIRT,让我们来部署一个工程吧。
首先到http://www.eclipse.org/birt/phoenix/下载个eclipse开发birt完全版。(这是最简洁的办法)
下载开发版birt-report-designer-all-in-one-2_3_1.zip
发布版birt-runtime-2_3_2.zip
发布的包直接解压到你的发布服务器里,例如tomcat的webapps目录下
环境搞定后就设计报表了,怎么设计这里就不多说了,网上一大堆资料,感觉这活不像是程序员干的事。:)
设计完成发布后下面的问题必须引起重视:
1.brit报表运行速度太慢
答:
1)birt 厂商那个是挺慢的,这样写可提高性能
Platform.startup( birtConfig );
IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
engine = factory.createReportEngine( birtConfig );
并且只是第一次慢一点,以后就快多了.
2):第一次的确是必较慢,需要初始化很多东西,比如startup OSGI platform, create report engine instance, load 其它plugin等等。可以考虑把初始化工作放到ViewerServletContextListener类里,在启动web应用的时候,就初始化好,这样第一次访问就会快很多了。
2.大量数据问题,当数据量大的时候例如3万条,每页显示25条,那么打开报表就非常的慢,久了还会超时报错,应该是缓存到本地的时候,怎么才能让它快点?
答:->在报表编辑环境
->选取 数据集(Data Sets)
-> 鼠标右键 编辑数据集,
-> 在"设置"选项
-> 选项 Data Fetch Setting 中
-> 取消 Fetch all rows from data source
-> 在 Max number of rows to fetch from data source 中设置 数值,如100
建议不要针对大的数据集使用table 上定义的filter等功能。通过定义不同的dataset来处理。dataset 是data base engine 级别的效率,table上定义的是birt自己内部运行的,肯定不如db engien 快。
3.在frameset运行的时候,如何去掉BIRT Report Viewer字样?如何去掉BIRT Report Viewer下面的toc按钮。
答:1).可以在URL上加参数进行控制,"&__showtitle=false&__toolbar=false"。
2).修改 JSP Tag, 路径类似 \tomcat\webapps\birt\webcontent\birt\pages\layout\FramesetFragment.jsp