Birt 报表参数的使用
- 格式:doc
- 大小:969.50 KB
- 文档页数:30
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并解压(/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 下)axis.jar axis-ant.jarcommons-discovery-0.2.jar jaxrpc.jar saaj.jar wsdl4j-1.5.1.jar(复制到birt_viewer2.2\WEB-INF\lib)prototype.js(复制到birt_viewer2.2\webcontent\birt\ajax\lib下)birt2.1,2.2版本下载下来后就包含了以上所有第三方软件,你只需到相应目录下确认一下,有的话就不用管了!若没有的话就复制到相应目录下即可。
birt报表参数Birt报表参数是一种用于在Birt报表中传递数据和控制报表生成的方式。
通过使用Birt报表参数,用户可以在生成报表时输入参数值,从而实现对报表内容和显示方式的灵活控制。
本文将介绍Birt 报表参数的使用方法和注意事项。
Birt报表参数可以用于多种用途,比如用于过滤数据、控制报表显示方式或格式、动态生成报表标题等。
在使用Birt报表参数时,首先需要在报表设计中定义参数。
参数可以有多种类型,比如字符串、数字、日期等,具体类型根据需求而定。
定义参数时,可以设置参数的名称、默认值、是否可为空等属性。
在报表设计中使用参数时,可以通过参数名称引用参数的值。
在SQL查询中,可以使用参数名称作为查询条件,从而实现数据过滤。
在报表模板中,可以使用参数名称作为文本框、表格、图表等组件的属性值,从而实现动态显示和控制。
使用Birt报表参数时需要注意以下几点。
首先,确保参数的名称在整个报表中唯一,避免参数名称冲突。
其次,参数的默认值应该合理设置,以便在用户不输入参数值时有一个合理的默认行为。
另外,参数的类型和数据格式要与使用场景相匹配,避免出现数据类型不匹配或格式错误的问题。
在使用Birt报表参数时,可以通过给参数赋值的方式传递参数值。
参数值可以通过多种方式传递,比如URL参数、JavaScript脚本、数据集字段等。
在使用URL参数传递参数值时,可以通过在URL中添加参数名和参数值的方式实现。
需要注意的是,URL参数的值需要进行编码,以避免特殊字符引起的问题。
除了使用URL参数传递参数值外,还可以使用JavaScript脚本来动态设置参数值。
通过在报表模板中嵌入JavaScript脚本,可以根据需要计算参数值或从其他组件中获取参数值。
使用JavaScript脚本可以实现更加复杂和灵活的参数控制逻辑。
在报表生成时,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数据报表开发手册1. 创建模板双击BIRT应用程序以启动Birt报表设计环境,首次启动未加载任何报表开发资源。
主界面如下:根据报表设计的需要,Birt本身提供了一些常规的模板:当然,也可以根据实际需要,添加一些使用频率比较高的模板。
下面将以两张图形,一张列表,且图形在上横向排列的模板为例,创建新模板。
点击文件菜单中的新建,选择新建模板,根据实际情况修改模板名称和存储路径:为此模板添加一些附加属性,如该模板的描述信息和模板布局的预览图像等。
点击完成,开始编辑此模板的布局。
在组件按钮区域依次选取:一个标签,用于放置报表的标题,双击输入标题文本。
也可根据需要动态的文本。
一个网格:用于放置水平的两张图形,因此网格设置为2列1行。
可根据实际情况调整。
一张表:用于放置数据报表,明细数据列设置为8列1行。
可根据实际情况调整。
关于组件的使用,将在后面的章节中具体说明。
用鼠标右击网格中的其中一个空白处,依次选择插入,图表。
在弹出的对话框中选取需要的图形。
同样的方法处理另外网格的另外一个。
有关图形的制作,将在图形报表开发手册中详细说明。
设置每种组件的属性,在OutLine窗口中选中已经拖放的组件,根据需要对其相应的属性进行调整。
如字体大小,颜色,对齐方式,样式等设置完成后,模板样式如下:保存模板的配置信息,以便在以后的报表开发中可以直接读取该模板。
2. 新建共享资源库在Birt的资源管理器中添加一些共享资源,如共享库:在弹出的对话框中输入Library库文件的保存路径和名称:确定后,Library库的创建完成。
如果操作无误,可以在对应的目录下浏览到新建的库。
3. 新建数据源在共享库中新建一个制作报表需要的数据库连接,以Oracle9i数据库连接为例,需要先配置数据驱动(数据库的驱动程序配置方法已经在报表设计器的配置手册文档中体现)。
然后在新建的库中,用鼠标右击数据源,选择新建数据源:在弹出的对话框中选择对应数据源类型,并为该数据源命名:选择正确的数据库驱动和URL后,就可以进行数据库的连接测试:可以根据报表需要,创建一个或者多个数据源的配置:数据源创建完成后,可以通过选择选择资源管理器中共享资源,Library库下新建的数据源,右击鼠标选择添加到报表,将新建数据源添加值报表中供使用。
目录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报表参数是一种用于生成动态报表的工具,它可以根据用户的需求来动态地改变报表的内容和显示方式。
在本文中,我将介绍BIRT报表参数的一些基本概念和使用方法。
让我们来了解一下什么是BIRT报表参数。
BIRT报表参数是一种用于传递数据给报表的方式,它可以让用户在生成报表时输入一些参数值,从而影响报表的生成结果。
比如,我们可以通过报表参数来过滤数据、排序数据、设置报表的标题等等。
在BIRT中,报表参数的定义是在数据源上的,我们可以在数据源中定义一些参数,并在报表设计中使用这些参数。
当用户生成报表时,系统会提示用户输入参数值,并根据参数值来生成报表。
在使用BIRT报表参数时,首先需要在报表设计中定义参数。
定义参数的方式是在报表设计的参数视图中添加一个新的参数,并设置参数的名称、数据类型、默认值等属性。
参数的数据类型可以是字符串、整数、日期等,根据实际需求来设置。
定义好参数后,我们可以在报表设计的其他地方使用这个参数。
比如,我们可以将参数值作为过滤条件来过滤数据,或者将参数值作为标题的一部分来显示在报表上。
在使用BIRT报表参数时,我们可以通过多种方式来传递参数值。
一种常见的方式是通过URL传递参数值。
在URL中,我们可以使用参数名和参数值的键值对来传递参数值。
比如,我们可以使用以下URL来传递参数值:```http://localhost:8080/birtviewer/frameset?__report=report.rpt design¶m1=value1¶m2=value2```在上面的URL中,param1和param2是参数的名称,value1和value2是参数的值。
通过这种方式,我们可以在生成报表时动态地传递参数值。
除了通过URL传递参数值,我们还可以通过其他方式来传递参数值。
比如,我们可以在程序中使用API来设置参数值,或者在报表生成界面上手动输入参数值。
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以上版本了,就是这个原因网上很多资料都不是很适合这个版本,所以我走了很多弯路,希望看到此文档的人能比我少走弯路,这也是我写这个文档的原因之一。
birt报表例子BIRT(Business Intelligence and Reporting Tools)是一种开源的报表设计工具,它能够在Java环境下生成高度交互式的报表。
BIRT报表设计工具提供了简单易用的界面,使用户能够方便地创建和自定义各种类型的报表。
在本篇文章中,我们将介绍几个BIRT报表的例子,以帮助读者更好地理解和使用BIRT报表工具。
例子一:销售报表假设我们正在使用一个电商平台来销售商品,并且我们想要分析销售数据以了解最受欢迎的产品和销售业绩。
我们可以使用BIRT报表工具来设计一个销售报表。
该报表可以显示每个产品的销售数量、销售额和销售额占总销售额的比例。
此外,我们可以根据时间过滤数据,比如选择一个特定的月份或者一个特定的时间段。
通过这个报表,我们可以轻松地分析销售数据,以便做出更好的商业决策。
例子二:库存报表假设我们在一个仓库管理系统中,我们想要生成一个库存报表,以了解每个产品的库存情况。
我们可以使用BIRT报表工具来设计一个库存报表。
该报表可以显示每个产品的库存数量、已销售数量和剩余数量。
我们还可以根据产品类别进行分组,并在报表中显示每个类别的总库存数量。
通过这个报表,我们可以很方便地查看和比较不同产品的库存情况,从而更好地管理库存。
例子三:员工绩效报表假设我们是人力资源部门的负责人,我们想要评估员工的绩效以便做出合适的奖励和提升决策。
我们可以使用BIRT报表工具来设计一个员工绩效报表。
该报表可以显示每个员工的绩效评分、销售额和完成的项目数量。
我们还可以在报表中显示各个部门的平均绩效评分和总销售额。
通过这个报表,我们可以更准确地评估员工的表现,并制定相应的奖励和晋升策略。
例子四:学生考试成绩报表假设我们是一所学校的教务处老师,我们想要生成一个学生考试成绩报表,以便分析学生的表现和制定有针对性的教学计划。
我们可以使用BIRT报表工具来设计一个学生考试成绩报表。
该报表可以显示每个学生的各科成绩和总成绩,并可以根据性别、年级或班级进行分组。
birt scriptdatasource传递参数Birt是一款强大的开源业务智能报表工具,它提供了很多功能和特性来满足不同业务需求。
其中,ScriptDataSource是Birt报表设计中常用的数据源类型之一,而参数传递则是Birt报表设计的重要组成部分。
本文将讨论如何使用Birt ScriptDataSource传递参数。
首先,我们需要理解什么是Birt ScriptDataSource。
ScriptDataSource是一种自定义的数据源类型,它允许我们通过脚本来定义和执行数据查询。
与常规的数据源不同,ScriptDataSource的查询可以通过动态的、自定义的脚本来完成。
这使得我们可以在报表运行时动态地生成查询语句,从而满足更加复杂的数据需求。
要在Birt中使用ScriptDataSource传递参数,我们需要执行以下步骤:1. 创建数据集(Data Set)首先,我们需要创建一个数据集来定义数据的结构和查询。
可以在报表设计的“数据”选项卡中创建数据集。
2. 选择ScriptDataSource在数据集的属性设置中,选择“Scripted Data Source”作为数据源类型。
这样,我们就可以使用自定义的脚本来定义数据源。
3. 编写JavaScript脚本接下来,我们需要编写JavaScript脚本来定义和执行数据查询。
可以在数据集的脚本选项卡中编写脚本。
4. 添加参数在脚本中,我们可以定义参数来传递给数据查询。
通过添加参数,我们可以动态地设置查询条件。
可以使用以下代码来定义一个参数:```params["parameterName"] = value;```在value中,我们可以使用动态的值来设置参数,例如从报表参数中获取的值、计算的结果等等。
5. 执行数据查询在脚本中,我们可以通过查询语句来获取数据,并将结果存储在数据集中。
可以使用以下代码来执行查询并将结果存储在数据集中:```var resultSet = /*执行查询的代码*/;resultSet.getRowSet().setDataSource(dataset);dataSet.setRowSet(resultSet.getRowSet());```6. 使用参数传递数据在JavaScript脚本中,我们可以使用定义的参数来传递数据。
Birt报表使用指南1Birt的安装方法把birt整合到了M yeclips e6.5中,(ec lips e的官方网站上提供有一个bi rt-rep ort-design er-all-in-o ne-2_2_2.zip,你直接解压缩这个就可以了,就免去了birt与My ec lipse6.5的整合)。
如果要把bi rt安装到Myecl ipse6.5中,要注意一些事情1.1ecl ip se的版本就是说你的eclipse版本要和适当的bir t版本配合,当前bi rt的最新稳定版是b irt2.3。
如果使用的是ec lips e3.3版本,你应该用bir t-repo rt-framewo rk-2_2_2.zi p,如果使用的是eclipse3.4,你应该用birt-report-f ra mework-2_3_0.zip版本不一致会出一些问题。
1.2在Myec lipse6.5中装birt。
My Eclipse6.5自带的是ecli pse3.3,所以只能下载birt-re port-fra me work-2_2_2.zip (下载地址:http://do wnlo ad.ecl ips /b ir t/downloa ds/index2.2.2.php)而birt-repo rt-frame wo rk-2_3_0.z ip是针对e clip se3.4的。
把下载下来的birt-r epo rt-fram ew ork-2_2_2.zip包解压,解压后的feature s文件夹下的所有文件拷贝到MyEcl ip se6.5安装目录下的..\my ecli pse\e clips e\fe atures 下,解压后的plug in s文件夹下的所有文件拷贝到..\my eclipse\ec lipse\plug ins下。
1、序言参数是birt 提供的一种很重要的机制,在birt 中,参数具有变量的作用,它为birt 报表的生成提供了一种灵活强大的机制。
本文基于Birt 2.1.2 讲述Birt 报表中一些重要的用法以及birt 源码级的参数使用机理,为报表开发者以及报表应用程序开发者提供一个参考。
本文的示例是基于Birt RCP designer 2.1.2 开发的,在阅读本文前,最好有eclipse 相关经验,并且已经能够使用Birt 插件制作一些简单报表,并了解Birt 报表的一些基本概念,比如Data Source(数据源),Data Set(数据集)等。
本文示例使用Birt 自带的Sample 数据源,用到的数据基于图1 所示的实体关系模型。
从这个模型中可以看出,文中示例用到三张数据库表分别为customers,orders 和o rderdetails。
其中customers 表的customernumber 字段作为外键出现在orders 表中,而orders 表的ordernumber 字段做为外键出现在orderdetails 表中。
图1. 实体关系模型2、标量参数(Scalar parameter)在使用BIRT 参数的时候,首先要了解BIRT 分为报表参数和数据集参数。
报表参数定义于整个报表内,而数据集参数定义于某个数据集(Data Set)中。
数据集参数使用的时候通常需要链接到某个报表参数或者利用绑定表(binding tab)和一个嵌套表中的某个数据元素绑定。
标量参数是Birt报表中最简单也是最基本的一类参数,标量参数可以分为静态和动态两种,其中静态参数从用户界面获得用户输入的数据值,而动态参数则可以关联至某一个数据集,因此可以获得一个数据的集合,供用户选择。
下面分别介绍这两种参数。
2.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会使用由报表参数customer num传入的值填充where条件,生成结果数据集。
如图4所示。
图4. 数据集中的“参数”定义2.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数据集只有一个字段,故选择为ordern umber。
这样就将报表参数和数据集参数关联起来。
但这不是我们的最终目的,我们的目的是以报表参数ordernumpara为中介,向另一个数据集提供参数。
因此,我们定义图7所示的数据集。
图7. 数据集“ordersdetail”点击“Parameter”项,进入数据集参数定义界面,如图8所示。
图8. 将数据集内的参数连接至报表参数“ordernumpara”将本数据集的参数num链接至ordernumpara,就完成藉由一个报表参数为中介将一个数据集的字段值链接到另一个数据集的参数的功能。
3、Cascading Parameter除了使用动态报表参数提供数据值的选择列表,报表开发过程中用户经常需要用到互相关联的参数。
比如要选择某个客户的某个订单号标识的所有订单的内容,用户并不愿意列出所有可能的订单号,比较理想的情况是给出一个客户编号的选择列表,根据这个列表的内容再给出每个客户的所有订单号的列表,这样用户就可以选择相应的客户对应的某个订单号,从而查询出此客户的这个订单号标识的所有订单的详细内容。
Cascading parameter 一方面增强了报表逻辑的功能;另一方面,通过将一部分应用逻辑转移到界面操作上,进一步降低了报表内部逻辑和SQL查询语句的复杂性。
首先定义一个customer数据集,这个数据集包含customernumber和customernam e两个字段。
如图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这个层叠参数也将成为一个动态参数,它也成为一个数据值的选择列表,这个列表的值是由某个customer number决定的所有可能的订单号。
如图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所示对话框。
从这个对话框中我们可以看到层叠参数c ustomer的数据是customers数据库表中的所有客户,选定一个客户后,层叠参数order的列表将只出现客户TechnicsStoreInc的所有订单,选择其中一个订单后,就会从orderdet ail数据表中选出这个订单号标识的所有订单的详细内容。
图17. 层叠参数用户界面4、Parameter Group在某些情况下,在创建报表的时候需要提供大量的参数,为了在界面上更加有效地对这些参数进行组织,BIRT提供了parameter group的功能。
用户可以使用parameter grou p将相关的parameter组织在一起。
Parameter group的使用比较简单。
首先需要创建一个parameter group。
在outline 视图中用鼠标右键点击report parameters标签并选择new parameter group。
创建完pa rameter group后便可以为其创建parameter。
为一个parameter group创建parameter 有两种方式。
一种方式是用鼠标右键点击parameter group标签并选择new parameter创建新的parameter;另一种方式是将已有的parameter添加入parameter group,只需要使用鼠标将所需要的parameter拖拽入parameter group中。
如图18所示是parameter gr oup的一个例子。
图18. Parameter Group示例5、使用parameter实现nested tables前面的例子展示了如何将BIRT中的report parameter与data set parameter进行bi nding。
作为BIRT parameter的另一个例子,我们下面通过介绍data set parameter与d ata colummn的binding实现nested tables。
本节将通过JDBC Dataset和Scripted Da taset分别介绍实现过程。
Nested table主要用于存在外键关联的两个或几个表。
比如customer与order是1:N的关系,order表中存在外键custmernumber。
有些时候,我们要将customer与相应o rder的信息一起进行展现,这时就需要使用nested table。
5.1、使用JDBC Data Sets首先,在Birt数据源的基础上创建两个数据集CustomerSet(OuterSet)和OrderSet (InnerSet)。