birt报表初级教程之嵌套报表
BIRT 报表使用说明

BIRT 报告传统报告允许允许企业以图形形式显示其他人可读的数据。
BIRT 有助于自动化在部署好的J2EE 应用程序中创建报告的过程。
在本教程中,将学习如何创建一个将使用您的应用程序部署的报告。
示例应用程序当客户来到银行进行取款或汇款时,该事务通常由银行职员执行。
本教程的示例应用程序是一个用户界面(UI),该界面将接收事务细节信息,并将它们存储到一个Derby 数据库中。
记录的事务细节信息包括事务日期、事务标题、职员编号、事务类型、取款或汇款数量,等等。
分析数据当示例应用程序获取信息并将它们存储到数据库中时,数据处于其最原始的形式,没有能以某种有意义的方式进行查看的可靠组织形式。
您开发的BIRT 将用于分析此数据。
所介绍的每种类型的报告都允许您查看并随后分析数据库中包含的数据。
将BIRT 对象嵌如应用程序一旦已经完成BIRT 报告和示例应用程序,就可以将BIRT 对象嵌入应用程序中。
这将使您——银行管理人员——乐于查看发生在银行中的事务的趋势。
您将获得一些知识,这些知识使您作出向更好趋势更改的决定,并提高银行的生产效率和性能。
Derby:设置在这一节中,将创建并初始化具有BIRT 中要使用的测试数据的Derby 数据库。
您将通过Geronimo 的网络服务器使用Geronimo 中的内置Derby 数据库。
在Geronimo 上部署应用程序时,将使用此数据库,因此使用内置数据库是有一定道理的。
设置用于Derby 的Geronimo因为将在用于BIRT 的Geronimo 中使用内置Derby 数据库,所以需要正确的驱动程序。
有一些 .jars 需要添加到Geronimo 中:IBM DB2 JDBC Universal Drivers。
现在您应该已拥有这两个文件(请参阅前提条件)。
解压缩从IBM 获得的 .zip 文件。
从lib 目录中获得两个 .jar 文件:db2jcc.jar 和db2jar_license_c.jar,并将它们放置在Geronimo 安装的<geronimo-install-dir>/repository/org.apache.derby/jars 目录中。
birt入门文档(自己整理)

Birt 入门文档目录1 BIRT -前言 (1)2 BIRT -简介 (1)3 BIRT -配置安装 (2)3.1 下载 (2)3.2 安装以及汉化 (2)4 BIRT -简例 (2)4.1 创建一张报表 (3)4.2 创建报表数据源和数据集 (5)4.3 构建Table (9)4.3.1 构建明细表 (9)4.3.2设置边框,样式 (10)4.3.3创建报表参数 (11)4.3.4设定颜色标识 (13)4.3.4过滤器使用 (15)5 BIRT -小结和回顾 (16)1 BIRT -前言本文档在简介BIRT这个开源免费的报表开发工具后将引导你设计出简单的报表,如想进一步了解BIRT的使用可参考BIRT在Eclipse中自带的帮助,Help→Help Contents。
2 BIRT -简介BIRT是一个Eclipse-based开放源代码报表系统。
BIRT是Business Intelligence and Reporting Tool的简写,即商业智能与报表工具。
它主要是用在基于Java与J2EE 的Web应用程序上。
BIRT主要由两部分组成:一个是基于Eclipse的报表设计器,另一个是可以加到你应用服务的运行期组件。
BIRT同时也提供一个图形报表制作引擎。
URL: /birt/ 这个网址可以找到BIRT,可以去看看。
使用BIRT可以开发出多样化的报表应用,包含:列表(最简单的报表就是列出数据)、图标(饼图,折线图,柱状图等)、交叉表(通过二维显示数据)、字符和文档、复合报表(多个报表组成)等。
有人总结了许多它的优点。
看一下:•操作界面友好大方;•功能并不逊色与商业报表工具;•CSS提供了强大灵活的样式定义,对于属性CSS的设计人员来说,应该可以设计出相当出色的报表样式;•集成在Eclipse中,不用再开启别的报表开发工具窗口;•BIRE的本地化做的很好,安装以后,可以汉化;•开源免费的报表产品,降低开发成本,一些报表开发工具除了价格昂贵以外,还有用户限制;3 BIRT -配置安装3.1 下载在BIRT官方网站/birt/ 下载。
birt_report基础

Birt基础(report报表简单设计)先下载eclipse的eclipse-reporting-galileo-SR1-win32.zip(制作报表eclipse插件)1、新建一个java project2、在这个project上新建一个report的文件如图:3、创建数据源:(在此用JDBC的数据源,并命名为student)4、创建数据连接,选择Driver Class用jdbc的Driver输入Driver URL、用户名和密码,如果在选择Driver Class时没有jdbc的Driver那点击Manager Drivers把Jdbc的jar包加载进来5、创建Data sets(可以看成是结果集)在JDBC Data Source处先可用的数据源,也就是刚创建的student数据源;选择Data Set Type 结果集的类型,这里就选择了SQL Select Query;输入Data Set Name(结果集的名称)这里输入为student写sql语句使这个结果集是可用的,下图左面显示的是可用的表,在右面输入框内输入相应的sql语句来对应这个结果集点击Finish完成结果集的创建6、现在就可以把这个结果集中的数据按照我们需要的方式显示出来了,点击eclipse窗口左面的Palette选项选择相应控件,有些控件是可以直接接收数据源的如table、Grid……,现在把一个table拖到右面的.rptdesign文件中,拖过来的时候会弹出来下图的对话框,输入columns(字段数)也就是要显示出来的字段,想显示出多少字段就输入几,选择Data Set (选择结果集)在这里就选择刚刚创建的student结果集7、选择左面的Data Explo选项,把要显示出来的选择拖到右面table中的相应位置,如图:点击下面的preview就可以看到相应的结果了:下面的结果显示出来本来是没有边框也不会居中对齐的,要设置相应的样式之后才会这样的,设置样式和css是一样的,选中这个table右击,选择style中的new style只要在里面设置border和text block 就可以了;在本数据库设计中是把sex性别这个值放在数据字典里的,在这里只能显示出1或2,当然要想显示成男或女也是有办法解决的,那就要涉及到子报表功能。
01-Birt工具数据报表开发手册

Birt数据报表开发手册1. 创建模板双击BIRT应用程序以启动Birt报表设计环境,首次启动未加载任何报表开发资源。
主界面如下:根据报表设计的需要,Birt本身提供了一些常规的模板:当然,也可以根据实际需要,添加一些使用频率比较高的模板。
下面将以两张图形,一张列表,且图形在上横向排列的模板为例,创建新模板。
点击文件菜单中的新建,选择新建模板,根据实际情况修改模板名称和存储路径:为此模板添加一些附加属性,如该模板的描述信息和模板布局的预览图像等。
点击完成,开始编辑此模板的布局。
在组件按钮区域依次选取:一个标签,用于放置报表的标题,双击输入标题文本。
也可根据需要动态的文本。
一个网格:用于放置水平的两张图形,因此网格设置为2列1行。
可根据实际情况调整。
一张表:用于放置数据报表,明细数据列设置为8列1行。
可根据实际情况调整。
关于组件的使用,将在后面的章节中具体说明。
用鼠标右击网格中的其中一个空白处,依次选择插入,图表。
在弹出的对话框中选取需要的图形。
同样的方法处理另外网格的另外一个。
有关图形的制作,将在图形报表开发手册中详细说明。
设置每种组件的属性,在OutLine窗口中选中已经拖放的组件,根据需要对其相应的属性进行调整。
如字体大小,颜色,对齐方式,样式等设置完成后,模板样式如下:保存模板的配置信息,以便在以后的报表开发中可以直接读取该模板。
2. 新建共享资源库在Birt的资源管理器中添加一些共享资源,如共享库:在弹出的对话框中输入Library库文件的保存路径和名称:确定后,Library库的创建完成。
如果操作无误,可以在对应的目录下浏览到新建的库。
3. 新建数据源在共享库中新建一个制作报表需要的数据库连接,以Oracle9i数据库连接为例,需要先配置数据驱动(数据库的驱动程序配置方法已经在报表设计器的配置手册文档中体现)。
然后在新建的库中,用鼠标右击数据源,选择新建数据源:在弹出的对话框中选择对应数据源类型,并为该数据源命名:选择正确的数据库驱动和URL后,就可以进行数据库的连接测试:可以根据报表需要,创建一个或者多个数据源的配置:数据源创建完成后,可以通过选择选择资源管理器中共享资源,Library库下新建的数据源,右击鼠标选择添加到报表,将新建数据源添加值报表中供使用。
Birt+报表参数的使用

目录Birt 报表参数的使用 (2)序言 (2)1 标量参数(Scalar parameter) (3)1.1 静态标量参数 (4)1.2 动态标量参数 (6)2 Cascading Parameter (10)3 Parameter Group (19)4 使用parameter实现nested tables (20)4.1 使用JDBC Data Sets (21)4.2 使用Scripted Data Sets (28)报表的beforeFactory方法 (29)CustomerSet的open方法 (31)CustomerSet的fetch方法 (32)OrderSet的open方法 (32)OrderSet的fetch方法 (33)5 源代码级的参数使用 (34)6 结束语 (40)Birt 报表参数的使用Birt 是一款非常流行的开源报表开发工具。
本文总结了 Birt 报表中参数机制,并结合实例详细地阐述了参数的各种使用方法,最后介绍了 Birt 报表的源代码级使用。
以期为 Birt 报表使用者提供一个有益的参考。
序言参数是 birt 提供的一种很重要的机制,在 birt 中,参数具有变量的作用,它为 birt 报表的生成提供了一种灵活强大的机制。
本文基于 Birt 2.1.2 讲述 Birt 报表中一些重要的用法以及 birt 源码级的参数使用机理,为报表开发者以及报表应用程序开发者提供一个参考。
本文的示例是基于 Birt RCP designer 2.1.2 开发的,在阅读本文前,最好有 eclipse 相关经验,并且已经能够使用 Birt 插件制作一些简单报表,并了解 Birt 报表的一些基本概念,比如 Data Source(数据源),Data Set(数据集)等。
基本报表制作过程可见developerworks 相关文章"BIRT:基于 Eclipse 的报表"。
Birt报表的开发使用手册

Birt 使用说明合适版本:2.1.3目录一、前言 1二、相关软件 11.1、BIRT 21.2、EMF和GEF 3三、Birt的安装和配置 3四、使用说明 54.1、创建项目 54.2、创建第一个报表 74.2.1、创建一个空白报表 74.2.2、设置数据集参数 94.2.3、设计报表 144.3、报表中的参数 264.3.1、静态标量参数 274.3.2、动态标量参数 294.3.3、动态组合参数 31五、应用系统的结合 31六、BIRT的学习资料和缺点 456.1、学习资料 456.2、缺点 45一、前言公司的一个Java语言的B/S架构项目中需要实现大量的文字报表和图像报表的功能,以前使用CSS、JS和JfreeChart等技术,只能实现简单的报表,很难达到现在需求,于是我研究了几个开源免费的报表工具,通过网上的评价,发现了Birt有以下几点优点:1、开发方便,Birt是Eclipse的一个插件可以很好的集成在Eclipse中,图形编辑框架下可以在几分钟之内做出一个报表。
2、可以很方便地在一个报表中混合展现概要数据和详细数据。
3、操作界面友好大方。
4、提供了强大灵活的样式定义,对于熟悉CSS的设计人员来说,应该可以设计出相当出色的报表样式。
5、集成在Eclipse中,不用再开启别报表开发工具窗口,对于习惯于Eclipse开发的程序员来说这点非常重要。
6、Birt的本地化做的很好,安装以后操作界面就是中文的(这点我在使用过程中没有充分体现,我使用了Birt的中文语言包)。
7、开源的报表产品,有源代码,可以进行深层的定制开发。
8、生成的报表完全是XML格式,扩展性好。
9、容易和应用系统结合。
10、最重要一点是开源免费的(我穷啊)。
根据这几个优点,我决定研究Birt,通过几天查找资料和自己的摸索,心中总算有些小的体会。
由于习惯与Eclipse3.2版本,所以我使用了2.1.3版本的Birt,现在最新版本已经是2.3以上版本了,就是这个原因网上很多资料都不是很适合这个版本,所以我走了很多弯路,希望看到此文档的人能比我少走弯路,这也是我写这个文档的原因之一。
Eclipse Birt报表指南

-简介BIRT是一个Eclipse-based开放源代码报表系统。
它主要是用在基于Java与J2EE的Web 应用程序上。
BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。
BIRT同时也提供一个图形报表制作引擎。
URL: /birt/前言这个指南将引导你设计一个简单的报表,令你对BIRT报表系统有个感性的认识,如果想进一步了解BIRT的使用可以参考 BIRT在Eclipse中自带的帮助,Select Help→Help Contents from the Eclipse menu and then click on the BIRT Developer Guide.如图个人体验操作界面友好大方,小图标都很漂亮:);功能并不逊色与商业报表工具;∙CSS提供了强大灵活的样式定义,对于属性CSS的设计人员来说,应该可以设计出相当出色的报表样式;∙集成在Eclipse中,不用再开启别报表开发工具窗口;∙BIRE的本地化做的很好,安装以后操作界面就是中文的;∙开源的报表产品,降低开发成本,一些报表开发工具除了价格昂贵以外,还有用户限制;BIRT 安装指南安装方式一下载一个BIRT All-in-one版本的 Eclipse,包含了运行BIRT系统所需的组件,最方便了(如果是将报表工具培训一下让非开发人员参与定制话可以这样做:))URL:birt-report-designer-all-in-one-2_1_1.zip安装方式二假设你已经知道如何安装Eclispe插件(建议采用Link的方式安装插件,不至于全部一股脑的将各种插件都解压到Eclipse的目录中去)运行BIRT报表系统需要以下软件或插件∙Java 1.4.2/1.5 JDK/JRE∙Eclipse-SDK-3.1.2-win32及以上版本∙Graphics Editor Framework (GEF) runtime∙Eclipse Modeling Framework (EMF) runtime∙BIRT∙iText 1.3 - 复制 itext-1.3.jar 文件到plugins/org.eclipse.birt.report.engine.emitter.pdf_version/lib 目录.∙prototype.js v1.4.0 - 复制prototype.js 文件到plugins/org.eclipse.birt.report.viewer_version/birt/ajax/lib 目录其他∙BIRT提供的一个Flash格式的安装演示,也可以照着这个演示来安装:)∙BIRT 网站提供的安装指南∙运行报表(tomcat/weblogic/jboss)使用入门1.环境●报表设计器:可以到/birt/downloads/下载最新版本,当前的最新版是birt-rcp-report-designer-2_1_1。
Birt报表开发

图1-1 BIRT设计器图1-2 BIRT运行时环境说明图1-3 BIRT报表引擎图1-4 BIRT运行时环境BIRT 设计器和设计引擎可以设计以下的报表:列表-列表是最简单的报表。
当列表变长时,你可以把相关数据增加到同一分组(基于客户的订单分组,基于供应商的产品分组),如果数据是数字类型的,你可以轻松的添加到“总数”、“平均”、或其他汇总中。
列表的产生和显示都可以定制,进行过滤,突出显示,排序,分组同样可以过滤,突出显示和排序。
图表-图表能够帮助数字型的表格形象化的理解。
BIRT 提供饼状、线状以及柱状图标等。
交叉表-交叉表(也叫做十字表格或矩阵)用两种维度展示数据:sales per quarter or hits per web page。
信函和文档-通知、信件、以及其他文本文档都很容易通过BIRT 方便建立。
文档包括正文、格式、列表、图表等。
混合报表-很多报表需要联合以上所有的报表构成单一文档。
例如,一份客户声明会列出客户所需要的信息,为当前促销(promotions)提供文本,以及提供并行的出帐和入帐列表。
一份财务报表将包括声明、图表、表格,所有这些都可以进行全方位的格式化,来匹配共有的配色方案。
Birt有以下几点优点:1、开发方便,BIRT是Eclipse的一个插件可以很好的集成在Eclipse中,图形编辑框架下可以在几分钟之内做出一个报表,操作界面友好大方,MyEclipse近期的版本(8.0以上)本身包含BIRT特性。
2、可以很方便地在一个报表中混合展现概要数据和详细数据。
3、提供了强大灵活的样式定义,对于熟悉CSS的设计人员来说,应该可以设计出相当出色的报表样式。
4、Birt提供很好的国际化支持,支持中文本地化。
图1-5 birt-report-designer-all-in-one下载官网安装方式二:单独下载birt-report-designer所需要的eclipse平台和插件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
birt报表初级教程之嵌套报表
嵌套报表
嵌套报表其实是一种设计技巧的应用,类似编码过程中的模块化设计。
当报表的复杂程度让设计者开始觉得逻辑混乱的时候,可以使用嵌套报表设计方法,将报表拆分为多个不同的设计页面,然后使用一个总的页面将这些设计页面整合起来展现。
此外,嵌套报表有时候也会用于主从结构的实现,通过逐层嵌套,可以实现无限层次的主从结构数据展现。
本例,我们将每个客户的信息包括客户表中基本的信息以及他们的订单信息,在同一张表中按客户一一列出来,所使用的就是嵌套报表。
报表名我们定为:nestingTab.rptdesign
构建数据源
本例我们使用BIRT自带的数据源,在新建数据源选择数据源类型为默认的第一项:Classic Model Inc,Sample Database
数据库驱动类别;org.eclipse.birt.report.data.oda.sampledb.Driver(Classic
Models Inc.SampleDB Driver);URL:jdbc:classicmodels:sampledb
构建数据集
本例我们需要建立2个数据集:
1.建立数据集payments,所用SQL语句:(这里我们加入条件选择订单大于150000)
select CUSTOMERNUMBER,sum(AMOUNT)amount
from CLASSICMODELS.PAYMENTS
group by CUSTOMERNUMBER
having sum(AMOUNT)>150000
order by amount desc
2.建立数据集customers:所用SQL语句:
select*
from CLASSICMODELS.CUSTOMERS where
CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER=?
输入SQL语句后,还要在数据集编辑窗口选择Parameters选项。
双击默认参数Pram1或者选择“Edit”,弹出如下窗口:
输入:Name:CustID;
Default Value:103;
其它默认完成后,在Preview Result选项中就可看见结果预览:
布局嵌套报表
1.同上例,先在布局编辑器中建立一个1列2行的Grid。
2.从选用板“Palette”视图中拖拽一个2行2列“Table”至第二行的网格中;
3.选中Table的第一个“Detail Row”行,右键点击后选择“Merge Cells”
将本行两列合并为一列。
本行用来显示主表的信息
4.从选用板“Palette”视图中拖拽一个“Table”的至第二个“Detail Row”
行中的第一格中,设定其为2列4行。
完成后将这个刚插入的子表的“Header Row”和“Footer Row”删除掉。
5.向主表的第二个“Detail Row”行的第二格进行与上一步同样的操作,插入一个相同的子表。
第4、5两步所加的两个子表其实是用来加入客户信息的,所用到到的数据都是customers数据集里的数据,这里用两个表来进行展现完全是为了整体布局的美观。
布局配置完毕,布局编辑器中会呈现如下图:
将Table绑定数据集
1.将Table绑定数据集:在布局编辑器中选中主表Table,下方出现Table的属性编辑器Property Edit,选中标题栏的Binding栏,从Dat Set中选择payments数据集。
弹出窗口选择“Yes”即可。
点击“Ok”完成。
2.设定排序:接着在Property Edit编辑器中选中“Sorting”栏,点击“Add”添加排序变量,从弹出窗口的下拉菜单中选择“CUSTOMERNUMBER”,即按照编号排序,排序方法选择“Ascending”(升序)。
点击“OK”完成。
(读者根据实际情况的需要可以通过同样的方法选择按照不同的变量来进行排序)
设定主表数据
1.加入网格:从选用板“Palette”视图中拖拽一个Grid至主表Table的第一行“Detail Row”中,设定其为4列1行。
2.插入数据:
展开选择数据资源管理器“Data Explorer”,将数据集payment中“CUSTOMERNUMBER”与“AMOUNT”两个数据项分别拖拽至我们刚插入的Grid的第2格与第4格中。
并将其格式都设定为居左。
3.加入数据标题Lable 从选用板“Palette”视图中拖拽Lable至Grid的第1格与第3格中,分别输入“客户号:”与“金额:”,并将其格式都设定为居右设定好之后,视图如下:
设定子表数据
1.设定参数绑定:在布局编辑器中选中子表Table,下方出现Table的特定编辑器Property Edit,选中标题栏的Binding栏,在“”点击按钮“Dataset Parameter Binding”,进入后双击默认的变量进入进行设置,点击“Value”标签后的函数符号“”,进入如下界面:
如图依次选择需要插入的数据,在第三个框中,双击“CUSTOMERNUMBER”进行插入。
依次点击“OK”,完成
对另外一个子表也需进行如上操作。
2.插入数据展开选择数据资源管理器“Data Explorer”,将数据集customers中的“CUSTOMERNAM”、“CITY”、“PHONE”、“ADDRESSLINE1”
拖拽至第一个子表Table的第二列中,将第一列的各个单元格同样拖拽进去一个“Text”,分别输入子项标题“客户名”、“城市”、“电话”、“住址”。
然后将数据集customers中的“POSTALCODE”、“ADDRESSLINE2”、“SALESREPEMPLOYEENUMBER”、“CREDITLIMIT”拖拽至第二个子表Table的第二列中,将第一列的各个单元格同样拖拽进去一个“Text”,分别输入子项标题“邮编”、“所在住所”、“雇员号”、“余额”
这样整个嵌套报表的数据配置已经完毕,如果配置正确,布局将会如下:
结果预览:
同为比较常用的报表工具,FineReport对嵌套报表的解决方案和实现方法与BIRT有所不同,在FineReport中,嵌套报表被称为主子报表,以嵌入式主子报表为例,讲述FineReport中嵌套报表的具体实现思路,供BIRT使用者借鉴,如下:
1.描述
嵌入式主子报表特点是在单元格中嵌入独立的报表模板,嵌入的模板称为子报表,嵌入子报表后的整体称为主报表。
各子报表间格式可以不对齐,子表与主表的格式也可以不对齐,子报表能够获取主表中的值。
如下图员工销售一览表:
2.示例
2.1制作主报表
如下图设计主表:
∙添加参数
在主表中定义一个报表参数,参数名为销售员,通过参数查询某一个销售员的个人信息及订单信息。
使用默认的参数界面,销售员参数控件选择下拉框,实际值为雇员表中的雇员ID,显示值为对应的姓名。
具体可查看参数定义与参数面板制作章节。
2.2添加不同参数的子报表
∙子报表sub_1.cpt说明
子报表1:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Ma sterReport\sub_1.cpt。
该子表中通过参数“ID”查询出对应销售员的个人信息。
SQL语句为:SELECT *FROM雇员where雇员ID=${ID},表样为:
∙在主表中插入子表1
右击主表B3单元格,单元格元素>插入子报表,弹出编辑子报表对话框,选择子表1所在路径;
添加参数ID(子表中的参数名称),值使用公式$销售员,将主表的销售员参数值传递给子表1的ID参数,如下图设置:
2.3添加相同参数的子报表
∙子报表sub_2.cpt说明
子报表2:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Ma sterReport\sub_2.cpt。
该子表中通过参数“销售员”查询出对应销售员的订单信息。
SQL语句为:SELECT*FROM订单where雇员ID=${销售员},表样为:
在主表中插入子表2
右击主报表D5单元格,单元格元素>插入子报表,弹出编辑子报表对话框,选择子表2所在路径;
由于子表2的参数名与主表中的参数名相同,这时可以不设置传递参数,直接选择继承报表的参数。
3.保存与预览
保存模板,点击设计器中的分页预览,效果如上。