Birt_报表参数的使用配置说明

Birt_报表参数的使用配置说明
Birt_报表参数的使用配置说明

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 自带的 Sample 数据源,用到的数据基于图 1 所示的实体关系模型。从这个模型中可以看出,文中示例用到三张数据库表分别为 customers,orders 和 orderdetails。其中 customers 表的customernumber 字段作为外键出现在 orders 表中,而 orders 表的 ordernumber 字段做为外键出现在orderdetails 表中。

图 1. 实体关系模型

1 标量参数(Scalar parameter)

在使用 BIRT 参数的时候,首先要了解 BIRT 分为报表参数和数据集参数。报表参数定义于整个报表内,而数据集参数定义于某个数据集(Data Set)中。数据集参数使用的时候通常需要链接到某个报表参数或者利用绑定表(binding tab)和一个嵌套表中的某个数据元素绑定。

标量参数是Birt报表中最简单也是最基本的一类参数,标量参数可以分为静态和动态两种,其中静态参数从用户界面获得用户输入的数据值,而动态参数则可以关联至某一个数据集,因此可以获得一个数据的集合,供用户选择。下面分别介绍这两种参数。

1.1 静态标量参数

右键点击Outline面板中的Report parameter选项,在弹出的上下文菜单中点击“New parameter”,弹出图2所示编辑参数对话框,在name域输入参数的名字,本例中使用的参数名字为“customernum”,此时List of value项默认为static。点击OK后返回到开发主界面。

图 2. 编辑参数

接下来定义Data Set。Data Set定义的对话框如图3所示。在这个对话框中首先定义“Query”。我们可以看出Where条件中的customernumber字段通过”?”代表的参数传入参数值。

图 3. 数据集中的“查询”定义

点击”Parameter”,弹出在数据集中定义参数的对话框。数据集中的参数需要链接至某一个报表参数。在本例中将数据集参数链接至前面定义的报表参数customernum。点击OK,我们就完成了数据集中参数的定义。当报表运行时,Birt会使用由报表参数customernum传入的值填充where条件,生成结果数据集。如图4

所示。

图 4. 数据集中的“参数”定义

1.2 动态标量参数

动态参数可以提供一个数据值的列表供用户选择,这种功能能够极大增强报表设计用户界面的交互性。

在本例中,我们首先定义一个数据集,这个数据集不使用参数,它从订单表中查询出所有的订单号,为报表参数提供一个数据值的列表。如图5所示。

图 5. 数据集“ordernum”

接下来,我们定义报表参数,这个参数链接至前面的ordernum,因此可以根据数据集中的参数ordernum动态的获得可选值。如图6所示。

图 6. 报表参数“ordernumpara”

如图中所示参数的display type选成Como Box,List of value选择为Dynamic,其链接至的Data Set选择为前面定义的ordernum数据集,同时选定Select value column为数据集ordernum中的某个字段,这里ordernum数据集只有一个字段,故选择为ordernumber。这样就将报表参数和数据集参数关联起来。但这不是我们的最终目的,我们的目的是以报表参数ordernumpara为中介,向另一个数据集提供参数。因此,我们定义图7所示的数据集。

图 7. 数据集“ordersdetail”

点击“Parameter”项,进入数据集参数定义界面,如图8所示。

图 8. 将数据集内的参数连接至报表参数“ordernumpara”

将本数据集的参数num链接至ordernumpara,就完成藉由一个报表参数为中介将一个数据集的字段值链接到另一个数据集的参数的功能。

2 Cascading Parameter

除了使用动态报表参数提供数据值的选择列表,报表开发过程中用户经常需要用到互相关联的参数。比如要选择某个客户的某个订单号标识的所有订单的内容,用户并不愿意列出所有可能的订单号,比较理想的情况是给出一个客户编号的选择列表,根据这个列表的内容再给出每个客户的所有订单号的列表,这样用户就可以选择相应的客户对应的某个订单号,从而查询出此客户的这个订单号标识的所有订单的详细内容。Cascading parameter 一方面增强了报表逻辑的功能;另一方面,通过将一部分应用逻辑转移到界面操作上,进一步降低了报表内部逻辑和SQL查询语句的复杂性。

首先定义一个customer数据集,这个数据集包含customernumber和customername两个字段。如图9所示。

图 9. 数据集“customer”

接着定义一个名字为orders的数据集,如图10所示。

图 10. 数据集“orders”

在“Orders”数据集中使用一个数据集参数,这个数据集参数将要引用接下来将要定义的层叠参数中customer参数。定义了以上数据集之后,我们就可以来定义层叠参数了。

右键点击Outline面板中的Report parameter选项,在弹出的上下文菜单中点击“New Cascading Parameter”,弹出以下对话框,在Cascading Parameter name域输入参数的名字,本例中使用的参数名字为“custorder”,Data Set Model选择为Multi Data Set。在紧接着的Parameters表中定义一个名为customer的参数,并将其关联至customer这个数据集,其取值为customer数据集中的 customernumber字段,这样customer这个层叠参数的取值就是一个customernumber的列表。 Customer此时也成为一个动态参数。如图11所示。

图 11. 层叠参数定义1

完成customer的定义后,我们紧接着定义另一参数order,方法和定义customer相同,最后order参数和数据集orders关联,其取值为orders数据集中的ordernumber字段。由于数据集orders的局部参数需要和前面定义的customer参数关联后才能产生数据结果集合,因此,在下一步将数据集orders与参数 customer 完成关联后,order这个层叠参数也将成为一个动态参数,它也成为一个数据值的选择列表,这个列表的值是由某个 customernumber决定的所有可能的订单号。如图12所示。

图 12. 层叠参数定义2

接下来将orders数据集中的参数param1关联至层叠参数customer,如图13所示。

图 13. 关联数据集“orders”中的参数至层叠参数“Customer”

最后,定义生成报表的数据集orderdetail,如图14所示。

图 14. 数据集“orderdetail”

然后将其局部参数param1关联至层叠参数order,如图15所示。这样我们就完成了具有Cascading parameter 功能的数据集的定义。

图 15. 关联数据集“Orderdetail”中的参数至层叠参数“Order”

从主开发界面中将orderdetail数据集拖拽到主开发面板上就完成了这个简单的报表的制作。见图16

图 16. 层叠定义完成后的主开发界面

点击preview,会弹出如图17所示对话框。从这个对话框中我们可以看到层叠参数customer的数据是customers数据库表中的所有客户,选定一个客户后,层叠参数order的列表将只出现客户TechnicsStoreInc 的所有订单,选择其中一个订单后,就会从orderdetail数据表中选出这个订单号标识的所有订单的详细内容。

图 17. 层叠参数用户界面

3 Parameter Group

在某些情况下,在创建报表的时候需要提供大量的参数,为了在界面上更加有效地对这些参数进行组织,BIRT 提供了parameter group的功能。用户可以使用parameter group将相关的parameter组织在一起。

Parameter group的使用比较简单。首先需要创建一个parameter group。在outline视图中用鼠标右键点击report parameters标签并选择new parameter group。创建完parameter group后便可以为其创建parameter。为一个parameter group创建parameter有两种方式。一种方式是用鼠标右键点击parameter group标签并选择new parameter创建新的parameter;另一种方式是将已有的parameter添加入parameter group,只需要使用鼠标将所需要的parameter拖拽入parameter group中。如图18所示是parameter group 的一个例子。

图 18. Parameter Group示例

4 使用parameter实现nested tables

前面的例子展示了如何将BIRT中的report parameter与data set parameter进行binding。作为BIRT parameter的另一个例子,我们下面通过介绍data set parameter与data colummn的binding实现nested tables。本节将通过JDBC Dataset和Scripted Dataset分别介绍实现过程。

Nested table主要用于存在外键关联的两个或几个表。比如customer与order是1:N的关系,order表中存在外键custmernumber。有些时候,我们要将customer与相应order的信息一起进行展现,这时就需要使用nested table。

4.1 使用JDBC Data Sets

首先,在Birt数据源的基础上创建两个数据集CustomerSet(OuterSet)和OrderSet(InnerSet)。

CustomerSet用于获取所有Customer的信息,在layout视图下右键点击“Data Explorer”中的“Data Sets”图标并选择“New Data Set”,选择数据源并填写Data Set名称为CustomerSet;然后点击next填写数据源的query语句。 OrderSet用于获取指定Customer的Order信息,与CustomerSet的创建过程类似。由于OrderSet作为内嵌表,需要关联参数CumtomerNumber,因此需要在创建OrderSet的时对查询语句提供where 子句“where CLASSICMODELS.ORDERS.CUSTOMERNUMBER=?”。 CustomerSet和OrderSet的创建过程如图19,20所示。

图 19. 数据集CustomerSet

图 20. 数据集OrderSet

然后为其创建相应的dataset parameter,在“Data Explorer中”双击OrderSet,创建一个dataset parameter 名称为CNo,设定其DataType为integer,DefaultValue为任意整数,如图21所示。

图 21. 数据集参数Cno

在创建好数据集的基础上,我们就可以在报表界面上面创建nested table了。首先创建显示一个customer 信息的外层OurterTable,编辑OuterTable的Data Binding并设置与其绑定的DataSet为CustomerSet,然后在OuterTable中并添加需要显示的字段信息并为nested table预留一个空白列。如图22所示。

图 22. 外层表示意图及数据集绑定

下一步在OuterTable中空白列的detail行中创建显示order信息的InnerTable,设置与其绑定的DataSet 为 OrderSet,并添加需要显示的字段,如图23所示。最后为InnerTable创建DataSet parameter binding,在InnerTable的Data Binding对话框中点击“Dataset Parameter Binding”按钮,设置参数CNo的value 是row[“CUSTOMERNUMBER”],如图24所示。

图 23. 内嵌表

【精编推荐】birt动态分组报表制作

【精编推荐】birt动态分组报表制作

1 BIRT报表开发环境准备 3 1.1 BIRT报表开发准备 3 1.2 建立Web Project 3 1.3 配置交叉报表数据源 6 1.3.1 建立公共资源的文件夹 6 1.3.2 建立公共资源Library 7 2 动态分组交叉报表11 2.1 建立报表文件夹11 2.2 建立报表文件12 2.3 复用报表数据源13 2.4 配置交叉报表结果集14 2.5 配置交叉报表分组字段17 2.5.1 新建Data Cuber 17 2.5.2 新建Groups 18 2.6 配置交叉报表求和字段19 2.7 交叉报表表样制作20 2.7.1 新建Cross Tab 20 2.7.2 完成报表表样制作21 2.8 报表分页实现21 2.9 预览交叉报表21 3 部署交叉报表22 4 运行交叉报表22

1BIRT报表开发环境准备 1.1 BIRT报表开发准备 (1)、Ecplise:这里我使用的是Eclipse Platform Version: 3.6.2。 (2)、BIRT插件:可以通过Ecplise中的Install New Software 添加Birt插件。插件地址:https://www.360docs.net/doc/bb10594279.html,//birt/update-site/2.6/ (3)、Tomcat:这里我使用的是apache-tomcat-6.0.16 1.2 建立Web Project (1)、新建Web Project 为了体现BIRT与实际应用项目相结合的特点,首先建立一个Web Project,工程命名为myReport。

birt报表技巧

Birt中的分页显示报表: 方法如下: 1、将鼠标停在表格上,选择明细数据行(Row Detail) 。 2、选择脚本(script)标签,在onPrepare方法中加入: count=0; 在onCreate方法中加入: count++; if(count % 10==0) { this.getStyle().pageBreakAfter="always"; } 然后放到服务器上运行,则实现分页显示。 Birt中报表参数的用法(一) Birt中有两种参数,一种是数据集参数,一种是报表参数。数据集参数一般是用于select语句中的?所代表的参数的。而报表参数一直则是整个报表的参数,定义它的目的一方面是和数据集参数绑定,一方面是在脚本中使用它。例如:我想设计一个报表,通过参数传递一个数据库中的表名,显示相应表中的数据,所有的表的结构一样!做法如下: 先定义数据源;然后定义数据集,查询选项中的语句写select * from [要传入的表名中的任意一个];然后定义一个报表参数table,设置一个默认值(默认表名);然后再数据集的脚本的beforeOpen方法中加入:this.queryText="select * from "+params["table"]; ;完成。 如何在Tomcat中配置使得能显示Birt Chart报表: 今天看了一本关于Birt方面的书,提到了在Tomcat中成功部署Birt的方法。我试了一下,果然可以,即可访问普通报表,又可访问chart报表,而且方法也比较简单。现介绍如下: 1、从网上下载birt-runtime-version.zip并解压 (https://www.360docs.net/doc/bb10594279.html,/birt/downloads/build.php?build=R-R1-2_1_3-200707051847)。 2、将解压后根目录中的WebViewerExample文件加复制到Tomcat根目录下的webapps 下面,并更名为birt_viewer2.2(因为我下的是2.2版本) 3、复制第三方软件:iText.jar(复制到 birt_viewer2.2\WEB-INF\platform\plugins\com.lowagie.itext_1.5.2.v20070626\lib 下)

birt报表修改表格宽度的学习总结

修改birt报表的表格宽度的学习总结 一、原因 Birt做的报表表格宽度是根据表格里面的内容自动显示宽度,每列的宽度是与表头(header的label)或者表body(detail的data)里面内容最多的一格的宽度一致,有时候表头里面文字很长,但是该表头的那一列表body里面的内容却很少,就照成了除表头以外,body下面每一格特别的空,这样的列若是比较多的话表格就很不好看,而且浪费空间,以我碰到的问题为例,如图: 这个报表分为两部分,前一部分是直接用报表设计器设计的,表头是居顶的,后一部分是用代码加上去的,表头居中,而且他的内容全是数字,相对来说比较少,感觉空的地方很多,看上去不美观。 二、试着调试 由于网上资料比较少,我自己调试时都是自己摸索的,可能有些地方不是很简洁,但是效果还是出来了。 (1)、首先调整直接用报表设计器设计的报表,可以有两种方法调试, 1.第一种是手工代码调试:xml resource 先调整表头,所以在

下面的你想设计宽高的那一列下面,添加属性,根据里面的内容设计宽和高,这里我设计的是宽1.5cm,高0.7cm,注意是在label下面添加设置语句,: 0.7cm 1.5cm

如图:

点击table,然后选中你想要调整的那一行或者那一列,打开属性编辑器(birt 高级版本可以右击哪一行或者列直接打开,低版本的需要点击eclipse左下角的 下面的属性版本 ) 想要修改那一行或者列的宽或者高时,先以调整列宽为例,选中一列,在属 里面, 调整行高度跟列宽度类似,这里就不写出来了。 (2)调整由代码插入进来的行宽列高 这个就比较简单,在插入列以及header下直接写代码 MyLable.setWidth(“1.5”); myLabel.setHeight("0.7cm"); myDataItem2.setHeight("0.3cm"); myDataItem2.setWidth("1.5cm");

birt教程之多层交叉汇总报表

birt教程之多层交叉汇总报表 1.1多层交叉汇总报表 1.1.1加入汇总 1.在3.8所建立的报表MultilayerCrosstab.rptdesign基础上,点击布局编辑器中Cross Tab左下角的“Cross Tab”图标选中本交叉表。在Property Editor属性编辑器中选择“Row Area”,(可参考图3-11)。 2.在左边的选项栏中选择第一个选项“Sub Totals”,点击编辑器右边的“Add”按钮,弹出加入次级汇总(本例即根据客户类型进行汇总)的窗口: 全部选择默认数据:点击“OK”完成创建。 3.在左边的选项栏中选择第二个选项“Grand Totals”,点击编辑器右边的“Add”按钮,弹出窗口加入行汇总,同样,数据全选默认。点击“OK”完成创建。4.在属性编辑器Property Editor视图中选择“Column Area”,同样在左边的选项栏中选择第二个选项“Grand Totals”,点击编辑器右边的“Add”按钮,弹出窗口加入列汇总,同样,数据全选默认。点击“OK”完成创建。 创建完毕后,布局编辑器如下图:

1.1.2格式化与预览 格式化后如下图: 预览结果如下:

同为比较常用的报表工具,FineReport对多层交叉汇总报表的解决方案和实现方法与BIRT有所不同,在finereport交叉汇总是利用层次坐标实现的,以一个简单示例为例,解释具体实现思路和步骤,供BIRT使用者借鉴: 1.问题描述 逐层累计与跨层累计都是纵方向上的累计,也可以横向进行累计,如下图各个销售员每个月订单金额的累计:

2.示例 2.1新建报表,设计表样 新建工作薄,添加数据集,SQL语句为select雇员ID,strftime('%m',订购日期)as月份,应付金额from订单where strftime('%Y',订购日期)= '2011',查询出2011年每个雇员,每月订单金额。 如下制作一张交叉表: 数据列设置如下: 单元格数据 集 数据列属性

Eclipse BIRT 简单报表开发

Eclipse BIRT 简单报表开发 帮助文档: https://www.360docs.net/doc/bb10594279.html,/documentation/BIRT_231/wwhelp/wwhimpl/js/html/wwhelp.htm 1新建报表: 1.1运行向导建立工程,如下图: 1.2选择新建的工程,如下图:

1.3建立报表文件,如下图

这里选中Report templates:Blank Report

已经完成建立报表文件。 2连接数据库 2.1建立Data Source 这里我们会连接SQL Server 2005的示例数据库:AdventureWorks ●请确认已经安装这个示例数据库 ●请确认Sql server 2005已经打开TCP/IP连接,如下图: 打开建立Data Source向导,如下图:

这里要注意如果刚安装的Eclipse BIRT是没有(如下图): Com.microsoft.sqlserver.jdbc.SQLServerDriver (v1.2) 下载地址: https://www.360docs.net/doc/bb10594279.html,/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF36 90EF/sqljdbc_1.2.2323.101_enu.exe 安装方法: ●把文件解压 ●Manage Drivers ●Add-> 选中解压出来的文件:sqljdbc.jar ●添加成功 连接串:jdbc:sqlserver://localhost:1433;databasename=AdventureWorks

birt报表使用简要说明

Birt报表使用指南 1Birt的安装方法 把birt整合到了Myeclipse6.5中,(eclipse的官方网站上提供有一个birt-report-designer-all-in-one-2_2_2.zip,你直接解压缩这个就可以了,就免去了birt与Myeclipse6.5的整合)。 如果要把birt安装到Myeclipse6.5中,要注意一些事情 1.1eclipse的版本 就是说你的eclipse版本要和适当的birt版本配合,当前birt的最新稳定版是birt2.3。 如果使用的是eclipse3.3版本,你应该用birt-report-framework-2_2_2.zip,如果使用的是eclipse3.4,你应该用birt-report-framework-2_3_0.zip版本不一致会出一些问题。 1.2在Myeclipse6.5中装birt。 MyEclipse6.5自带的是eclipse3.3,所以只能下载birt-report-framework-2_2_2.zip (下载地址:https://www.360docs.net/doc/bb10594279.html,/birt/downloads/index2.2.2.php) 而birt-report-framework-2_3_0.zip是针对eclipse3.4的。 把下载下来的birt-report-framework-2_2_2.zip包解压,解压后的features文件夹下的所有文件拷贝到MyEclipse6.5安装目录下的..\myeclipse\eclipse\features 下,解压后的plugins文件夹下的所有文件拷贝到..\myeclipse\eclipse\plugins下。 重新启动MyEclipse就好了。

Birt使用经验谈3

Birt使用经验谈 Chart图 Michael 2006-04-11 Jiabiao011@https://www.360docs.net/doc/bb10594279.html, 前段时间都是写的都是关于一般报表的,在一些网上朋友的要求下,本文档就介绍一下关于chart图吧。这段时间也比较忙,也没时间去深入。在这里也只是简单的介绍一下chart的设计步骤。 1.环境:在第一篇文档中已经描述了,在此就不用多说了。 2.chart报表的简单例子 步骤如下: ●新建一个空白报表,名为:chart_sample.rptdesign ●新建一个(jdbc)数据源. ●新建一个数据集,sql脚本如下:(SELECT SUM(se.AMOUNT) AS AMOUNT ,DATE_FORMAT(se.OPER_DATE, '%Y-%m') as OPER_DATE,se.IN_OR_OUT as TYPE FROM mms_storage_entry se,mms_storage s WHERE s.ID = se.STORAGE_ID AND se.IN_OR_OUT='2'AND DATE_FORMAT(se.OPER_DATE, '%Y-%m')>=DATE_FORMAT('2005-01-01', '%Y-%m')GROUP BY DATE_FORMAT(se.OPER_DATE, '%Y-%m'))UNION(SELECT SUM(se.AMOUNT) AS AMOUNT ,DATE_FORMAT(se.OPER_DATE, '%Y-%m') as OPER_DATE,se.IN_OR_OUT as TYPE FROM mms_storage_entry se,mms_storage s WHERE s.ID = se.STORAGE_ID AND se.IN_OR_OUT='1'AND DATE_FORMAT(se.OPER_DATE, '%Y-%m')>=DATE_FORMAT('2005-01-01', '%Y-%m')GROUP BY DATE_FORMAT(se.OPER_DATE, '%Y-%m')) 这个脚本是我在一个项目中用的,改了一些数据,就载过来用了:)。 点击左树下的”计算列”,输入列名称\数据类型及表达式,表达式如: var type; if(row["TYPE"]=='1'){ type='入库'; } else { type='出库'; } 这样才能看到如下图中的出库和入库,当然也可以不用设置计算列.

BIRT详细开发手册

BIRT详细开发手册

目录 1BIRT开发环境 (3) 1.1新建Project (3) 1.2新建Report (4) 1.3调整工作窗口 (5) 2BIRT报表开发 (6) 2.1新建数据源(Data Sources) (6) 2.2新建数据集(Data Set) (7) 2.3BIRT报表条件 (10) 2.3.1一般条件 (10) 2.3.2日期条件 (11) 2.3.3条件脚本 (11) 2.4BIRT表格 (13) 2.4.1Insert table (13) 2.4.2设置报表表头 (14) 2.4.3表头样式 (14) 2.4.4表格网络线 (15) 2.5绑定数据集 (15) 2.6表格数据添加分组(分组可以不用设根据需求添加) (16) 2.7报表标题(Master Page) (19) 2.8固定布局与自由布局 (20) 2.9报表预览 (21) 2.10数据操作 (23) 2.10.1列求和 (23) 2.10.2数据格式 (26) 3图表制作 (26) 3.1饼状图 (26) 3.2折线图 (32) 3.3柱状图 (38) 3.4图表效果展示 (42)

此文档为本人结合网上资料与本人BIRT开发经验整理的BIRT详细的开发手册,适用于初学者快速掌握BIRT开发。 1BIRT开发环境 BIRT开发环境是带有BIRT插件的eclipse 1.1新建Project 菜单栏file→new→other选择report project→nex,然后给project取名,完成后点击finish即可完成新建project

新建完成后的project 1.2新建Report 在新建的项目上右键new→orher , Report→next, file name为报表名称是以”. rptdesign”为结尾的文件,点击finsh即可完成新建Report.

BIRT报表参数详解

在使用birt报表的时候感觉页面的BIRT Report Viewer头标题没有用,想去掉在网上一查原来有详细的参数设置,看来birt的功能还是很强大啊。现在转帖如下: BIRT作为一款功能强大的开源报表工具,其版本的升级更新速度也非常快,从1.0到2.0,一直到最新的2.2.1版本,无论从功能上还是性能上都得到了极大的提高和扩充。BIRT也提供了一个标准的J2EE实现组件,可以发布到支持J2EE应用的web server服务器上,可以对生成的报表进行预览等操作。在大家使用BIRT Viewer的时候,可能会对它日益纷繁的参数设置如云里雾里,在网上论坛里也有很多人碰到这样哪样的问题,同时官方的文档也不细致不全。所以我就对这些参数进行了一个简单系统的总结,希望能对大家的BIRT开发有所帮助。这些参数以2.2.1版本为准,请大家特别注意。 1.Servlet模式说明 查看BIRT Viewer自带的web.xml文件,可以看到有以下几个pattern: frameset----采用Ajax框架,可以显示工具条,导航条和TOC面板,实现复杂的操作,如分页处理,导出数据,导出报表,打印等等。该模式下会自动生成report document文件(预览report design文件)到特定的目录(用户可以用参数指定,也可以定义在web.xml里)。采用Ajax,速度较慢。 run----也采用Ajax框架,但不实现frameset的复杂功能,不会生成临时的report document 文件(预览report design文件),也不支持分页,这个主要是应用在BIRT Designer里的preview tab里,可以支持cancel操作,其它不怎么常用。采用Ajax,速度较慢。 preview---没有用到Ajax框架,直接调用底层Engine API对报表进行render,把生成的报表内容直接输出到浏览器。这种模式和run模式调用的是相同的Engine API,唯一区别在于run采用Ajax获取报表内容,而preview直接输出到浏览器。如果要支持分页,用户需要在URL上定义__page和__pagerange参数,这两个参数也会在后面详细说明。需要特别说明的是,在这几种预览模式中,preview的速度是最快的。 document---该模式主要是为了从report design文件生成report document文件。用户可以在URL上提定document文件生成存放的路径(存放在server端),如果未指定,会直接生成rptdocument发送到客户端浏览器,用户可以下载到客户端。 output---该模式类似于frameset,会自动生成report document文件(预览report design 文件),区别在于output不采用Ajax,而是将生成的报表内容直接输出到浏览器。 parameter---该模式主要用于生成一个参数对话框,一般用户不常用,用户可以直接通过提供的JSP Tag--parameterPage去实现参数对话框,不需要直接调用。 download---用于导出报表数据为CSV格式,当你使用frameset工具条里的导出数据功能时,会用到这个模式。 2.web.xml里的参数设置 web.xml文件里有许多参数,用户应该根据自已的需求出发对这些参数有一个深入的了解。

birt报表入门教程之图表报表

birt报表入门教程之图表报表 图表报表 图形报表是非常常见的一种报表样式,用于直观地表现数据规律。常用的类型包括:柱状图、饼图、折线图、甘特图、雷达图等。Eclipse的Birt插件为我们提供了多种图表的表现形式。 这里我们利用3.6的交叉报表,为它做一张简单直观的柱形图。 为报表插入图表 本例我们直接利用3.6交叉报表的数据集,直接在3.6所创建的报表上插入图表。在选用板“Palette”视图中拖拽一个“Chart”至布局编辑器中交叉报表“Cross Tab”的下方。 设定图表属性 1.选择图表类型 进行上一步拖拽之后,会弹出如下窗口:在此窗口我们首先要进行图表基本属性的设定。系统提供给我们有13种可供选择的图表,这里我们选择第一种“Bar”即柱形图。 在窗口中部右方的“Select Subtype”部分有三种类型可供我们选择,这里我们选择第一个,其他的数据设定:Dimension:2D With Depth(设定图形维度) Output Format:SVG(设定输出图表的格式)Multiple Y Axis:none

选择“Next”进入下一步:

2.设定好图表基本类型之后,进行图表的数据设定。窗口哦界面如上图。 在窗口中部的Select Data Set中,选择Use Data Set,然后从它的下拉菜单中选择我们所创建的唯一数据集contract,此时,Data Preview窗口出现了数据集中的各个数据项:

3.将数据项中的AMOUNT拖拽至左上方“Value(Y)Series”中的“∑” 框内。表示在图表的Y轴的变量设定为amount变量。(也可以通过点击“∑”框左边的函数符号来进行设定。点击进入后,在下方三个小窗口依次选择“Available Column Bindings”→“Chart-New Chart”→“AMOUNT”,点击“AMOUNT”时进行双击。或者可以直接在编辑窗口输入“row["AMOUNT"]”即可。点击“Ok”完成)

Eclipsebirt使用说明中文

Birt使用说明

目录 一、前言 (1) 二、相关软件 (1) 1.1、BIRT (2) 1.2、GEF和EMF (3) 三、Birt的安装和配置 (4) 四、使用说明 (5) 4.1、创建项目 (5) 4.2、创建第一个报表 (7) 4.2.1、创建一个空白报表 (7) 4.2.2、设置数据集参数 (9) 4.2.3、设计报表 (14) 4.3、报表中的参数 (26) 4.3.1、静态标量参数 (27) 4.3.2、动态标量参数 (29) 五、应用系统的结合 (31)

一、前言 公司的一个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以上版本了,就是这个原因网上很多资料都不是很适合这个版本,所以我走了很多弯路,希望看到此文档的人能比我少走弯路,这也是我写这个文档的原因之一。 二、相关软件 相关的软件分别为: Java 1.4.2/1.5 JDK/JRE Eclipse-SDK-3.2.0

birt配置参数详解

BIRT参数设置详解 2010-08-25 16:30 在使用birt报表的时候感觉页面的 BIRT Report Viewer头标题没有用,想去掉在网上一查原来有详细的参数设置,看来birt的功能还是很强大啊。现在转帖如下: BIRT作为一款功能强大的开源报表工具,其版本的升级更新速度也非常快,从1.0到2.0,一直到最新的2.2.1版本,无论从功能上还是性能上都得到了极大的提高和扩充。BIRT也提供了一个标准的J2EE实现组件,可以发布到支持J2EE 应用的web server服务器上,可以对生成的报表进行预览等操作。在大家使用BIRT Viewer的时候,可能会对它日益纷繁的参数设置如云里雾里,在网上论坛里也有很多人碰到这样哪样的问题,同时官方的文档也不细致不全。所以我就对这些参数进行了一个简单系统的总结,希望能对大家的BIRT开发有所帮助。这些参数以2.2.1版本为准,请大家特别注意。 1. Servlet模式说明 查看BIRT Viewer自带的web.xml文件,可以看到有以下几个pattern: frameset ---- 采用Ajax框架,可以显示工具条,导航条和TOC面板,实现复杂的操作,如分页处理,导出数据,导出报表,打印等等。该模式下会自动生成report document文件(预览report design文件)到特定的目录(用户可以用参数指定,也可以定义在web.xml里)。采用Ajax,速度较慢。 run ---- 也采用Ajax框架,但不实现frameset的复杂功能,不会生成临时的report document文件(预览report design文件),也不支持分页,这个主要是应用在BIRT Designer里的preview tab里,可以支持cancel操作,其它不怎么常用。采用Ajax,速度较慢。 preview --- 没有用到Ajax框架,直接调用底层Engine API对报表进行render,把生成的报表内容直接输出到浏览器。这种模式和run模式调用的是相同的Engine API,唯一区别在于run采用Ajax获取报表内容,而preview直接输出到浏览器。如果要支持分页,用户需要在URL上定义__page和 __pagerange参数,这两个参数也会在后面详细说明。需要特别说明的是,在这几种预览模式中,preview的速度是最快的。 document --- 该模式主要是为了从report design文件生成report document 文件。用户可以在URL上提定document文件生成存放的路径(存放在server端),如果未指定,会直接生成 rptdocument发送到客户端浏览器,用户可以下载到客户端。 output --- 该模式类似于frameset,会自动生成report document文件(预览report design文件),区别在于output不采用Ajax,而是将生成的报表内容直接输出到浏览器。

birt教程之交叉报表

birt教程之交叉报表 交叉报表 构建数据源 方法同上。 构建数据集 1.在定义好数据集的基本信息之后,进入SQL SELECT语句查询界面,输入如下SQL语句,进行数据集的创建: select EBANK.CUSTOMER.CUSTOMER_NAME, EBANK.PRODUCT.PRODUCT_NAME,EBANK.CONTRACTSUM.* from EBANK.CUSTOMER,EBANK.PRODUCT,EBANK.CONTRACTSUM where EBANK.CONTRACTSUM.CUSTOMER= EBANK.CUSTOMER.CUSTOMER_ID and EBANK.CONTRACTSUM.PRODUCT= EBANK.PRODUCT.PRODUCT_ID 2.如果创建正确,在结果预览窗口“Preview Relusts”中将看到一下信息:

点击“Ok”完成数据集的创建。 在报表中加入交叉报表 1.同上例,先在布局编辑器中建立一个1列2行的Grid。 2.从选用板“Palette”视图中拖拽一个“Cross Tab”至第二行的网格中。 在布局编辑器中可以看到我们创建的Cross Tab的样式。 数据准备 1.选择数据资源管理器“Data Explorer”。右键单击“Data Cubes”,选择“New Data Cube”,进入如下交叉表数据编辑界面: 2.默认选择的是“Dayaset”,Name:为Cube命名,Customer Cube Primery dataset:选择相关的数据集。打开下拉菜单选择之前建立的数据

集contract 3.在左边的主菜单中选择第二项“Groups and Summeries”,出现如下窗口(),在将Available Fields中的CUSTOMER_NAME拖拽到右边Groups (Dimensions)中标有“(Drop a field here to create a group)”的地方,如下图。

birt动态分组报表制作

1 BIRT报表开发环境准备 (2) 1.1 BIRT报表开发准备 (2) 1.2 建立Web Project (2) 1.3 配置交叉报表数据源 (5) 1.3.1 建立公共资源的文件夹 (5) 1.3.2 建立公共资源Library (6) 2 动态分组交叉报表 (10) 2.1 建立报表文件夹 (10) 2.2 建立报表文件 (11) 2.3 复用报表数据源 (12) 2.4 配置交叉报表结果集 (13) 2.5 配置交叉报表分组字段 (16) 2.5.1 新建Data Cuber (16) 2.5.2 新建Groups (17) 2.6 配置交叉报表求和字段 (18) 2.7 交叉报表表样制作 (19) 2.7.1 新建Cross Tab (19) 2.7.2 完成报表表样制作 (20) 2.8 报表分页实现 (20) 2.9 预览交叉报表 (20) 3 部署交叉报表 (21) 4 运行交叉报表 (21)

1BIRT报表开发环境准备 1.1 BIRT报表开发准备 (1)、Ecplise:这里我使用的是Eclipse Platform Version: 3.6.2。 (2)、BIRT插件:可以通过Ecplise中的Install New Software 添加Birt插件。插件地址:(3)、Tomcat:这里我使用的是apache-tomcat-6.0.16 1.2 建立Web Project (1)、新建Web Project 为了体现BIRT与实际应用项目相结合的特点,首先建立一个Web Project,工程命名为myReport。 然后单击“Next”,出现下图:

birt报表初级教程之嵌套报表

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*

BIRT交叉表用法

Birt2.2M6 的CorssTab(交叉表)的用法 1什么是交叉表 首先你要知道什么是交叉表,又是在什么情况下需要用交叉表。 “交叉表”对象是一个网格,用来根据指定的条件返回值。数据显示在压缩行和列中。这种格式易于比较数据并辨别其趋势。它由三个元素组成: ◆行 ◆列 ◆摘要字段 我找了一副图表,用以说明交叉表 2创建交叉表步骤 Birt 2.2M6首次出现了OLAP Cube功能,创建交叉表分为三步 ◆创建Cube ◆创建CrossTab ◆把Cube的维度和度量拖到相应的地方。 2.1选择Cube的数据集 BIRT的数据立方体(Cube)是基于数据集的。建一个Cube首先就是要选择Cube的数据集,所以先创建自己的数据源和数据集。本例中我们建了一个名为crossTabDataSet 的数据集,数据集的预览如下图所示:

2.2创建Cube 在Data Exployer页的Cubes下面增加一个Cube,本例中,我们将Cube命名为TestCube,数据集选择我们刚才新建的crossTabDataSet。 2.3设置Cube的Group Group的设置页面如下:

把我们需要在交叉表的维度拖到Groups的Group下。(可以根据多个维度建立多个Group) 2.4设置CrossTab 然后,在设计面板中,双击Crosstab,在弹出的窗口中,选择我们刚才建好的Cube,点击‘Ok’。

设计页面上上出现了一个CrossTab的表格。 然后,打开DataExplor页,将Cube的维度和度量相应地拖放到规定的地方。如下图所示。 预览效果如下图所示: 至此,一个交叉表就完成了 2.5给交叉表设置附加列 如果想要出现本文开头的交叉表的效果(即:行小计和列小计计算结果),进行如下设

birt工具资料

商业智能报表工具BIRT 宿晓丹 北京邮电大学软件学院,北京(100876) E-mail:xiaodan6677@https://www.360docs.net/doc/bb10594279.html, 摘要:报表在信息系统中具有基础性的地位,报表技术日渐成熟,涌现出了一批优秀的报表工具软件。商业智能报表工具BIRT是基于Eclipse插件技术的一个开源报表工具,可以和J2EE以及J2SE的应用进行无缝的集成,使得我们进行B/S报表设计有了一个全新的选择。本文详细介绍了BIRT概念和报表组成,阐述了其体系结构,报表流程及基于它的二次开发,并就其优势与不足给出了综合评定。 关键词:报表;商业智能;BIRT;报表引擎 中图分类号:TP311 1 引言 报表作为一种信息组织和分析的手段,在各个行业中都有很广泛的应用,其内容和形式也多种多样。在现代化企业信息系统特别是管理信息系统(Management Information Ssystem, MIS)中,报表系统是其重要组成部分之一。报表系统(Reporting System)是应用系统中管理数据、格式化数据并在组织内部和外部分发数据过程的功能模块。它是商业智能(Business Intelligence,BI)策略的基础,能通过Web或者企业级应用程序的方式,可靠、安全地向用户提供他们最需要的信息,并对统计后的结果进行数据的存储、处理和分析,供管理者分析决策之用。另外,Internet的飞速发展使得企业级应用软件逐渐由C/S结构转向B/S结构,越来越多的报表将在Web环境下开发和应用[1]。 国内外的报表工具有几十种,各种报表工具功能,形式都有或多或少的差异,而如何从形形色色的报表工具选取合适的工具是高效率开发和运行报表的关键,一般可以从实现技术,绘制方案,前端展现方案,后台集成方案以及填报能力等方面进行考虑[2,3]。 在报表实现技术方面,报表可以分为纯JAVA和非纯JAVA两种。报表对JAVA的支持与否是一个非常重要的指标,这是因为J2EE技术主导了B/S的应用开发,正是这个原因,支持B/S应用的报表工具一般都能支持JAVA。相比非纯JAVA报表工具来说,纯JAVA的报表具很多明显优势,能与J2EE应用无缝结合,具有好的集成性和部署性,并且适合大型应用系统,因而随着报表市场的发展,纯JAVA的报表工具成为主要产品。 绘制方案决定了报表样式的复杂度和绘制效率,以及导出Excel的能力,报表工具按绘制方案一般可以分为类Excel式和拖拽式两种。类Excel式由于绘制效率高,能够画出样式复杂的报表,且导出Excel格式时不会失真等优势,获得国内用户的青睐。 现有报表产品前端(浏览器端)展现主要有HTML和控件两种方案,从安全性,交互操作以及精确打印的能力等几方面考虑,两种方案各有优劣,因而某些产品同时提供两种方案。 后台集成方案主要有完全嵌入、独立服务器和控件数据服务三种。完全嵌入方案为最经济高效的集成方案,但需要报表工具与应用程序基于同种技术实现。独立服务器方案的优点在于对宿主应用程序的技术体系没有要求,采用不同技术的应用可以将同样的方案集成起来。控件数据服务无法发挥后台服务器的强大计算能力,而且有关处理代码将在前端暴露出来造成安全隐患,不适合大型应用。

birt教程之分组报表

birt教程之分组报表 分组报表 在网格报表的基础上,我们可能还需要对数据进行进一步的处理。比如,将同类数据显示在一个组中,并对这个组进行统计运算。如下图所示,对数据按省份进行分组,并将同一省份数据放在一个组内进行汇总统计。 下面我们将上例的网格报表进行一下小的改进,建立一个按用户类型进行分组的报表。 创建数据源 方法同上例。 构建数据集 本例所用的数据集与上例完全相同,输入与上例3.4.2相同的sql语句建立数据集即可。 对报表进行布局 1.做好上面的工作之后,先在布局编辑器中建立一个1列2行的Grid,2.同上例一样,从选用板“Palette”中拖拽一个5列1行的Table至第二行的网格中,

3.从Data Explorer视图中的“Data Sets”项中将TYPENAME拖拽至此Table 的第一个详细信息行中,然后依次将,CUSTOMER_ID,CUSTOMER_NAME,FAX,TEL拖拽入详细信息行内。这里不再赘述。 设定分组数据 1.选中Table,在右下方的Table的属性编辑器“Property Editor-Table”中,选择Group,进入如下分组设定界面: 2.点击“Add”按钮进行添加分组:

从“Group on”的下拉框选择TYPENAME,其他默认,(可根据需要对“Name”项进行命名),然后选择“OK”。完成分组设定。 3.这时Table中多出一行Group行,如下图:

将详细信息栏中的TYPENAME(即Table中第三行第一列数据项,如上图标记下方的数据项)删除。 这样,一个按照用户类型建立的分组报表就建立起来了。 格式化报表 进行报表格式化处理后,预览如下效果: 同为比较常用的报表工具,FineReport对分组报表的解决方案和实现方法与BIRT有所不同,具体实现思路和步骤如下,供BIRT使用者借鉴:

报表平台功能说明

1.报表平台 1.1平台功能 报表平台功能如下图所示: 报表发布:设计好的报表可以发布到报表服务器。 报表权限管理/报表查询:对已经发布的报表可进行权限配置,不同权限的用户可以查询不同的报表,相同报表用户机构不同查询的数据也不一样。 报表导出/下载/打印:查询出的报表可以以不同的格式导出(如PDF、HTML、Word、Excel、TXT等),报表打印可以使用相应格式的阅读器来操作打印机打印。 日终报表导出任务(EOD):提供日终的一些任务(如每月导出月报、每季导出季报等),日终的任务提供WebService接口由CPS平台进行调度。 1.2技术架构 报表平台主要由三个部分组成: 报表设计器:基于开源商务智能项目Birt的报表设计器,可在eclipse开发工具中进行可视化设计报表的字段与样式,及查询规则。 报表服务器:J2EE+Web2.0技术的报表服务器应用,可将已经设计好的报表发布到报表服务器、对报表进行组织机构及权限的管理(不同的机构只需要关心本 机构的报表)、可提供在线的方式查询及预览报表,手动实时导出及下载报表, 提供日终批量报表导出任务,并可将该任务发布成WebService由CPS平台高度。 报表平台数据库:对报表服务器本身提供存储的支持(如用户权限、组织机构、报表定义等)。 注意:报表平台数据库不提供报表的实际业务数据,生成报表的数据直接连接 核心系统的数据库中,从已经转换好数据的表中抽取。

报表数据库 报表平台 报表设计器 报表查询 发布 导出报表 文件 报表服务器 报表权限管理 核心数据库 报表数据 报表打印

1.3报表开发流程 根据业务需求设计报表 (报表设计器) 发布已经设计的报表 (报表服务器) 配置组织机构和权限 (报表服务器) 配置报表与组织机构的关联 (报表服务器) 完成 1.4用户使用流程

birt交叉表

BIRT交叉报表 一、创建报表和配置数据源 1.新建一个报表,改好自己的名字,然后next进行下一步。

然后选择一个空白报表(Blank Report),单击finish完成。 2.新建数据源,这里使用的是协同数据库,选择Date Explore标签右键单击Data Sources 新建一个数据源。选择JDBC Data Source 命名为clmpdemo 然后单击next

利用JDBC链接数据源,然后点击测试链接,提示成功后,点击finish完成。 注:在应用里面,可以设置为JNDI链接。具体是在报表文件中,增加一列JNDI 设置,如下所示:

contentBidiFormatStr ILYNN metadataBidiFormatStr ILYNN oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:eccl clmp ZWNjbDIwMDk= java:/comp/env/clmp

相关文档
最新文档