开源报表BIRT 开发手册


开源报表 BIRT 开发手册 Birt 报表开发手册 第 2 页共 123 页 目 录 1 Birt 介绍 ................................................................................................................... 5 1.1 报表介绍........................................................................................................ 5 1.2 基本概念........................................................................................................ 5 1.3 丰富的报表 .................................................................................................... 5 1.4 BIRT 报表由四部分组成.................................................................................. 6 1.5 报表设计器 .................................................................................................... 6 2 Birt 插件安装 ............................................................................................................ 8 2.1 插件版本说明................................................................................................. 8 2.2 插件安装........................................................................................................ 9 2.2.1 完全安装.............................................................................................. 9 2.2.2 更新安装: .......................................................................................... 9 2.2.3 分步安装.............................................................................................. 9 3 Birt 报表开发实战 ................................................................................................... 13 3.1 创建报表...................................................................................................... 13 3.1.1 创建报表工程..................................................................................... 13 3.1.2 创建报表............................................................................................ 14 3.2 数据源配置 .................................................................................................. 16 3.3 创建数据集 .................................................................................................. 19 3.4 网格报表...................................................................................................... 20 3.4.1 创建数据源 ........................................................................................ 21 3.4.2 创建数据集 ........................................................................................ 21 3.4.3 对报表进行布局 ................................................................................. 21 3.4.4 格式化与预览..................................................................................... 23 3.5 分组报表...................................................................................................... 24 3.5.1 创建数据源 ........................................................................................ 25 3.5.2 构建数据集 ........................................................................................ 25 3.5.3 对报表进行布局 ................................................................................. 25 3.5.4 设定分组数据..................................................................................... 25 3.5.5 格式化报表 ........................................................................................ 27 3.6 交叉报表...................................................................................................... 28 3.6.1 构建数据源 ........................................................................................ 28 3.6.2 构建数据集 ........................................................................................ 28 3.6.3 在报表中加入交叉报表....................................................................... 28 3.6.4 数据准备............................................................................................ 29 3.6.5 向交叉表插入数据.............................................................................. 32 3.6.6 加入汇总............................................................................................ 33 3.6.7 格式化报表 ........................................................................................ 34 3.7 嵌套报表...................................................................................................... 35 3.7.1 构建数据源 ........................................................................................ 36 Birt 报表开发手册 第 3 页共 123 页 3.7.2 构建数据集 ........................................................................................ 36 3.7.3 布局嵌套报表..................................................................................... 38 3.7.4 将 Table 绑定数据集 ........................................................................... 39 3.7.5 设定主表数据..................................................................................... 39 3.7.6 设定子表数据..................................................................................... 40 3.8 交互报表...................................................................................................... 42 3.8.1 创建报表、数据源.............................................................................. 43 3.8.2 创建数据集 ........................................................................................ 43 3.8.3 加入响应参数..................................................................................... 45 3.8.4 布局报表............................................................................................ 47 3.8.5 插入报表数据..................................................................................... 48 3.8.6 格式化与预览..................................................................................... 49 3.9 报表钻取...................................................................................................... 51 3.9.1 设定响应参数..................................................................................... 51 3.9.2 预览结果............................................................................................ 54 3.10 图表报表...................................................................................................... 55 3.10.1 为报表插入图表 ................................................................................. 55 3.10.2 设定图表属性..................................................................................... 55 3.10.3 图表预览............................................................................................ 60 3.11 多层交叉报表............................................................................................... 61 3.11.1 构建数据源 ........................................................................................ 61 3.11.2 构建数据集 ........................................................................................ 61 3.11.3 在报表中加入交叉报表....................................................................... 62 3.11.4 数据准备............................................................................................ 63 3.11.5 向交叉表插入数据.............................................................................. 63 3.11.6 格式化与预览..................................................................................... 64 3.12 多层交叉汇总报表........................................................................................ 65 3.12.1 加入汇总............................................................................................ 65 3.12.2 格式化与预览..................................................................................... 66 3.13 其他............................................................................................................. 67 3.13.1 格式化报表 ........................................................................................ 67 3.13.1.1 表头与标题 .......................................................................... 67 3.13.1.2 设定单元格格式 ................................................................... 68 3.13.1.3 样式套用.............................................................................. 68 3.13.1.4 数据元素格式化 ................................................................... 69 3.13.2 分页、页眉与页脚.............................................................................. 70 3.13.2.1 设置分页显示....................................................................... 70 3.13.2.2 设置分页打印....................................................................... 70 3.13.2.3 设置页眉页脚....................................................................... 71 3.13.3 隔行高亮度显示 ................................................................................. 73 3.13.4 对报告进行布局 ................................................................................. 76 3.13.4.1 添加|删除行或列 .................................................................. 76 3.13.4.2 指定行高或列宽 ................................................................... 76 3.13.4.3 添加图像.............................................................................. 77 Birt 报表开发手册 第 4 页共 123 页 3.13.5 数据绑定............................................................................................ 79 4 Birt 报表 script......................................................................................................... 82 4.1 avascript 脚本编写 ..................................................................................... 82 4.1.1 隔行高亮度显示 ................................................................................. 82 4.1.2 多参数查询 ........................................................................................ 84 4.1.3 脚本创建数据源 ................................................................................. 85 4.2 java 脚本编写.............................................................................................. 88 4.2.1 创建 java 类........................................................................................ 88 4.2.2 java 类与报表交互 .............................................................................. 92 4.3 BIRT 脚本参考.............................................................................................. 98 5 Birt 报表部署 .......................................................................................................... 99 5.1 直接使用运行 birt-runtime-2_2_0 包中的 WebViewerExample ..................... 99 5.2 集成到已有 web 应用 ...................................................................................100 5.3 数据库驱动位置 ..........................................................................................106 5.4 报表 url 说明..............................................................................................107 5.5 web.xml 配置 .............................................................................................. 113 5.6 viewer.properties 说明............................................................................. 114 5.7 BIRT 在 jsp 中 tag 使用............................................................................... 116 5.8 关于 BIRT 编码............................................................................................123 Birt 报表开发手册 第 5 页共 123 页 1 Birt 介绍 1.1 报表介绍 BIRT――商业智能和报表工具。 BIRT 是一个 Eclipse-based 开放源代码的报表系统,它主要是用在基于 Java 和 J2ee 的 web 应用程序上。BIRT 主要由两部分组成:一个是基于 Eclipse 的报表设计器和一个可 以添加到应用服务器的运行组建。BIRT 同时提供一个图形报表制作引擎。 BIRT 拥有和 Dreamweaver 一般的操作界面,可以像画 table 一样画报表,也可以生成 图片、导出 Excel、html、pdf、ppt 等分页,样式比 script 设置简单,另外 BIRT 还有 OLAP 导航功能。 1.2 基本概念  数据源:数据的来源,或提供者。如 xml 数据源、jdbc 数据源等。  数据集:数据集合,它必须与数据源关联,可以理解为查询的结果。  报表以及报表项,报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形 式的某个具体的单元。它们之间的关系,与窗体和控件的关系非常类似。报表、数据集、 数据源三者间的关系:数据源 --- 数据集 --- 报表。  报表参数:查询参数的表现形式,使用它可以构建更灵活的报表。  模板和库:主要用于复用报表设计,提高报表开发的效率 1.3 丰富的报表 列表 - 列表是最简单的报表。当列表变长时,你可以把相关数据增加到同一分组(基 于客户的订单分组,基于供应商的产品分组)。如果数据是数字类型的,你可以轻松的添加 到“总数”、“平均”、或其他汇总中。 图表 - 当需要图表表现时,数字型数据比较好理解。BIRT 也提供饼状、线状以及柱 状图标等。 Birt 报表开发手册 第 6 页共 123 页 交叉表 - 交叉表(也叫做十字表格或矩阵)用两种维度展示数据:sales per quarter or hits per web page。(交叉表在 1.0.1 中没有提供,但计划在将来提供。) 信函和文档 - 通知、信件、以及其他文本文档都很容易通过 BIRT 方便建立。文档包 括正文、格式、列表、图表等。 混合报表 - 很多报表需要联合以上所有的报表构成单一文档。例如,一份客户声明会 列出客户所需要的信息,为当前促进(promotions)提供文本,以及提供并行的出帐和入帐列 表。一份财政报表将包括声明、图表、表格,所有这些都将进行全方位的格式化,来匹配共 有的配色方案。 1.4 报表由四部分组成 数据 - 数据库、Web 服务、Java 对象,这些都可以作为 BIRT 报表源。1.0.1 版本 提供 JDBC 支持,也支持利用编码来获取其他地方的数据。BIRT 的 ODA(Open Data Access) 框架允许任何人构建新的 UI 以及运行时支持任何类型的表格式数据。未来,单一报表可包 含从任意多个数据源获取数据。 数据转换 - 报表通过对数据的分类、统计、过滤以及分组来适应用户需求。当然,数 据库能实现这些功能,当遇到普通文件和 Java 对象时 BIRT 必须以 "simple" 数据源方式 处理。BIRT 允许复杂的操作,比如总合分组、整体共计的百分比,等等。 业务逻辑 - 真实世界的数据很少提供你理想的结构良好的报表。许多报表要求用具体 逻辑把原始数据转换成用户的有用信息。如果该逻辑仅仅用于该报表,你可以用 BIRT 的 JavaScript 脚本支持。如果你的程序中已包含这些逻辑,你可以调用已有的 Java 代码。 表现 - 一旦数据准备好了,你可以在很大的范围内选择表现形式。表格、图表、文字 等等都可以。单一数据集可以有多种方式表现,而单一报表可以表现多个数据集。 1.5 报表设计器 数据浏览器 - 把你的数据源(连接)以及数据集(查询)组织起来。数据集编辑器允 许你测试数据集,以确保报表接收数据的正确性。 布局视图(Layout) - 所见即所得编辑器为你的报表提供以拽方式来创建表现内容。 包含一个标准报表条目调色板。 Birt 报表开发手册 第 7 页共 123 页 属性编辑器(Property Editor) - 以便利的格局表现大多数通用的用户属性使编辑 更快速和容易。BIRT 也集成了标准 Eclipse 属性视图,为每个条目提供详细的属性列表。 报表预览(Preview) - 你可以在任何时间采用真实数据测试你的报表。预览窗口直 接内嵌在 Eclipse 中。 代码编辑器(Script) - 在访问数据以及报表生成或浏览时,脚本把业务逻辑添加给报 表。在编辑脚本时代码编辑器提供标准的 Eclipse 特性:语法加色、自动完成等等。BIRT 用 很简单的脚本来表达,expression builder 能更容易的创建这些表达。 略图(OutLine) - BIRT 报表被组织为一个树型结构作为整体报表的根,并且为样式、 报表内容、数据源、数据集、报表参数等分类。略图视图提供你整个报表结构紧凑的预览。 Cheat Sheets - 学习新工具永远是种挑战,但是 Eclipse 提供一种创新方案:cheat sheets。它们是一些帮助你完成新任务的文档。 Birt 报表开发手册 第 8 页共 123 页 2 Birt 插件安装 2.1 插件版本说明 EMF, GEF 和 BIRT 都是需要通过 Eclipse download page 下载的。请注意以下的配置 要求:  BIRT 2.1.3  Eclipse 3.2.  GEF 3.2.  EMF 2.2.  JRE 1.4.2/JRE 1.5.  BIRT 2.2  Eclipse 3.3.  GEF 3.3.  EMF 2.3.  JRE 1.5.  DTP 1.5.  WTP 2.0 GEF:Graphical Editing Framework,图形编辑框架,是一个通过 BIRT UI 使用的 Eclipse 插件。 EMF:Eclipse Modeling Framework,用来制作图表的框架。 DTP: DataTools Platform,管理数据源驱动程序,以及访问特殊数据源实例的配置。 WTP: Web Tools Platform, 另外,本手册中介绍实例使用的 derby 数据库。 Birt 报表开发手册 第 9 页共 123 页 2.2 插件安装 2.2.1 完全安装 到 Eclipse 的官方网站 http://download.eclipse.org/birt/downloads 去下载 带有 BIRT 插件的 Eclipse 平台(birt-report-designer-all-in-one-2_2_0),解压后,它就是 一个拥有 BIRT 插件的 Eclipse,您可以直接使用。 下载所在网页: http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/R-R1-2 _2_0-200706261010/birt-report-designer-all-in-one-2_2_0.zip Download from: Eclipse downloads - mirror selection 2.2.2 更新安装: BIRT 2.1 开始,可以在 Eclipse 里直接下载。在 Eclipse 里按照:[Help]—>[Software Updates]—>[Find And Install]的路径来进行即可。 2.2.3 分步安装 首先下载安装 JRE 1.5; 1、 下载安装 Eclipse 3.3 下载地址: http://download.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/winPlatf orm.php#EclipseSDK 打开网页: http://download.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/index.ph p 点击下图中的“Eclipse SDK”链接即可下载。 Birt 报表开发手册 第 10 页共 123 页 下载到文件 eclipse-SDK-3.3-win32.zip,解压至安装目录,比如我们把它安装到 C:\Program Files 中; 2、 下载安装插件 WTP 2.0, 下载地址: http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drop s/R2.0/R-2.0-200706260303/wtp-R-2.0-200706260303.zip&url=http://download.ac tuatechina.com/eclipse/webtools/downloads/drops/R2.0/R-2.0-200706260303/wtp -R-2.0-200706260303.zip&mirror_id=385 打开下面的网页点击网页中 Download From 后的链接即可进行下载。 http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drop s/R2.0/R-2.0-200706260303/wtp-R-2.0-200706260303.zip 下载到文件 wtp-R-2.0.zip,将其解压至 eclipse 安装目录 C:\Program Files 即可; 方法如下:右键点击压缩文件,选择解压文件, 弹出解压路径和选项: Birt 报表开发手册 第 11 页共 123 页 将目标路径改为我们安装 eclipse 的安装目录:C:\Program Files 点击确定。在解压时,如果出现“文件已存在”,选择“全部选是”进行覆盖就可以了。 3、 下载安装 GEF 3.3 Release, GEF Runtime, 下载地址: http://www.eclipse.org/downloads/download.php?file=/tools/gef/downloads/drops/R-3.3-2007062 81000/GEF-runtime-3.3.zip 打开网页: http://download.eclipse.org/tools/gef/downloads/drops/R-3.3-200706281000/index.php 点击:Runtime 中 Download 下方的链接即可。 下载到文件 GEF-runtime-3.3.zip,解压至安装目录,方法同上。 4、 下载安装 EMF & SDO RT version 2.3, 下载地址: Birt 报表开发手册 第 12 页共 123 页 http://www.eclipse.org/downloads/download.php?file=/modeling/emf/emf/downloads/drops/2.3.1/ M200708142030/emf-sdo-SDK-M200708142030.zip&url=http://ftp.daum.net/eclipse/modeling/e mf/emf/downloads/drops/2.3.1/M200708142030/emf-sdo-SDK-M200708142030.zip&mirror_id= 441 打开下面的网页点击网页中 Download From 后的链接即可进行下载。 http://www.eclipse.org/downloads/download.php?file=/modeling/emf/emf/downloads/drops/2.3.1/ M200708142030/emf-sdo-SDK-M200708142030.zip 下载到文件 emf-sdo-SDK.zip,解压至安装目录,方法同上。 5、 下载安装 DTP version 1.5, 下载地址: http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.5/dtp-sdk_1.5_200 70704.zip&url=http://download.actuatechina.com/eclipse/datatools/downloads/1.5/dtp-sdk_1.5_2 0070704.zip&mirror_id=385 打开下面的网页点击网页中 Download From 后的链接即可进行下载。 http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.5/dtp-sdk_1.5_200 70704.zip 下载到文件 dtp-sdk_1.5.1.zip,解压至安装目录,方法同上。 6、 下载安装 BIRT Release 2.2, 下载地址: http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/R-R1-2_2_0-200706 261010/birt-report-framework-2_2_0.zip&url=http://download.actuatechina.com/eclipse/birt/dow nloads/drops/R-R1-2_2_0-200706261010/birt-report-framework-2_2_0.zip&mirror_id=385 打开下面的网页点击网页中 Download From 后的链接即可进行下载。 http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/R-R1-2_2_0-200706 261010/birt-report-framework-2_2_0.zip 下载到文件 birt-report-framework-2_2_0.zip,解压至安装目录,方法同上。 安装完毕,即可进入使用。 如果您只是缺少其中的某几个插件,下载后按照上述方法安装即可,但要注意版本的匹 配。 Birt 报表开发手册 第 13 页共 123 页 3 Birt 报表开发实战 3.1 创建报表 3.1.1 创建报表工程 1. 选择文件->新建->项目。如下图中的新建项目将显示可以创建的项目的类型。 2. 展开商业智能和报表工具(Business Intelligence and Reporting Tools), 选择报表项目(Report Project),然后选择下一步。 3. 在新建报表项目的工程名称中输入下列文本,如图所示: My Report Birt 报表开发手册 第 14 页共 123 页 4. 要添加项目,请选择完成。现在可在导航器视图中看到该项目,如图所示。 3.1.2 创建报表 1. 选择文件->新建->报表。如下图: Birt 报表开发手册 第 15 页共 123 页 2. 选择 My Report,输入报表文件名称,如:Customers.rptdesign 3. 选择 Next。 4. 可以通过一下方式创建报表:  从空白报表开始设计  使用预定义的报表模版 5. 选择 Finish。新报表将出现在主窗口中,布局编辑器将显示空的报表页。如 下图所示: Birt 报表开发手册 第 16 页共 123 页 3.2 数据源配置 在布局编辑器中开始设计报表之前,构建 BIRT 数据源以将报表连接至数据库或其他 类型的数据源。构建数据源时,要指定驱动程序类、数据源名称和其他连接信息(例如,用 户名和密码)。Birt 自带一个已经配置为与 BIRT 报表设计器配合使用的样本数据库 Classic Models,对于本教程使用的是 Derby 数据库。 1. 选择数据资源管理器(Data Explorer)。如果使用缺省报表设计透视图,则数据资源 管理器位于布局编辑器的左边,在选用板(Palette)的旁边,如图所示。如果它尚未 打开,则选择窗口->显示视图->数据资源管理器。 2. 右键单击 Data Sources 然后从上下文菜单中选择新建数据源。新建数据源显示可以创 建的数据源的类型,如图所示。 Birt 报表开发手册 第 17 页共 123 页  Classic Models Inc.Sample DataBase ———上面说过是 BIRT 样本数据库。  Flat File Data Source ———从 CSV、SSV、TSV、PSV 四种格式的文件获取数据 源。  JDBC Data Source ——— 通过配置 jdbc 连接数据库。  Script Data Source ——— 通过编写脚本获取数据源。  Web Services Data Source ——— 通过 web service 方式获取数据源。  XML Data Source ——— 从 xml 文件获取数据源。 Birt 报表开发手册 第 18 页共 123 页 3. 这里我们介绍通过 JDBC Data Source 配置数据源。选择 JDBC Data Source ,输入 数据源名称,点击 Next,配置 Jdbc 信息。如下图:  首先,单击 Manage Drivers 添加驱动包。如下图: 单击 add,选择 derby 数据库的 derbyclient.jar 驱动包。点击 ok,驱动完成添加。  配置信息: Driver Class: org.apache.derby.jdbc.ClientDriver (v10.1)(通过下拉菜单可以找 到) Database URL: jdbc:derby://【host】:1527/【database】 Birt 报表开发手册 第 19 页共 123 页 User Name:用户名 Password:密码 4. 测试连接,测试前查看 derby 数据库是否启动;点击 Test Connection。出现 Connection successful.对话框表示数据源创建成功。点击 Finish 完成。 3.3 创建数据集 数据集标识要从数据源检索的数据。我们是通过连接至 JDBC 数据源,则使用 SQL SELECT 语句来标识要检索的数据。 1. 在数据资源管理器(Data Explorer)中,右键单击数据集(Data Set)并从上下 文菜单中选择新建数据集。 2. 在新建数据集的数据集名称中,输入下列文本,如图所示: 3. 对于其他字段选择缺省值。 Data Set Types 数据集类型一般使用 jdabc 数据源连接分为两种:一种是 SQL Select Query 为 select 查询,一种是 SQL Stored Procedure Query 存储过程查询 (使用存储过程查询,必须数据库中已创建存储过程)。 Data Source 显示先前创建的数据源的名称。 Data Set Types 指示该数据集使用 SQL Select Query 查询。 4. 选择 Next。 查询显示可帮助您创建 SQL 查询的信息。可用项列示数据库中的所有表。可以单击 表旁边的加号(+)标志来显示该表的各个列。编辑数据集右边的文本区域显示 SQL SELECT 语句的必需关键字: 5. 在文本区域中,输入下列 SQL SELECT 语句以指定要检索的数据: 如:select * from EBANK.CUSTOMER Birt 报表开发手册 第 20 页共 123 页 虽然数据集编辑器以大写字母显示表和列名称,但可用您喜欢的方式输入这些名 称,因为 SQL 不区分大小写。如果您不想输入查询,则可将列和表从可用项拖动到 文本区域。 6. 选择 Finish 以保存数据集。编辑数据集将显示在查询中指定的列,并提供编辑数据 集的选项。 7. 选择预览结果(Preview Results)以确保查询有效并且它返回正确的数据。如果正 确输入了 SELECT 语句,您应该看到图中显示的结果。这些是查询返回的数据行。 8. 选择 ok,数据集创建成功。 3.4 网格报表 网格报表是报表最通用的模式,在大多数报表中,都需要或部分需要将一组(多条)数 Birt 报表开发手册 第 21 页共 123 页 据结构完全相同的数据以表格形式顺序展现出来。如: 通过此例我们先来看一看如何制作一张简单的报表。我们需要建立一张显示所有银行客 户及其相关信息的的报表。 3.4.1 创建数据源 方法同上例 3.2. 3.4.2 创建数据集 方法同上例 3.3. 数据集名称为:Customer。 客户的信息存在 CUSTOMER 表中,我们需要输入如下语句: select EBANK.CUSTOMERTYPE.TYPENAME,EBANK.CUSTOMER.* from EBANK.CUSTOMER,EBANK.CUSTOMERTYPE where EBANK.CUSTOMER.CUSTOMERTYPE = EBANK.CUSTOMERTYPE.TYPEID 3.4.3 对报表进行布局 1.在本过程中,您在报告页中插入元素以显示先前创建的数据集的数据。先插入一个 表元素,然后在该表中插入数据元素。 2.选择选用板“Palette”。选用板显示所有可布置在报告中的元素。 3.为了以后的表布局美观,我们先从选用板中的“Gird”元素拖拽放入布局编辑器内 (即文件的“Layout”视图)的报告中,插入时提示您要制定创建的行列数的详细信息: 输入 1 列 2 行, 4.然后,将选用板中的表元素“Table”拖放到布局编辑器内的报告中。插入表提示您 指定要对此表创建的列数和详细信息行数。指定 5 列和 1 个详细信息行,然后选择“确 定”。具有 5 列和 1 个详细信息行的表将出现在布局编辑器中。现在,您就可以在该表 Birt 报表开发手册 第 22 页共 123 页 中插入数据了。 5.选择数据资源管理器 Data Explorer 视图。在 Data Explorer 视图中,展开“Data Sets”, 然后展开 Customers,在查询中指定的列将出现在 Customers 下面。 将 CUSTOMER_NAME 从 Data Explorer 中拖放到表的详细信息行“Detail Row”中的 第一个单元格内(如下图)。详细信息行显示报告中的主要数据。在完成的报告中,详 细信息行重复显示数据集中的所有数据行。 6.然后采用同样的方法将 CUSTOMER_ID,TYPENAME,FAX,TEL 这四个数据项 从 Data Explorer 中拖放到表的详细信息行中,完成的报告中,详细信息行重复显示数 据集中的所有数据行。如下图: Birt 报表开发手册 第 23 页共 123 页 7.选中报表格左下角的“ ”(如上图),在下方的视图中会显示本 Table 的信 息: 选择第二项“binding”,将 Data Set 的下拉框选为“Customer”,下方的 Data Colum Binding 中就会显示我们数据集中的数据项,通过此步我们将本报表与数据集绑定起来, 否则将不能显示(一般将数据集中的数据项拖拽如 Table 中后,会自动将次数据集的数 据项与本报表绑定,我们可以不用进行这步操作。但我们必须得清楚这个操作)。 完成后,表格的基本设置就算做完了。 3.4.4 格式化与预览 通过布局编辑器中选择“Preview”可对我们设计的报表进行预览。 我们通过一系列格式化操作,将报表进行美化。 完成以后则可,通过工具栏中提供的各种不同的视图模式来进行预览,如下: Birt 报表开发手册 第 24 页共 123 页 使用默认的 View Report In Web Viewer 预览结果如下: 3.5 分组报表 在网格报表的基础上,我们可能还需要对数据进行进一步的处理。比如,将同类数据显 示在一个组中,并对这个组进行统计运算。如下图所示,对数据按省份进行分组,并将同一 省份数据放在一个组内进行汇总统计。 Birt 报表开发手册 第 25 页共 123 页 下面我们将上例的网格报表进行一下小的改进,建立一个按用户类型进行分组的报表。 3.5.1 创建数据源 方法同上例。 3.5.2 构建数据集 本例所用的数据集与上例完全相同,输入与上例 3.4.2 相同的 sql 语句建立数据集即可。 3.5.3 对报表进行布局 1.做好上面的工作之后,先在布局编辑器中建立一个 1 列 2 行的 Grid, 2.同上例一样,从选用板“Palette”中拖拽一个 5 列 1 行的 Table 至第二行的网格中, 3.从 Data Explorer 视图中的“Data Sets”项中将 TYPENAME 拖拽至此 Table 的第一 个详细信息行中,然后依次将,CUSTOMER_ID,CUSTOMER_NAME,FAX,TEL 拖 拽入详细信息行内。这里不再赘述。 3.5.4 设定分组数据 1.选中 Table,在右下方的 Table 的属性编辑器“Property Editor - Table”中,选择 Group, 进入如下分组设定界面: Birt 报表开发手册 第 26 页共 123 页 2.点击“Add”按钮进行添加分组: 从“Group on”的下拉框选择 TYPENAME,其他默认,(可根据需要对“Name” 项进行命名),然后选择“OK”。完成分组设定。 Birt 报表开发手册 第 27 页共 123 页 3.这时 Table 中多出一行 Group 行,如下图: 将详细信息栏中的 TYPENAME(即 Table 中第三行第一列数据项,如上图标记下 方的数据项)删除。 这样,一个按照用户类型建立的分组报表就建立起来了。 3.5.5 格式化报表 进行报表格式化处理后,预览如下效果: Birt 报表开发手册 第 28 页共 123 页 3.6 交叉报表 3.6.1 构建数据源 方法同上。 3.6.2 构建数据集 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”完成数据集的创建。 3.6.3 在报表中加入交叉报表 1. 同上例,先在布局编辑器中建立一个 1 列 2 行的 Grid。 Birt 报表开发手册 第 29 页共 123 页 2. 从选用板“Palette”视图中拖拽一个“Cross Tab”至第二行的网格中。 在布局编辑器中可以看到我们创建的 Cross Tab 的样式。 3.6.4 数据准备 1. 选择数据资源管理器“Data Explorer”。右键单击“Data Cubes”,选择“New Data Cube”,进入如下交叉表数据编辑界面: 2. 默认选择的是“Dayaset”, Name:为 Cube 命名,Customer Cube Primery dataset:选择相关的数据集。打开下拉菜单选择之前建立的数据集 contract Birt 报表开发手册 第 30 页共 123 页 3. 在左边的主菜单中选择第二项“Groups and Summeries”,出现如下窗口(), 在将Available Fields 中的CUSTOMER_NAME拖拽到右边Groups (Dimensions)中标 有“(Drop a field here to create a group)”的地方,如下图。 拖拽完毕之后弹出如下窗口:所有选项都选默认数据。点击“OK”进入下一步 Birt 报表开发手册 第 31 页共 123 页 4. 按照地 4 步的方法,将 Available Fields 中的 PRODUCT_NAME 也拖拽到右边的对 应地方。 5. 将 Available Fields 中的 AMOUNT 拖拽到右边 Summary Fields (Measures)中标有 “(Drop a field here to create a summary field)”的地方。弹出下面窗口,同样选择默 认数据,点击“OK”进入下一步。 数据设定好以后,我们可以在“Data Explorer”看到 Data Cubes 的信息如下图: Birt 报表开发手册 第 32 页共 123 页 3.6.5 向交叉表插入数据 1. 在 Data Explorer 视图中,将 Customer Cube 中的 CUSTOMER_NAME 拖拽并放置 于布局编辑器中 Cross Tab 的标有“Drop data field(s) to define rows here”的区域中。 如下图: 同第一步,将 Customer Cube 中的 PRODUCT_NAME 拖拽并放置于布局编辑器中 的 Cross Tab 中标有“Drop data field(s) to define rows here”的区域中;然后将 Customer Cube 中的 AMOUNT 拖拽并放置于布局编辑器中的 Cross Tab 中标有“Drop data field(s) to be summarized here”的区域中。上图所示: 2. 完成上述步骤之后,布局编辑器中的 Cross Tab 出现如下图中的样式:我们将 Cross Birt 报表开发手册 第 33 页共 123 页 Tab 中第二列的 AMOUNT 的标题菜单删掉。如果不去掉,就会在报表的产品标题 菜单下方出现一行“AMOUNT”的标题,,不仅多于,而且影响美观。 3.6.6 加入汇总 1. 点击 Cross Tab 左下角的“Cross Tab”图标选中本交叉表。在 Property Editor 属性编 辑器中选择“Row Area”,如下图: 在左边的选项栏中选择第二个选项“Grand Totals” 2. 点击“Add”,添加行汇总元素。弹出如下窗口: Birt 报表开发手册 第 34 页共 123 页 选用默认的数据,点击“OK”进入下一步。 3. 在 Property Editor 属性编辑器中选择“Colum Area”,同第一步加入列汇总。添加完 毕,布局编辑器出现如下视图: 这样,一张交叉汇总表基本上完成了。 3.6.7 格式化报表 格式化报表: Birt 报表开发手册 第 35 页共 123 页 预览如下图: 3.7 嵌套报表 嵌套报表其实是一种设计技巧的应用,类似编码过程中的模块化设计。当报表的复杂 程度让设计者开始觉得逻辑混乱的时候,可以使用嵌套报表设计方法,将报表拆分为多个不 同的设计页面,然后使用一个总的页面将这些设计页面整合起来展现。 此外,嵌套报表有时候也会用于主从结构的实现,通过逐层嵌套,可以实现无限层次的 主从结构数据展现。 Birt 报表开发手册 第 36 页共 123 页 本例,我们将每个客户的信息包括客户表中基本的信息以及他们的订单信息,在同一张 表中按客户一一列出来,所使用的就是嵌套报表。 报表名我们定为:nestingTab.rptdesign 3.7.1 构建数据源 本例我们使用 BIRT 自带的数据源,在新建数据源选择数据源类型为默认的第一项: Classic Model Inc,Sample Database 数据库驱动类别;org.eclipse.birt.report.data.oda.sampledb.Driver (Classic Models Inc. SampleDB Driver);URL:jdbc:classicmodels:sampledb 3.7.2 构建数据集 本例我们需要建立 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 选项。 Birt 报表开发手册 第 37 页共 123 页 双击默认参数 Pram1 或者选择“Edit”,弹出如下窗口: 输入: Name:CustID; Default Value:103; 其它默认 完成后,在 Preview Result 选项中就可看见结果预览: Birt 报表开发手册 第 38 页共 123 页 3.7.3 布局嵌套报表 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 数据集里的数据,这里用两个表来进行展现完全是为了整体布局的美观。 布局配置完毕,布局编辑器中会呈现如下图: Birt 报表开发手册 第 39 页共 123 页 3.7.4 将 Table 绑定数据集 1. 将 Table 绑定数据集: 在布局编辑器中选中主表 Table,下方出现 Table 的属性编辑器 Property Edit,选中 标题栏的 Binding 栏,从 Dat Set 中选择 payments 数据集。弹出窗口选择“Yes”即 可。点击“Ok”完成。 2. 设定排序: 接着在 Property Edit 编辑器中选中“Sorting”栏,点击“Add”添加排序变量,从 弹出窗口的下拉菜单中选择“CUSTOMERNUMBER”,即按照编号排序,排序方法 选择“Ascending”(升序)。点击“OK”完成。(读者根据实际情况的需要可以通过 同样的方法选择按照不同的变量来进行排序) 3.7.5 设定主表数据 1. 加入网格: 从选用板“Palette”视图中拖拽一个 Grid 至主表 Table 的第一行“Detail Row”中, 设定其为 4 列 1 行。 2. 插入数据: 展开选 择 数 据 资 源 管 理 器 “ Data Explorer ”, 将 数 据 集 payment 中 Birt 报表开发手册 第 40 页共 123 页 “CUSTOMERNUMBER”与“AMOUNT”两个数据项分别拖拽至我们刚插入的 Grid 的第 2 格与第 4 格中。并将其格式都设定为居左。 3. 加入数据标题 Lable 从选用板“Palette”视图中拖拽 Lable 至 Grid 的第 1 格与第 3 格中,分别输入“客 户号:”与“金额:”,并将其格式都设定为居右 设定好之后,视图如下: 3.7.6 设定子表数据 1. 设定参数绑定: 在布局编辑器中选中子表 Table,下方出现 Table 的特定编辑器 Property Edit,选中 标题栏的 Binding 栏,在“”点击按钮“Dataset Parameter Binding”,进入后双击默 认的变量进入进行设置,点击“Value”标签后的函数符号“ ”,进入如下界面: Birt 报表开发手册 第 41 页共 123 页 如图依次选择需要插入的数据,在第三个框中,双击“CUSTOMERNUMBER”进行插 入。依次点击“OK”,完成 对另外一个子表也需进行如上操作。 2. 插入数据 展 开 选 择 数 据 资 源 管 理 器 “ Data Explorer ”, 将 数 据 集 customers 中的 “CUSTOMERNAM”、“ CITY”、“ PHONE”、“ ADDRESSLINE1”拖拽至第一个子 表 Table 的第二列中,将第一列的各个单元格同样拖拽进去一个“Text”,分别输入 子项标题“客户名”、“城市”、“电话”、“住址”。然后将数据集 customers 中的 “POSTALCODE”、“ ADDRESSLINE2 ”、“ SALESREPEMPLOYEENUMBER”、 “CREDITLIMIT”拖拽至第二个子表 Table 的第二列中,将第一列的各个单元格同 样拖拽进去一个“Text”,分别输入子项标题“邮编”、“所在住所”、“雇员号”、“余 额” 这样整个嵌套报表的数据配置已经完毕,如果配置正确,布局将会如下: Birt 报表开发手册 第 42 页共 123 页 结果预览: 3.8 交互报表 交互式报表就是存在与用户交互的通道,在查询交互式报表的结果时,需要用户输 入一定的参数,输出结果就会显示出参数所对应的结果。 在本例中,我们将客户信息做成交互式报表,在用户输入客户的编号之后,我们就 会看到对应客户的信息。 Birt 报表开发手册 第 43 页共 123 页 3.8.1 创建报表、数据源 方法同上,报表名我们定位:PeportOfAlternant.rptdesign 3.8.2 创建数据集 本例我们需要建立 3 个数据集: 1. 建立数据集 CustomerId,所用 SQL 语句: select EBANK.CUSTOMER.CUSTOMER_ID, EBANK.CUSTOMER.CUSTOMER_NAME from EBANK.CUSTOMER where EXISTS (SELECT EBANK.CONTRACTSUM.CUSTOMER FROM EBANK.CONTRACTSUM WHERE EBANK.CUSTOMER.CUSTOMER_ID = EBANK.CONTRACTSUM.CUSTOMER) 2. 建立数据集 CustomerInfo:所用 SQL 语句: select EBANK.CUSTOMER.CUSTOMER_NAME, EBANK.CUSTOMER.TEL, EBANK.CUSTOMER.FAX, EBANK.CUSTOMERTYPE.TYPENAME from EBANK.CUSTOMER,EBANK.CUSTOMERTYPE where EBANK.CUSTOMER.CUSTOMERTYPE=EBANK.CUSTOMERTYPE.TYPEID and EBANK.CUSTOMER.CUSTOMER_ID = ? 输入 SQL 语句后,还要在数据集编辑窗口选择 Parameters 选项。 Birt 报表开发手册 第 44 页共 123 页 双击默认参数 Pram1 或者选择“Edit”,弹出如下窗口: 输入: Name:CustID; Default Value:’1’; 其它默认 完成后,在 Preview Result 选项中就可看见结果预览: Birt 报表开发手册 第 45 页共 123 页 建立数据集 Contract:所用 SQL 语句: select EBANK.CONTRACTSUM.AMOUNT, EBANK.PRODUCT.PRODUCT_NAME from EBANK.CONTRACTSUM,EBANK.PRODUCT where EBANK.CONTRACTSUM.PRODUCT = EBANK.PRODUCT.PRODUCT_ID and EBANK.CONTRACTSUM.CUSTOMER = ? 同上一步一样,还需对参数设置默认值,方法同上。 3.8.3 加入响应参数 1.建立好数据集之后,展开选择数据资源管理器“Data Explorer”,右键点击“Report Parameters”选择“New Parameter”,弹出如下窗口: Birt 报表开发手册 第 46 页共 123 页 输入: Name:CustId Prompt:请输入用户编号 Data Type:选择默认 String Display Type:从下拉菜单中选择 Combo Box 2. 将 Display Type 值选为 Combo Box 后,下方的“List of Value”的两个选择按钮 变亮,选择“Dynamic”,窗口变为如下: Birt 报表开发手册 第 47 页共 123 页 输入数据: Data Set:从下拉框中选择 CustomerId; Select Value Column:从下拉框中选择 CUSTOMER_ID; Select Display text:从下拉框中选择 CUSTOMER_ID; Default Value:选择

Birt 报表开发手册 第 121 页共 123 页 提交如下图: 5. Jsp 中 Parameter Definition 标签使用 parameterPage 标签的 sub tag, 支持用户自定义参数。 Birt 报表开发手册 第 122 页共 123 页 预览如下: 点击“submit form”,如下图: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="/birt.tld" prefix="birt" %> ParameterPage tag example - user

This is a user-defined parameter page.


Sample Parameter:

Birt 报表开发手册 第 123 页共 123 页 5.8 关于 BIRT 编码 BIRT 报表使用”UTF-8”编码,在通过 URL 传递参数时,都需要对参数编码 转换。如: <% String param1=java.net.URLEncoder.encode("公用信息表","UTF-8"); %> View Example
还剩122页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 30 人已下载

下载pdf

pdf贡献者

jianghu521

贡献于2012-03-19

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf