birt报表技巧

合集下载

birt报表参数

birt报表参数

birt报表参数Birt报表参数是一种用于在Birt报表中传递数据和控制报表生成的方式。

通过使用Birt报表参数,用户可以在生成报表时输入参数值,从而实现对报表内容和显示方式的灵活控制。

本文将介绍Birt 报表参数的使用方法和注意事项。

Birt报表参数可以用于多种用途,比如用于过滤数据、控制报表显示方式或格式、动态生成报表标题等。

在使用Birt报表参数时,首先需要在报表设计中定义参数。

参数可以有多种类型,比如字符串、数字、日期等,具体类型根据需求而定。

定义参数时,可以设置参数的名称、默认值、是否可为空等属性。

在报表设计中使用参数时,可以通过参数名称引用参数的值。

在SQL查询中,可以使用参数名称作为查询条件,从而实现数据过滤。

在报表模板中,可以使用参数名称作为文本框、表格、图表等组件的属性值,从而实现动态显示和控制。

使用Birt报表参数时需要注意以下几点。

首先,确保参数的名称在整个报表中唯一,避免参数名称冲突。

其次,参数的默认值应该合理设置,以便在用户不输入参数值时有一个合理的默认行为。

另外,参数的类型和数据格式要与使用场景相匹配,避免出现数据类型不匹配或格式错误的问题。

在使用Birt报表参数时,可以通过给参数赋值的方式传递参数值。

参数值可以通过多种方式传递,比如URL参数、JavaScript脚本、数据集字段等。

在使用URL参数传递参数值时,可以通过在URL中添加参数名和参数值的方式实现。

需要注意的是,URL参数的值需要进行编码,以避免特殊字符引起的问题。

除了使用URL参数传递参数值外,还可以使用JavaScript脚本来动态设置参数值。

通过在报表模板中嵌入JavaScript脚本,可以根据需要计算参数值或从其他组件中获取参数值。

使用JavaScript脚本可以实现更加复杂和灵活的参数控制逻辑。

在报表生成时,Birt报表引擎会根据参数的定义和传递的参数值来生成报表。

报表生成过程中,Birt报表引擎会根据参数值对报表进行相应的数据过滤、显示控制或格式化处理。

Birt+报表参数的使用

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报表参数

birt报表参数BIRT报表参数是一种用于生成动态报表的工具,它可以根据用户的需求来动态地改变报表的内容和显示方式。

在本文中,我将介绍BIRT报表参数的一些基本概念和使用方法。

让我们来了解一下什么是BIRT报表参数。

BIRT报表参数是一种用于传递数据给报表的方式,它可以让用户在生成报表时输入一些参数值,从而影响报表的生成结果。

比如,我们可以通过报表参数来过滤数据、排序数据、设置报表的标题等等。

在BIRT中,报表参数的定义是在数据源上的,我们可以在数据源中定义一些参数,并在报表设计中使用这些参数。

当用户生成报表时,系统会提示用户输入参数值,并根据参数值来生成报表。

在使用BIRT报表参数时,首先需要在报表设计中定义参数。

定义参数的方式是在报表设计的参数视图中添加一个新的参数,并设置参数的名称、数据类型、默认值等属性。

参数的数据类型可以是字符串、整数、日期等,根据实际需求来设置。

定义好参数后,我们可以在报表设计的其他地方使用这个参数。

比如,我们可以将参数值作为过滤条件来过滤数据,或者将参数值作为标题的一部分来显示在报表上。

在使用BIRT报表参数时,我们可以通过多种方式来传递参数值。

一种常见的方式是通过URL传递参数值。

在URL中,我们可以使用参数名和参数值的键值对来传递参数值。

比如,我们可以使用以下URL来传递参数值:```http://localhost:8080/birtviewer/frameset?__report=report.rpt design&param1=value1&param2=value2```在上面的URL中,param1和param2是参数的名称,value1和value2是参数的值。

通过这种方式,我们可以在生成报表时动态地传递参数值。

除了通过URL传递参数值,我们还可以通过其他方式来传递参数值。

比如,我们可以在程序中使用API来设置参数值,或者在报表生成界面上手动输入参数值。

解决Birt等报表工具制作报表的几个难题

解决Birt等报表工具制作报表的几个难题

解决Birt等报表工具制作报表的几个难题在本文中我们再继续讨论几个类似的制作难题,并把说明集中在如何编写集算器 SPL 脚本上,不再赘述如何在 Birt 中引入 SPL 的步骤了。

1. 组内跨行计算组内跨行计算是指在计算一行中某个计算列的值时,需要引用到组内其它行的数据来进行计算。

比如下面这个例子:库表 sample 有三个字段,其中 id 是分组字段。

需要设计一张分组表,使用id 分组,明细字段是v1,v2 以及计算列crossline, 其中crossline 的算法是本条记录 v1、v2 之和加上本组上一条记录的 v1、v2 之和。

示例源数据如下:最后要展现的报表结果如下图所示:编写集算器 SPL 代码如下:A1 连接数据库A2 查询数据库,同时多产生一列常数备用。

A3 按id 分组,并在每组数据中修改计算列crossline,最后合并,其中v1[-1]、v2[-1] 是集算器特有的定位上一行记录中字段的写法。

A4 关闭数据库A5 将 A2 中的计算结果数据集返回给报表工具2. 跨库数据源制作报表的数据往往来自于多种数据源,比如不同的物理数据库、文本文件、Excel 文件等,这些数据在报表中往往还需要相互关联进行运算。

报表工具本身能实现从多数据源取数,但进行关联运算会有一定的困难,或者运算性能非常差。

而由开发者自己编程去做关联运算,工作量一般又会非常大。

而集算器 SPL 恰恰能在这一点帮上大忙。

下面这个例子中,订单表 orders 和订单明细表 orderDetail 数据分别来自两个不同的数据库,二者之间要做join 运算。

两表数据如下:最后想要展现的报表结果如下:编写集算器 SPL 代码如下:A1 连接数据库 1A2 连接数据库 2A3 查询订单表数据A4 查询订单明细表数据A5A6 关闭数据库连接A7 以 A3 的 orderID 和 A4 的 orderID 为主键进行 left join,连接后的结果集有两个字段,第一个字段是 A3 的记录,第二个字段是A4 的记录。

BIRT中图表的设置

BIRT中图表的设置

BIRT中图表的设置——饼图、折线图、柱形图一、饼图首先配置好数据源、数据集。

将面板中的图表拖到设计页面中的适当位置,选择图表类型为饼图,3D效果可以选择,图片格式也可以选择(一般默认即可)。

如下图点击下一步,进入数据选择阶段。

选择数据集,然后设置“Category Definition”和“SliceSize Definition”,点击“Category Definition”后的图标,进入分组和排序窗口,将分组中“Enabled”的勾去掉,如图若想饼图中的组成部分有一定的间距,可在图表格式“Format Chart”页面左边的树中选择“Value Series”,在“By Distance”项中设置间距。

如图:二、折线图线图和饼图类似,先配置好数据源、数据集,然后选择图表类型为拆线图。

然后配置横轴(X轴)和纵轴(Y轴)。

若有多项需要比较,可在配置Y轴时选择“< New Series…>”创建多条项目,并指定数据项。

如图:若想设置Y轴的起始刻度不从0开始,可在图表格式页面左边的树中选择“Y-Axis”项,在右边的页面中点击“Scale”按钮,在出现的窗口中设置步长、最小/大刻度等。

如图:三、柱形图和前面一样,先配置好数据源、数据集,然后选择图表类型,类型选择为柱形图。

跟折线图类似,指定X轴和Y轴的数据项。

若有多项需要比较,可在配置Y轴时选择“< New Series…>”创建多条项目,并指定数据项。

如图:若想设置Y轴的起始刻度不从0开始,可在图表格式页面左边的树中选择“Y-Axis”项,在右边的页面中点击“Scale”按钮,在出现的窗口中设置步长、最小/大刻度等。

如图:若想图例的显示标题,可在图表格式页面左边的树中选择“Series ”项,在右边的页面中进行设置。

如图:。

birt教程之交叉报表

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_IDand EBANK.CONTRACTSUM.PRODUCT= EBANK.PRODUCT.PRODUCT_ID2.如果创建正确,在结果预览窗口“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:选择相关的数据集。

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

birt报表初级教程之网格报表

birt报表初级教程之网格报表

birt报表初级教程之网格报表birt报表初级教程之网格报表网格报表网格报表是报表最通用的模式,在大多数报表中,都需要或部分需要将一组(多条)数据结构完全相同的数据以表格形式顺序展现出来。

如:通过此例我们先来看一看如何制作一张简单的报表。

我们需要建立一张显示所有银行客户及其相关信息的的报表。

创建数据源方法同上例3.2.创建数据集方法同上例3.3.数据集名称为:Customer。

客户的信息存在CUSTOMER表中,我们需要输入如下语句:selectEBANK.CUSTOMERTYPE.TYPENAME,EBANK.CUSTOMER.* from EBANK.CUSTOMER,EBANK.CUSTOMERTYPEwhere EBANK.CUSTOMER.CUSTOMERTYPE=EBANK.CUSTOMERTYPE.TYPEID对报表进行布局1.在本过程中,您在报告页中插入元素以显示先前创建的数据集的数据。

先插入一个表元素,然后在该表中插入数据元素。

2.选择选用板“Palette”。

选用板显示所有可布置在报告中的元素。

3.为了以后的表布局美观,我们先从选用板中的“Gird”元素拖拽放入布局编辑器内(即文件的“Layout”视图)的报告中,插入时提示您要制定创建的行列数的详细信息:输入1列2行,4.然后,将选用板中的表元素“Table”拖放到布局编辑器内的报告中。

插入表提示您指定要对此表创建的列数和详细信息行数。

指定5列和1个详细信息行,然后选择“确定”。

具有5列和1个详细信息行的表将出现在布局编辑器中。

现在,您就可以在该表中插入数据了。

5.选择数据资源管理器Data Explorer视图。

在Data Explorer 视图中,展开“Data Sets”,然后展开Customers,在查询中指定的列将出现在Customers 下面。

将CUSTOMER_NAME从Data Explorer中拖放到表的详细信息行“Detail Row”中的第一个单元格内(如下图)。

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

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

birt报表初级教程之嵌套报表嵌套报表嵌套报表其实是一种设计技巧的应用,类似编码过程中的模块化设计。

当报表的复杂程度让设计者开始觉得逻辑混乱的时候,可以使用嵌套报表设计方法,将报表拆分为多个不同的设计页面,然后使用一个总的页面将这些设计页面整合起来展现。

此外,嵌套报表有时候也会用于主从结构的实现,通过逐层嵌套,可以实现无限层次的主从结构数据展现。

本例,我们将每个客户的信息包括客户表中基本的信息以及他们的订单信息,在同一张表中按客户一一列出来,所使用的就是嵌套报表。

报表名我们定为:nestingTab.rptdesign构建数据源本例我们使用BIRT自带的数据源,在新建数据源选择数据源类型为默认的第一项:Classic Model Inc,Sample Database数据库驱动类别;org.eclipse.birt.report.data.oda.sampledb.Driver(ClassicModels Inc.SampleDB Driver);URL:jdbc:classicmodels:sampledb构建数据集本例我们需要建立2个数据集:1.建立数据集payments,所用SQL语句:(这里我们加入条件选择订单大于150000)select CUSTOMERNUMBER,sum(AMOUNT)amountfrom CLASSICMODELS.PAYMENTSgroup by CUSTOMERNUMBERhaving sum(AMOUNT)>150000order by amount desc2.建立数据集customers:所用SQL语句:select*from CLASSICMODELS.CUSTOMERS whereCLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER=?输入SQL语句后,还要在数据集编辑窗口选择Parameters选项。

双击默认参数Pram1或者选择“Edit”,弹出如下窗口:输入:Name:CustID;Default Value:103;其它默认完成后,在Preview Result选项中就可看见结果预览:布局嵌套报表1.同上例,先在布局编辑器中建立一个1列2行的Grid。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18: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版本下载下来后就包含了以上所有第三方软件,你只需到相应目录下确认一下,有的话就不用管了!若没有的话就复制到相应目录下即可。

另外,将iText.jar和prototype.js两个文件复制到birt_viewer2.2根目录下面。

4、复制数据库驱动jar:根据自己实际使用的数据库,将相应的数据库驱动jar文件复制到birt_viewer2.2\WEB-INF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc_2.2.0.v20070615\drivers下面。

5、将设计好的报表*.rptdesign文件复制到birt_viewer2.2文件夹下。

然后就可以通过http://localhost:8080/birt_viewer2.2/frameset?__report=*.rptdesign在浏览器中访问报表了。

如何在Tomcat中配置使得能显示Birt Chart报表Birt报表在Tomcat中的部署指的是如何将设计好的Birt报表集成到Tomcat应用服务器中,使得能通过浏览器访问Birt报表。

网上大多关于Birt的资料中对如何部署都用的是同一个方法,即:1、从网上下载birt-runtime-version.zip并解压(/birt/downloads/build.php?build=R-R1-2_1_3-20070 7051847)。

2、将解压后根目录中的WebViewerExample文件加复制到Tomcat根目录下的webapps 下面,并更名为birt_viewer2.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版本下载下来后就包含了以上所有第三方软件,你只需到相应目录下确认一下,有的话就不用管了!若没有的话就复制到相应目录下即可。

4、复制数据库驱动jar:根据自己实际使用的数据库,将相应的数据库驱动jar文件复制到birt_viewer2.2\WEB-INF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc_2.2.0.v20070615\drivers下面。

5、将设计好的报表*.rptdesign文件复制到birt_viewer2.2文件夹下。

然后就可以通过http://localhost:8080/birt_viewer2.2/frameset?__report=*.rptdesign在浏览器中访问报表了。

网上提供的部署方法基本上都是以上三个步骤,再也没有详细的方法!!!我按照以上步骤配置好之后,将设计好的报表文件userlist.rptdesign复制到birt_viewer2.2下面。

userlist.rptdesign将数据库中的数据以表形式显示。

然后通过http://localhost:8080/birt_viewer2.2/frameset?__report=userlist.rptdesign访问成功。

charttest.rptdesign是设计好的chart报表。

同样通过以上方式访问,死活访问不成功,显示不了图片。

在网上找了好久都没有找到解决的方法。

一直很郁闷!!!下面我介绍一种解决方法,也是我自己的经验吧,此方法只在版本2.2上测试通过:前面的4步和上面一样。

5、从网上下载birt-charts-2_2_0.zip6、将birt-charts-2_2_0\DeploymentRuntime\ChartEngine下的所有jar文件复制到Tomcat的common\lib下面。

将birt-charts-2_2_0\DeploymentRuntime\chart-viewer-sample.war\WEB-INF\lib下的所有文件复制到birt_viewer2.2\WEB-INF\lib下面。

7、然后再将chart报表文件charttest.rptdesign复制到birt_viewer2.2下面。

访问方式和以上一样:这样就就可以成功地在浏览器中看到图片了。

Birt报表发布学习心得 2008-08-07 17:51:36 阅读225 评论0 字号:大中小1、先下载birt-runtime-2.1.3.zip2、将其解压,把目录下的WebViewerExample文件夹复制到Tomcat主目录下的webapps目录下,并改名为birtApp.3、复制第三方软件:∙itext-1.5.2.jar:复制到birtApp\WEB-INF\platform\plugins\com.lowagie.itext\lib ∙数据库驱动(mysql为例)mysql-connector-java-5.0.5-bin.jar:复制到birtApp\WEB-INF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc_2.1.1.v20070705-1847\drivers不过我用的2.1.3版本不用复制itext-1.5.2.jar,相应目录下面都有,也不用复制其他的jar文件。

但数据库驱动的jar文件一定要复制(不过报表中没用到数据库访问的话就不用了)!4、启动Tomcat,在浏览器中输入http://lcoalhost:8080/birtApp/在首页中点击"View Example",若正常进入,则说明成功。

5、发布做好的报表文件:将制作好的报表文件如chart.rptdesign复制到birtApp下,在浏览器中输入:http://localhost:8080/birtApp/run?__report=chart.rptdesign就可以访问了。

6、访问报表:http://localhost:8080/birtApp/frameset?__report=报表文件路径这个web应用支持2个动作:∙frameset,以frameset的形式显示报表。

这个界面包含一些frame,如页面导航,报表主体在其中的一个frame中显示;使用形式:http://localhost:8080/birtApp/frameset?__report=报表文件路径&参数=........∙run,报表以一个单独的html页面或pdf显示,由于这种形式没有frmaeset,因此使用者必须自己提供相应的参数,如报表参数,页号等。

使用形式:http://localhost:8080/birtApp/run?__report=报表文件路径&参数=........对于以上2个动作,以下列出可用的参数:∙__format:报表输出格式:html或pdf,缺省是html。

对于frameset不起作用。

∙__isnull:指明一个参数是null,常用于字符串类型。

如果提供参数且值为空: - 对于日期和数字类型,BIRT会将它们当作null处理。

- 对于字符串,BIRT会将它作为空字符串。

因此,为了说明某个字符串是null,通常写为:__isnull=参数。

∙__locale:本地化选项,缺省是jvm的locale。

∙__report:报表设计文件路径。

∙报表参数:报表参数参数值对,形式:参数名=参数值。

相关文档
最新文档