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 报表参数的使用 (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报表参数时,我们可以通过多种方式来传递参数值。
一种常见的方式是通过URL传递参数值。
在URL中,我们可以使用参数名和参数值的键值对来传递参数值。
比如,我们可以使用以下URL来传递参数值:```http://localhost:8080/birtviewer/frameset?__report=report.rpt design¶m1=value1¶m2=value2```在上面的URL中,param1和param2是参数的名称,value1和value2是参数的值。
通过这种方式,我们可以在生成报表时动态地传递参数值。
除了通过URL传递参数值,我们还可以通过其他方式来传递参数值。
比如,我们可以在程序中使用API来设置参数值,或者在报表生成界面上手动输入参数值。
解决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中图表的设置——饼图、折线图、柱形图一、饼图首先配置好数据源、数据集。
将面板中的图表拖到设计页面中的适当位置,选择图表类型为饼图,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教程之交叉报表交叉报表构建数据源方法同上。
构建数据集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报表初级教程之网格报表网格报表网格报表是报表最通用的模式,在大多数报表中,都需要或部分需要将一组(多条)数据结构完全相同的数据以表格形式顺序展现出来。
如:通过此例我们先来看一看如何制作一张简单的报表。
我们需要建立一张显示所有银行客户及其相关信息的的报表。
创建数据源方法同上例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报表初级教程之嵌套报表嵌套报表嵌套报表其实是一种设计技巧的应用,类似编码过程中的模块化设计。
当报表的复杂程度让设计者开始觉得逻辑混乱的时候,可以使用嵌套报表设计方法,将报表拆分为多个不同的设计页面,然后使用一个总的页面将这些设计页面整合起来展现。
此外,嵌套报表有时候也会用于主从结构的实现,通过逐层嵌套,可以实现无限层次的主从结构数据展现。
本例,我们将每个客户的信息包括客户表中基本的信息以及他们的订单信息,在同一张表中按客户一一列出来,所使用的就是嵌套报表。
报表名我们定为: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。
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.描述分组报表就是将报表中的数据按组显示,即将数据列中相同项合并为一组显示,如下图最简单的分组报表:2.制作步骤2.1新建报表,添加数据集新建工作簿,添加数据集,SQL语句为:SELECT*FROM[销量]。
birt报表修改表格宽度的学习总结
修改birt报表的表格宽度的学习总结一、原因Birt做的报表表格宽度是根据表格里面的内容自动显示宽度,每列的宽度是与表头(header的label)或者表body(detail的data)里面内容最多的一格的宽度一致,有时候表头里面文字很长,但是该表头的那一列表body里面的内容却很少,就照成了除表头以外,body下面每一格特别的空,这样的列若是比较多的话表格就很不好看,而且浪费空间,以我碰到的问题为例,如图:这个报表分为两部分,前一部分是直接用报表设计器设计的,表头是居顶的,后一部分是用代码加上去的,表头居中,而且他的内容全是数字,相对来说比较少,感觉空的地方很多,看上去不美观。
二、试着调试由于网上资料比较少,我自己调试时都是自己摸索的,可能有些地方不是很简洁,但是效果还是出来了。
(1)、首先调整直接用报表设计器设计的报表,可以有两种方法调试,1.第一种是手工代码调试:xml resource先调整表头,所以在<header>下面的你想设计宽高的那一列下面,添加属性,根据里面的内容设计宽和高,这里我设计的是宽1.5cm,高0.7cm,注意是在label下面添加设置语句,:<property name="height">0.7cm</property><property name="width">1.5cm</property>如图:点击table,然后选中你想要调整的那一行或者那一列,打开属性编辑器(birt 高级版本可以右击哪一行或者列直接打开,低版本的需要点击eclipse左下角的下面的属性版本)想要修改那一行或者列的宽或者高时,先以调整列宽为例,选中一列,在属里面,调整行高度跟列宽度类似,这里就不写出来了。
(2)调整由代码插入进来的行宽列高这个就比较简单,在插入列以及header下直接写代码MyLable.setWidth(“1.5”);myLabel.setHeight("0.7cm");myDataItem2.setHeight("0.3cm");myDataItem2.setWidth("1.5cm");myDataItem2以及myLabel是我自己的对象,大家改的时候用自己的对象调用方法。
birt报表使用简要说明
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下。
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年每个雇员,每月订单金额。
BIRT报表工具的使用总结
目录
什么是BIRT 为什么选择BIRT
如何使用BIRT
实操环境
/birt
birt-rcp-report-designer .zip 报表制作工具 birt-runtime.war 可以集成在JAVA项目中
客户端的官方例子
运行后,可以显示下面的view
设置-Aggegation聚合计算
设置-排序
if( params["srt"].value == "firstcol" ){row["CUSTOMERNUMBER"];} else if( params["srt"].value == "secondcol"){row["CUSTOMERNAME"];} else if( params["srt"].value == "thirdcol"){row["CONTACTLASTNAME"];}
高级-复用公共库
2.对选中的元素 进行套用自己定 义css
高级-业务类处理数据
高级-通过参数
传参数的场景 目地是通过不同的查询条件,过滤数据源 1.直接数据源就是使用参数变成带条件的查询 2.根据各列排训 3.数据源不变,只要过滤掉一些数据
高级-参数跳转
高级-连接
参数就是全局变量,可以URL替换实现数据更改
交叉表
交叉报表是报表当中常见的类型,属于基本的报表,是行、列方向都有分 组的报表。 行和列的交叉处可以对数据进行多种汇总计算,如:求和、平均值、记数、 最大值、最小值等。
学习关键点: 1. 见帮助里面的例子比较简单 , 只要确认好行、 列的分组项,和要计算的数值 2. 时间维度也非常简单,只要字段是日期型的, 直接拖进去就可以了
BIRT报表开发手册详解
开源报表BlRT开发手册北京宇信易诚科技有限公司2007-08-23目录1Birt 介绍 (5)U 报表介绍 (5)1.2基本概念 (5)1・3 丰富的报表 (5)1.4BIRT报表由四部分组成 (6)1.5报表设计器 (6)2Birt插件安装 (8)2.1插件版本说明 (8)12插件安装 (9)2.2.1完全安装 (9)2.2.2更新安装: (9)2.2.3分步安装 (9)3Birt报表开发实战 (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)343 对报表进行布局 (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)362构建数据集 (28)363在报表中加入交叉报表 (28)3.6.4数据准备 (29)3.6.5向交叉表插入数据 (32)3.6.6加入汇总 (33)3.6.7格式化报表 (34)3.7嵌套报表 (35)3.7.1构建数据源 (36)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.83 加入响应参数 (45)384 布局扌艮表 (47)3.8.5插入报表数据 (48)3.8.6格式化与预览 (49)3.9报表钻取 (51)3.9.1设泄响应参数 (51)3.9.2预览结果 (54)3.10图表报表 (55)3」0」为报表插入图表 (55)3」0.2 设定图表属性 (55)3」0.3 图表预览 (60)3.11多层交叉报表 (61)3」1」构建数据源 (61)3.11.2构建数据集 (61)3.11.3在报表中加入交叉报表 (62)3.11.4数据准备 (63)3」1.5 向交叉表插入数据 (63)3」1.6 格式化与预览 (64)3.12多层交叉汇总报表 (65)3」2」加入汇总 (65)3.12.2格式化与预览 (66)3.13 其他 (67)3.61 格式化报表 (67)表头与标题 (67)3.13J.2 设泄单元格格式 (68)3.13J.3 样式套用 (68)3.61.4数据元素格式化 (69)3.13.2分页、页眉与页脚 (70)3.13.2」设置分页显示 (70)3」3.2.2 设置分页打印 (70)3.13.2.3 设冒页眉页脚 (71)3.13.3隔行高亮度显示 (73)3.13.4对报告进行布局 (76)3.13.4」添加删除行或列 (76)3」3.4.2 指定行髙或列宽 (76)3」3.4.3 添加图像 (77)3.13.5数据绑泄 (79)4Birt 报表script (82)4・1 avascript 脚本编写 (82)4.1.1隔行髙亮度显示 (82)4.2java脚本编写 (88)421 创建java 类 (88)4.2.2java类与报表交互 (92)4.3BIRT脚本参考 (98)5Birt报表部署 (99)5・ 1 直接使用运行birt-nmtime-2_2_0 包中的WebViewerExamplc (99)5.2集成到已有web应用 (100)5.3数据库驱动位置 (107)5.4报表url说明 (107)5. 5 web, xml 配置 (113)5. 6 viewer・ properties 说明 (115)5.7BIRT 在jsp 中tag 使用 (116)5.8关于BIRT编码 (123)1Birt介绍1.1报表介绍BIRT一一商业智能和报表工具。
birt报表高级进阶-库和模板使用
前言BIRT 是一个基于 Eclipse 的开源报表插件,特别适用于给 J2EE 的 WEB 应用程序创建报表。
随着 BIRT 的不断完善,采用 BIRT 进行报表设计的人也越来越多。
而随着 BIRT 应用的深入,很多人都碰到了这样一些问题:∙在一个团队中,不同的设计者设计报表的时候,如何能够保证报表风格的统一?∙如何能够使得您的设计得到重用,从而提高工作效率?∙如何能够集中定义一些常用的资源,从而避免一处资源的变动,所有报表都要修改的情况发生?由于BIRT的官方文档还不是很完善,很多问题都还不能在官方文档找到详细的说明。
本文将会试图通过实际的例子,帮助读者解决以上一些问题。
BIRT的主要组件分为两部分: BIRT 报表设计器和 BIRT 运行引擎。
本文将主要介绍 BIRT报表设计器中的一些功能。
作为 BIRT 的进阶教程,本文将不会涉及到如何用 BIRT 创建简单报表的内容,需要读者对 BIRT 有一些初步的认识,并且掌握 BIRT 报表的基本设计方法。
示例项目及相关设置介绍为了方便读者理解,在开始介绍正式内容之前,先简单介绍一下本文中将会用到的 BIRT 示例项目和相关设置。
本文中用到的项目名称为 BirtIntroduction ,项目结构如下图:图 1:示例项目层次结构其中:∙JavaScripts 文件夹用于存放用户自定义的 JavaScript 文件。
∙lib 文件夹用于存放用户建立的库( Library )文件。
∙pic 文件夹用于存放所有报表中会用到的图片。
∙template 文件夹用于存放用户建立的模板文件。
∙所有的报表文件都会建立在 BirtIntroduction 下面。
在开始使用这些资源之前,还需要在Eclipse里面设置资源所在的位置。
具体设置方法如下:在Eclipse中选择 Window -> Preference ,打开 Eclipse 设置窗口,选择Report Design -> Resource 设置资源文件夹为当前项目所在位置,如下图:图 2:设置资源位置根目录“ D:/BIRTReport/BirtIntroduction/ ” 是这个项目的绝对路径。
01-Birt工具数据报表开发手册
Birt数据报表开发手册1. 创建模板双击BIRT应用程序以启动Birt报表设计环境,首次启动未加载任何报表开发资源。
主界面如下:根据报表设计的需要,Birt本身提供了一些常规的模板:当然,也可以根据实际需要,添加一些使用频率比较高的模板。
下面将以两张图形,一张列表,且图形在上横向排列的模板为例,创建新模板。
点击文件菜单中的新建,选择新建模板,根据实际情况修改模板名称和存储路径:为此模板添加一些附加属性,如该模板的描述信息和模板布局的预览图像等。
点击完成,开始编辑此模板的布局。
在组件按钮区域依次选取:一个标签,用于放置报表的标题,双击输入标题文本。
也可根据需要动态的文本。
一个网格:用于放置水平的两张图形,因此网格设置为2列1行。
可根据实际情况调整。
一张表:用于放置数据报表,明细数据列设置为8列1行。
可根据实际情况调整。
关于组件的使用,将在后面的章节中具体说明。
用鼠标右击网格中的其中一个空白处,依次选择插入,图表。
在弹出的对话框中选取需要的图形。
同样的方法处理另外网格的另外一个。
有关图形的制作,将在图形报表开发手册中详细说明。
设置每种组件的属性,在OutLine窗口中选中已经拖放的组件,根据需要对其相应的属性进行调整。
如字体大小,颜色,对齐方式,样式等设置完成后,模板样式如下:保存模板的配置信息,以便在以后的报表开发中可以直接读取该模板。
2. 新建共享资源库在Birt的资源管理器中添加一些共享资源,如共享库:在弹出的对话框中输入Library库文件的保存路径和名称:确定后,Library库的创建完成。
如果操作无误,可以在对应的目录下浏览到新建的库。
3. 新建数据源在共享库中新建一个制作报表需要的数据库连接,以Oracle9i数据库连接为例,需要先配置数据驱动(数据库的驱动程序配置方法已经在报表设计器的配置手册文档中体现)。
然后在新建的库中,用鼠标右击数据源,选择新建数据源:在弹出的对话框中选择对应数据源类型,并为该数据源命名:选择正确的数据库驱动和URL后,就可以进行数据库的连接测试:可以根据报表需要,创建一个或者多个数据源的配置:数据源创建完成后,可以通过选择选择资源管理器中共享资源,Library库下新建的数据源,右击鼠标选择添加到报表,将新建数据源添加值报表中供使用。
BIRT报表中文学习手册
一、去掉Birt表格下自动生成的日期时间在报表下点击Xml Source标签,打开xml,找到<page-setup><simple-master-page name="Simple MasterPage" id="2"><page-footer><text id="3"><property name="contentType">html</property><text-property name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property></text></page-footer></simple-master-page></page-setup>把<text id="3"><property name="contentType">html</property><text-property name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property></text>这几行去掉即可。
二、Birt表格隔行换颜色1、鼠标旋停在表格上,选择Row Detail一行;2、选择script标签页,打开birt的脚本编辑窗口;3、从下拉列表中选择OnCreate,在下面加入Javascript脚本如下:if(row.__rownum % 2 == 0){this.getStyle().backgroundColor = "#E9EAEB";}else{this.getStyle().backgroundColor = "#FFFFFF";}4、保存三、Birt表格分页下面是我从网上找的方法,我试了一下不行,后来我在table里设置了Page break interval 就可以了,但是预览的时候不能看到分页1、鼠标旋停在表格上,选择Row Detail一行;2、选择script标签页,打开birt的脚本编辑窗口;3、从下拉列表中选择onPrepare,在下面加入Javascript脚本如下:var count = 0;4、从下拉列表中选择OnCreate,在下面加入Javascript脚本如下:count++;if(count % 10 == 0){style.pageBreakAfter = "always";}5、保存,使用Web Reviewer进行预览,数据可以进行分页显示了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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:报表设计文件路径。
∙报表参数:报表参数参数值对,形式:参数名=参数值。