birt报表使用简要说明
Birt使用手册范本

Birt使用手册1.1简介BIRT 是一个Eclipse-based 开放源代码报表系统。
它主要是用在基于Java 与J2EE的Web 应用程序上。
BIRT 主要由两部分组成:一个是基于Eclipse 的报表设计和一个可以加到你应用服务的运行期组件。
BIRT 同时也提供一个图形报表制作引擎。
BIRT 拥有和Dreamweaver 一般的操作界面,可以像画table 一样画报表,也可以生成图片、导出Excel、html 分页,样式比script 设置简单,另外BIRT 还有OLAP 导航功能。
1.2基本概念数据源:数据的来源,或提供者。
如xml 数据源、jdbc 数据源等。
数据集:数据集合,它必须与数据源关联,可以理解为查询的结果。
报表以及报表项,报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形式的某个具体的单元。
它们之间的关系,与窗体和控件的关系非常类似。
报表、数据集、数据源三者间的关系:数据源 --- 数据集 --- 报表。
报表参数:查询参数的表现形式,使用它可以构建更灵活的报表。
模板和库:主要用于复用报表设计,提高报表开发的效率。
1.3Birt报表设计器的安装与配置BIRT 的下载地址是:/birt/downloads/ 有两种下载方式:1) All-in-One 版本(birt-report-designer-all-in-one-2.2.2.zip),它包含了运行BIRT系统所需的组件,可直接应用。
2) Framework 插件版本(birt-report-framework-2.2.2.zip),安装的必要环境为Java1.4.2/1.5 JDK/JRE; Eclipse SDK 3.2, GEF 3.2 and EMF 3.2。
安装步骤如下:打开eclipse 文件夹,在文件夹中再新建一文件夹(如:birt),然后打开birt-report-framework-2.2.2.zip 把其中的eclipse 文件夹放入新建的birt文件夹中。
报表参数说明

报表参数说明--2011-5-11 谭海威说明:该文档主要用于报表参数分类及各项参数说明1.报表全局参数报表全局参数配置在表(TSM_PARAMATER)中,主要用于对报表整个运行进行调控,不支持参数的实时监控,在对全局参数配置之后,需要重启服务器才能生效。
其表结构如下所示:Name Nullable CommentsPARAM_ID N 参数名称PARAM_DESC Y 参数描述PARAM_VALUE Y 参数值a.页面显示相关主要用于控制报表在页面上的显示及相关。
QUERY_FLD_NUM内部参数名称:colsNum(仅限开发人员使用)默认值:3说明:报表参数每列显示个数,要求大于0。
推荐使用默认值。
BIRT_REPORT_WEB_ROOT内部参数名称:reportWebRoot(仅限开发人员使用)默认值:””说明:报表后台生成页面控件及数据时使用到的URL路径,一般直接使用项目的URL路径。
如某项目的路径为http://10.40.201.110:1588/product/,则该参数就可以直接配置为该数据。
注意:该参数如果配置,必须以反斜杠结束。
另:该参数在一般情况不需要配置,如果遇到图形显示不出来,再进行配置即可。
RESOURCE_LANG内部参数名称:resourceLang(仅限开发人员使用)默认值:0说明:用于指示报表系统以英文或是中文显示提示信息,1为英文,2为越南文(已经停止提供服务),其他为中文。
b.操作习惯相关主要与用户的操作习惯相关,预测用于操作习惯,可以有效减少报表服务器压力。
BIRT_IS_OPEN_REPORT内部参数名称:isOpenReport(仅限开发人员使用)默认值:1说明:是否在初始化的时候打开报表,0为否,1为是。
该参数的主要作用就是帮助报表系统提高访问速度,如果不要在初始化时就打开报表,报表系统将只会显示查询条件,而不会去获取数据。
BIRT_EXPORT_AUTO_CLOSE内部参数名称:isAutoCloseExp(仅限开发人员使用)默认值:0说明:是否需要在导出文件后自动关闭导出页面,0为不关闭,1为关闭。
birt报表入门教程之报表设计器学习

birt报表入门教程之报表设计器学习报表设计器数据浏览器-把你的数据源(连接)以及数据集(查询)组织起来。
数据集编辑器允许你测试数据集,以确保报表接收数据的正确性。
布局视图(Layout)-所见即所得编辑器为你的报表提供以拽方式来创建表现内容。
包含一个标准报表条目调色板。
属性编辑器(Property Editor)-以便利的格局表现大多数通用的用户属性使编辑更快速和容易。
BIRT也集成了标准Eclipse属性视图,为每个条目提供详细的属性列表。
报表预览(Preview)-你可以在任何时间采用真实数据测试你的报表。
预览窗口直接内嵌在Eclipse中。
代码编辑器(Script)-在访问数据以及报表生成或浏览时,脚本把业务逻辑添加给报表。
在编辑脚本时代码编辑器提供标准的Eclipse特性:语法加色、自动完成等等。
BIRT用很简单的脚本来表达,expression builder能更容易的创建这些表达。
略图(OutLine)-BIRT报表被组织为一个树型结构作为整体报表的根,并且为样式、报表内容、数据源、数据集、报表参数等分类。
略图视图提供你整个报表结构紧凑的预览。
Cheat Sheets-学习新工具永远是种挑战,但是Eclipse提供一种创新方案:cheat sheets。
它们是一些帮助你完成新任务的文档。
同为常用的报表工具,与BIRT对比,FineReport的设计器是什么样的呢?具体如下:设计器概览下图是FineReport报表软件设计器的整体示例图:1.1模板管理面板所有通过FineReport设计器设计出来的模板全部保存在reportlets文件夹下,并显示在模板面板中。
1.2数据集面板数据集面板中展示的是数据集,数据集是指通过SQL语句,将数据库中的数据获取出来,作为模板数据的直接来源,数据集包括模板数据集和服务器数据集。
1.3模板预览方式预览方式是指查看模板时以哪种方式查看,在设计器预览方式按钮处,有三种预览方式,分页预览,填报预览,数据分析,如下图:默认预览方式为分页预览。
birt报表简单制作

前言此文档作者是北京恒信启华职下员工肖林宝编写。
乃是本人不成熟作品,简单的介绍了birt报表的制作过程。
为的是给各位同事一个参考,文中若有不完善的地方,还请各位同事多多包涵,多提宝贵意见。
根据各个项目上的实际情况,此文档主要介绍birt报表在公共数据源链接下的制作过程。
下面开始进入制作过程。
Birt报表制作过程在这里我用发票表invoice 简单的制作一个根据日期查询并且统计TOTALCOST 的报表。
Sql语句如下:select INVOICENUM,DESCRIPTION,ENTERDATE,TOTALCOST from invoice whereto_date(to_char(ENTERDATE,'yyyy-MM-dd'),'yyyy-MM-dd')>=to_date('2 011-08-01','yyyy-MM-dd')andto_date(to_char(ENTERDATE,'yyyy-MM-dd'),'yyyy-MM-dd')<=to_date('2 011-09-01','yyyy-MM-dd') order by INVOICENUM一.打开birt,选择一个报表文件夹,右键—新建—报表。
如图:给报表取个名字。
如下图:名字取完,点finish(完成),该报表文件夹下就会出现此报表文件,如下图:二.开始对报表进行编辑,双击报表文件,打开报表编辑窗口。
选择script标签,在initialize 下写引入包文件代码,如下图:代码如下:importPackage(.ibm.tivoli.maximo.report.script);importPackage(Packages.java.io);//引入包文件importPackage(Packages.java.util);importPackage(Packages.java.text);mxReportScriptContext = MXReportScriptContext.initialize(reportContext);mxReportScriptContext.setDefaultLogLevel("DEBUG");三、开始给报表添加公用数据源,右键maximoDataSuorce—Add To Report,如下图:你会看到新建的数据源已经出现之后在新建一个数据集,右键Data Sets—New Data Set,如下图:双击Data Set,选择Output Columns,添加字段,如下图:单击选中Data Set,选择script标签,open选项,对sql语句进行编辑,如下图:具体内容如下:maximoDataSet=MXReportDataSetProvider.create(this.getDataSource() .getName(), this.getName());maximoDataSet.open();var sqlText = new String();// Add query to sqlText variable.sqlText = "select INVOICENUM,DESCRIPTION,ENTERDATE,TOTALCOST from invoice where "+ " to_date(to_char(ENTERDATE,'yyyy-MM-dd'),'yyyy-MM-dd')>= to_date('"+params["startdate"]+"','yyyy-MM-dd') "+ " and to_date(to_char(ENTERDATE,'yyyy-MM-dd'),'yyyy-MM-dd') <= to_date('"+params["enddate"]+"','yyyy-MM-dd') order by invoicenum " // Include the Maximo where clause;maximoDataSet.setQuery(sqlText)Sql语句编辑完之后,选择fetch选项,编辑字段,如下图:具体内容如下:if (!maximoDataSet.fetch())return (false);// Add a line for each output column// The specific get method should match the data type of the output column.row["INVOICENUM"] = maximoDataSet.getString("INVOICENUM");row["DESCRIPTION"] = maximoDataSet.getString("DESCRIPTION");row["ENTERDATE"] = maximoDataSet.getString("ENTERDATE");row["TOTALCOST"] = maximoDataSet.getString("TOTALCOST");return (true);以上编辑完之后,开始建立参数,右键report parameter—new parameters,如下图:对参数进行设置,如下图:三.开始绘制报表,选择master page,对纸张进行设置,如下图:选择layout标签,右键空白区域,insert—table,如下图:根据实际情况设置表格行列,这里我根据需要设置成一行四列,如下图:表格如下将数据集中的字段拖到表格上,将数据集与表格进行绑定。
Birt报表开发

图1-1 BIRT设计器图1-2 BIRT运行时环境说明图1-3 BIRT报表引擎图1-4 BIRT运行时环境BIRT 设计器和设计引擎可以设计以下的报表:列表-列表是最简单的报表。
当列表变长时,你可以把相关数据增加到同一分组(基于客户的订单分组,基于供应商的产品分组),如果数据是数字类型的,你可以轻松的添加到“总数”、“平均”、或其他汇总中。
列表的产生和显示都可以定制,进行过滤,突出显示,排序,分组同样可以过滤,突出显示和排序。
图表-图表能够帮助数字型的表格形象化的理解。
BIRT 提供饼状、线状以及柱状图标等。
交叉表-交叉表(也叫做十字表格或矩阵)用两种维度展示数据:sales per quarter or hits per web page。
信函和文档-通知、信件、以及其他文本文档都很容易通过BIRT 方便建立。
文档包括正文、格式、列表、图表等。
混合报表-很多报表需要联合以上所有的报表构成单一文档。
例如,一份客户声明会列出客户所需要的信息,为当前促销(promotions)提供文本,以及提供并行的出帐和入帐列表。
一份财务报表将包括声明、图表、表格,所有这些都可以进行全方位的格式化,来匹配共有的配色方案。
Birt有以下几点优点:1、开发方便,BIRT是Eclipse的一个插件可以很好的集成在Eclipse中,图形编辑框架下可以在几分钟之内做出一个报表,操作界面友好大方,MyEclipse近期的版本(8.0以上)本身包含BIRT特性。
2、可以很方便地在一个报表中混合展现概要数据和详细数据。
3、提供了强大灵活的样式定义,对于熟悉CSS的设计人员来说,应该可以设计出相当出色的报表样式。
4、Birt提供很好的国际化支持,支持中文本地化。
图1-5 birt-report-designer-all-in-one下载官网安装方式二:单独下载birt-report-designer所需要的eclipse平台和插件。
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教程之分组报表分组报表在网格报表的基础上,我们可能还需要对数据进行进一步的处理。
比如,将同类数据显示在一个组中,并对这个组进行统计运算。
如下图所示,对数据按省份进行分组,并将同一省份数据放在一个组内进行汇总统计。
下面我们将上例的网格报表进行一下小的改进,建立一个按用户类型进行分组的报表。
创建数据源方法同上例。
构建数据集本例所用的数据集与上例完全相同,输入与上例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[销量]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Birt报表使用指南 1 Birt的安装方法 把birt整合到了Myeclipse6.5中,(eclipse的官方网站上提供有一个birt-report-designer-all-in-one-2_2_2.zip,你直接解压缩这个就可以了,就免去了birt与Myeclipse6.5的整合)。 如果要把birt安装到Myeclipse6.5中,要注意一些事情
1.1 eclipse的版本 就是说你的eclipse版本要和适当的birt版本配合,当前birt的最新稳定版是birt2.3。 如果使用的是eclipse3.3版本,你应该用birt-report-framework-2_2_2.zip, 如果使用的是eclipse3.4,你应该用birt-report-framework-2_3_0.zip版本不一致会出一些问题。
1.2 在Myeclipse6.5中装birt。 MyEclipse6.5自带的是eclipse3.3,所以只能下载birt-report-framework-2_2_2.zip (下载地址:http://download.eclipse.org/birt/downloads/index2.2.2.php) 而birt-report-framework-2_3_0.zip是针对eclipse3.4的。 把下载下来的birt-report-framework-2_2_2.zip包解压,解压后的features文件夹下的所有文件拷贝到MyEclipse6.5安装目录下的..\myeclipse\eclipse\features下,解压后的plugins文件夹下的所有文件拷贝到..\myeclipse\eclipse\plugins下。 重新启动MyEclipse就好了。 2 公共方法 2.1 公用数据源的方法 1.右键单击工程,选择new>Library,起个名字叫ds.rptlibrary 2.在Outline窗口下选择Data Sources,选择JDBC Data Source,然后填入连库字符串及用户名密码 3.这样数据源就建立好了。 4.新建报表后,再Outline窗口下,右键单击Libraries,选择Use Library,选择刚才新建的ds.rptlibrary 5.使用ds我一直没有找到方法,老是找不到怎么把ds引入到Data Sources下,只好修改源代码了,选择报表下面的XML Source 标签,再 后面下粘贴下面的语句 extensionID="org.eclipse.birt.report.data.oda.jdbc"name="DataSource" id="1350"extends="ds.Data Source"/> 注意id=1350不能和报表中其他的id重复。 然后就能看到Outline窗口下Data Sources下面多了一个Data Source的链接,说明建立成功
2.2 公用样式的方法 1.右键单击工程,选择new>Other>Web>CSS,建立一个CSS文件,比如birt.css 2.在birt.css里写样式 3.点一个报表文件,选择Layout标签,然后再Outline窗口下看到Styles,下面有两个默认的Style,可以先删除。然后右键单击Styles,选择"Use CSS File...",找到刚才建立的birt.css 4.然后就OK了,如果修改了birt.css,只需要右键单击Outline窗口下的Styles的birt.css,选择"Use CSS File..."。 2.3 Birt的分页显示报表,交替颜色功能 1、鼠标停在表格上,选择Row Detail一行; 2、选择script标签页,打开birt的脚本编辑窗口; 3、从下拉列表中选择onPrepare,在下面加入Javascript脚本如下: var count = 0; 4、从下拉列表中选择OnCreate,在下面加入Javascript脚本如下: count++; //分页 if(count % 10 == 0){ style.pageBreakAfter = "always"; } //交替颜色 if(count%2==0){ this.getStyle().backgroundColor = "#EFEFEF"; }else{ this.getStyle().backgroundColor = "#d4d0c8"; }
5、保存,使用Web Reviewer进行预览,数据可以进行分页显示了。注意不要使用Preview标签页进行浏览,这个标签页的浏览效果是不分页的。发布到web工程上,也可以进行分页显示了。
2.4 如何去掉birt报表自动生成的日期 2.4.1对已存在报表的解决 初次接触birt每次做出来的报表后面都一个时间,比较不合需要,又没找到去掉的地方,索性打开xml,找到下面这段代码: html newDate()]]>
把其中的…删除即可 2.4.2 对新建的报表
2.5 分离部署 在JSF界面中嵌入iframe,在javascript里使用超链接的形式调用报表服务器上的报表,展示在JSF的iframe里。 javascript代码如: document.frames["show_report"].location.replace("http://134.32.34.237:9090/birt/frameset?__report=abs/new_sum.rptdesign&ParameterDept="+dept); 其中show_report为iframe的name,dept为报表参数。 有时候中文参数需要编码处理:deptName = encodeURI(deptName);
2.6 如何增加序号 1. 点击报表的空白处,然后到script页,选择initialize,输入 var num=0 2. 回到报表设计页,在组上加入一个data,在这个data的expression中,输入: num++; num 3. 保存报表即可。
2.7 导出工具条
1、如果你不想要那个工具条的话,在URL后面加上:& __toolbar=false,这样就会把整个的工具条都隐藏了。 2、如果想修改工具条中的一个按钮的时候要修改,对应的 2.8 使用脚本 可以使用脚本,是BIRT的一大特色。在BIRT中,数据源、数据集和报表项,都可以书写脚本。具体做法:选择数据源、数据集和报表项任意一种对象,然后选择"脚本"页面。如选择数据源user后,对应的脚本输入页面:
选择对应的事件,然后在下方的脚本输入框中输入脚本即可。如对于第一个例子,我们需要统计用户地址是"No.5 St."的用户数: 1. 选择数据集,然后选择"脚本",进入数据集的脚本编辑窗口。 2. 选择事件"afterOpen",在脚本窗口内输入:count=0; 3. 选择事件"onFetch",在脚本窗口内输入:if( row["addr"]== "No.5 St.") count++; 4. 选择报表,在脚本窗口选择事件"onRender",输入:this.caption=count; 5. 预览,或运行报表后,会在报表的标题输出count的数值。
2.9 如何有条件的隐藏元素 选择要有条件地隐藏的元素。 在“属性编辑器”中,选择“可视性”。将出现“隐藏元素”选项,如图 7-12 所示。 “属性编辑器”中的“隐藏元素”选项 选择“隐藏元素”以指定将隐藏此元素。如果要始终隐藏元素,您只需要执行此操作。如果要有条件地隐藏元素,请指定条件。 选择要应用隐藏条件的报告格式。 要对所有报告格式应用隐藏条件,请选择“对于所有输出”。 要对某些报告格式应用隐藏条件,请选择“对于特定输出”。如果想要根据报告格式应用不同的条件,也请选择此选项。 指定隐藏条件:
选择“表达式构建器”。 在表达式构建器中,创建指定隐藏条件的表达式。请记住,您必须考虑何时隐藏元素,而不是何时显示它。 例如,要在参数不等于等于“所有部门时”显示该行信息,可使用以下表达式有条件地隐藏文本元素: 如:if(params["ParameterDept"]=="所有部门"){ false }else{ true } 当部门名称不等于“所有部门”时,此表达式隐藏该文本消息。 选择“确定”。