Birt 报表参数的使用

上传人:油条 文档编号:28510869 上传时间:2018-01-17 格式:DOC 页数:30 大小:973KB
返回 下载 相关 举报
Birt 报表参数的使用_第1页
第1页 / 共30页
Birt 报表参数的使用_第2页
第2页 / 共30页
Birt 报表参数的使用_第3页
第3页 / 共30页
Birt 报表参数的使用_第4页
第4页 / 共30页
Birt 报表参数的使用_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《Birt 报表参数的使用》由会员分享,可在线阅读,更多相关《Birt 报表参数的使用(30页珍藏版)》请在金锄头文库上搜索。

1、Birt 报表参数的使用2007 年 9 月 27 日Birt 是一款非常流行的开源报表开发工具。本文总结了 Birt 报表中参数机制,并结合实例详细地阐述了参数的各种使用方法,最后介绍了 Birt 报表的源代码级使用。以期为 Birt 报表使用者提供一个有益的参考。 序言参数是 birt 提供的一种很重要的机制,在 birt 中,参数具有变量的作用,它为 birt 报表的生成提供了一种灵活强大的机制。本文基于 Birt 2.1.2 讲述 Birt 报表中一些重要的用法以及 birt 源码级的参数使用机理,为报表开发者以及报表应用程序开发者提供一个参考。 本文的示例是基于 Birt RCP d

2、esigner 2.1.2 开发的,在阅读本文前,最好有 eclipse 相关经验,并且已经能够使用 Birt 插件制作一些简单报表,并了解 Birt 报表的一些基本概念,比如 Data Source(数据源),Data Set(数据集)等。基本报表制作过程可见 developerworks 相关文章 BIRT:基于 Eclipse 的报表。 本文示例使用 Birt 自带的 Sample 数据源,用到的数据基于图 1 所示的实体关系模型。从这个模型中可以看出,文中示例用到三张数据库表分别为 customers,orders 和 orderdetails。其中 customers 表的 cust

3、omernumber 字段作为外键出现在 orders 表中,而 orders 表的 ordernumber 字段做为外键出现在 orderdetails 表中。 图 1. 实体关系模型1 标量参数(Scalar parameter)在使用 BIRT 参数的时候,首先要了解 BIRT 分为报表参数和数据集参数。 报表参数定义于整个报表内,而数据集参数定义于某个数据集(Data Set)中。 数据集参数使用的时候通常需要链接到某个报表参数或者利用绑定表(binding tab)和一个嵌套表中的某个数据元素绑定。 标量参数是 Birt 报表中最简单也是最基本的一类参数,标量参数可以分为静态和动态两

4、种,其中静态参数从用户界面获得用户输入的数据值,而动态参数则可以关联至某一个数据集,因此可以获得一个数据的集合,供用户选择。 下面分别介绍这两种参数。 1.1 静态标量参数右键点击 Outline 面板中的 Report parameter 选项,在弹出的上下文菜单中点击“New parameter”,弹出图 2 所示编辑参数对话框,在 name 域输入参数的名字,本例中使用的参数名字为“customernum”,此时List of value 项默认为 static。 点击 OK 后返回到开发主界面。 图 2. 编辑参数接下来定义 Data Set。Data Set 定义的对话框如图 3 所

5、示。 在这个对话框中首先定义“Query”。 我们可以看出 Where 条件中的 customernumber 字段通过”?”代表的参数传入参数值。 图 3. 数据集中的“查询”定义点击”Parameter”,弹出在数据集中定义参数的对话框。 数据集中的参数需要链接至某一个报表参数。 在本例中将数据集参数链接至前面定义的报表参数 customernum。 点击 OK,我们就完成了数据集中参数的定义。当报表运行时,Birt 会使用由报表参数 customernum 传入的值填充 where 条件,生成结果数据集。 如图 4 所示。 图 4. 数据集中的“参数”定义1.2 动态标量参数动态参数可以

6、提供一个数据值的列表供用户选择,这种功能能够极大增强报表设计用户界面的交互性。 在本例中,我们首先定义一个数据集,这个数据集不使用参数,它从订单表中查询出所有的订单号,为报表参数提供一个数据值的列表。 如图 5 所示。 图 5. 数据集“ordernum”接下来,我们定义报表参数,这个参数链接至前面的 ordernum,因此可以根据数据集中的参数 ordernum 动态的获得可选值。 如图 6 所示。 图 6. 报表参数“ordernumpara”如图中所示参数的 display type 选成 Como Box,List of value 选择为 Dynamic,其链接至的 Data Set

7、 选择为前面定义的 ordernum 数据集,同时选定 Select value column 为数据集 ordernum 中的某个字段,这里ordernum 数据集只有一个字段,故选择为 ordernumber。 这样就将报表参数和数据集参数关联起来。但这不是我们的最终目的,我们的目的是以报表参数 ordernumpara 为中介,向另一个数据集提供参数。 因此,我们定义图 7 所示的数据集。 图 7. 数据集“ordersdetail”点击“Parameter”项,进入数据集参数定义界面,如图 8 所示。 图 8. 将数据集内的参数连接至报表参数“ordernumpara”将本数据集的参数

8、 num 链接至 ordernumpara,就完成藉由一个报表参数为中介将一个数据集的字段值链接到另一个数据集的参数的功能。 2 Cascading Parameter除了使用动态报表参数提供数据值的选择列表,报表开发过程中用户经常需要用到互相关联的参数。 比如要选择某个客户的某个订单号标识的所有订单的内容,用户并不愿意列出所有可能的订单号,比较理想的情况是给出一个客户编号的选择列表,根据这个列表的 内容再给出每个客户的所有订单号的列表,这样用户就可以选择相应的客户对应的某个订单号,从而查询出此客户的这个订单号标识的所有订单的详细内容。 Cascading parameter 一方面增强了报表

9、逻辑的功能;另一方面,通过将一部分应用逻辑转移到界面操作上,进一步降低了报表内部逻辑和 SQL 查询语句的复杂性。 首先定义一个 customer 数据集,这个数据集 包含 customernumber 和 customername 两个字段。如图 9 所示。图 9. 数据集“customer”接着定义一个名字为 orders 的数据集,如图 10 所示。 图 10. 数据集“orders”在“Orders”数据集中使用一个数据集参数,这个数据集参数将要引用接下来将要定义的层叠参数中customer 参数。 定义了以上数据集之后,我们就可以来定义层叠参数了。 右键点击 Outline 面板中的

10、 Report parameter 选项,在弹出的上下文菜单中点击“New Cascading Parameter”,弹出以下对话框,在 Cascading Parameter name 域输入参数的名字,本例中使用的参数名字为“custorder”,Data Set Model 选择为 Multi Data Set。 在紧接着的 Parameters 表中定义一个名为customer 的参数,并将其关联至 customer 这个数据集,其取值为 customer 数据集中的 customernumber 字段,这样 customer 这个层叠参数的取值就是一个 customernumber

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

12、由某个 customernumber 决定的所有可能的订单号。 如图 12 所示。 图 12. 层叠参数定义 2接下来将 orders 数据集中的参数 param1 关联至层叠参数 customer,如图 13 所示。 图 13. 关联数据集“orders”中的参数至层叠参数“Customer”最后,定义生成报表的数据集 orderdetail,如图 14 所示。 图 14. 数据集“orderdetail”然后将其局部参数 param1 关联至层叠参数 order,如图 15 所示。 这样我们就完成了具有 Cascading parameter 功能的数据集的定义。 图 15. 关联数据集“

13、Orderdetail”中的参数至层叠参数“Order”从主开发界面中将 orderdetail 数据集拖拽到主开发面板上就完成了这个简单的报表的制作。见图 16 图 16. 层叠定义完成后的主开发界面点击 preview,会弹出如图 17 所示对话框。 从这个对话框中我们可以看到层叠参数 customer 的数据是customers 数据库表中的所有客户,选定一个客户后,层叠参数 order 的列表将只出 现客户TechnicsStoreInc 的所有订单,选择其中一个订单后,就会从 orderdetail 数据表中选出这个订单号标识的所有订单的详细内 容。 图 17. 层叠参数用户界面3

14、Parameter Group在某些情况下,在创建报表的时候需要提供大量的参数,为了在界面上更加有效地对这些参数进行组织,BIRT 提供了 parameter group 的功能。 用户可以使用 parameter group 将相关的 parameter 组织在一起。 Parameter group 的使用比较简单。 首先需要创建一个 parameter group。在 outline 视图中用鼠标右键点击 report parameters 标签并选择 new parameter group。 创建完 parameter group 后便可以为其创建parameter。 为一个 param

15、eter 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 para

16、meter 与 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(InnerS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号