BIRT交叉表用法
- 格式:doc
- 大小:451.50 KB
- 文档页数:6
1简介1.1BIRT (Business Intelligence and Reporting Tools), 是为Web 应用程序开发的基于Eclipse 的开源报表系统,以Java 和J2EE 为基础。
1.2BIRT功能支持:列表-列表是最简单的报表。
图表-当需要图表表现时,数字型数据比较好理解。
BIRT 也提供饼状、线状以及柱状图标等。
交叉表-交叉表(也叫做十字表格或矩阵),分组分类统计。
导出和打印支持。
1.3BIRT 有两个主要组件:基于Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件(ReportEngine报表引擎和WebViewer网页浏览器)。
2birt报表设计器eclipse-reporting-indigo-SR2-win32用于开发和制作rptlibrary库文件和rptdesign报表文件,设计器制作完成的文件,不能用其他工具如记事本、UE去修改(可以查看),一旦修改则原文件作废。
3birt运行器3.1birt运行器有两种,一种是最基本的ReportEngine报表引擎,可以直接用java编程配置和调用,导出多种格式;一种是WebViewer网页浏览器,内置了ReportEngine,只需要提供报表文件和参数,即可直接网页iframe的方式展示报表内容。
3.2基本部署:birt-runtime-3_7_2整个放入tomcat下的webapps中,如果不需要web展示,可以只保留ReportEngine和report文件夹。
如果需要web展示,可以删除ReportEngine文件夹。
如果都需要,删除ReportEngine文件夹,并将java调用API时的birtHome路径配置为birt-runtime-3_7_2下的WEB-INF文件夹即可。
可以变更birt-runtime-3_7_2文件夹的名称。
3.3在birt报表中,中文参数值是乱码的解决办法:1.页面打开url使用window.open(encodeURI(url));2.修改tomcat--->conf---->server.xml,添加<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"URIEncoding="UTF-8" useBodyEncodingForURI="true"redirectPort="8443" />4birt 库文件开发制作4.1运行birt报表设计器,初次使用时,新建一个报表项目,以进入报表设计模式。
JasperReport报表开发之转置交叉表使⽤Jasper或BIRT等报表⼯具时,常会碰到⼀些很规的统计,⽤报表⼯具本⾝或SQL都难以处理,⽐⽅源数据不符合交叉表的要求,须要转置后再呈现。
集算器具有结构化强计算引擎,集成简单。
能够协助报表⼯具⽅便地实现此类需求。
以下通过⼀个样例来说明转置交叉表的实现过程。
数据库表booking汇总着各年度商品的预定数据。
有四个字段,包含年份和三种预定状态,部分数据例如以下:报表要求呈现指定年份及上⼀年的预定情况。
当中⾏组有三项,即三种预定状态,列组是年份。
測度是当年的预定数据。
此外要汇总出指定年份各预定状态的增长率。
表例⼦如以下:能够看到,这张报表的难点是:源数据⽆法直接⽤于交叉表,汇总列要⽤相对位置来动态计算。
假设能将源数据转置。
并将汇总列事先计算出来,则会显著减少难度,⽐⽅以下这样:以下⽤集算器准备报表所需的数据,代码例如以下:A1=yearBegin=yearEnd-1yearEnd是来⾃报表的參数,表⽰⽤户指定的年份,⽐⽅2014。
A1中的代码⽤来计算上⼀年(⽐⽅2013),为了⽅便引⽤,上⼀年定义为yearBegin。
A2=myDB1.query(“select * from booking where year between ? and ?order by year desc”,yearBegin,yearEnd)这句代码⽤来从数据库查出指定年份及上⼀年的数据。
myDB1是数据源名,指向MYSQL。
函数query可运⾏SQL语句,也能够接受參数。
如果yearEnd=2014,则A2的计算例如以下:A3=create(row,col,value)这句代码⽤来新建序表A3。
A3有三个字段:row、col、value,将来可存储整理之后的数据。
新建后的A3例如以下:须要注意的是。
序表类似数据库结果集,也是结构化⼆维表。
但序表是泛型的,同⼀个字段能够存储不同的数据类型,序表也是有序的,能够按序号訪问数据。
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 目录中。
1.BIRT :BIRT是基于Eclipse的报表系统,很有竞争力。
拥有和Dreamweaver一般的操作界面,可以像画table一样画报表,生成图片,导出Excel,html分页样样齐全,样式和script设置简单。
基于Eclipse 开发平台的面向下一代商业应用的大型报表软件系统。
该项目是由美国Actuate 软件公司与清华大学信息研究院Web 与软件技术研究中心合作开发的。
利用Eclipse 平台,面向商务智能(Business Intelligence) 和报表空间,其功能集中在从数据源提取数据、处理数据并显示数据。
BIRT 的最初目标是使用Eclipse 提供一个框架,用以在某组织内设计、布置和查看报表,并包含查询等工具。
BIRT 的报表有四个主要部分:数据(Data) 、数据转换(Data Transforms) 、业务逻辑(Business Logic) 、展示(Presentation) 。
使用BIRT ,用户可以在应用中增加多种形式的报表:列表(Lists) 、图表(Charts) 、交叉表(Crosstabs) 、文档(Letters &Documents) 、组合报告(Compound Reports) 。
BIRT 包括下面几个工具:Eclipse Report Designer(ERD) 、Eclipse Report Engine(ERE) 、Eclipse Charting Engine(ECE) 、Web Based Report Designer(WRD) 。
由于背后有公司支撑,BIRT发展很迅速,在JAVA开源报表工具领域大有后来居上的势头;目前国内普元的EOS报表、杭州数新的Java报表都是基于这个开源的产品改良的,当然还有很多国内的公司用BIRT作为自己的内部报表解决方案,并不直接对外销售,只是打包在自己的项目解决方案中。
2.PentahoPentaho Report Designer是一款所见即所得的开源报表设计工具。
Birt2.2M6 的CorssTab(交叉表)的用法1什么是交叉表首先你要知道什么是交叉表,又是在什么情况下需要用交叉表。
“交叉表”对象是一个网格,用来根据指定的条件返回值。
数据显示在压缩行和列中。
这种格式易于比较数据并辨别其趋势。
它由三个元素组成:◆行◆列◆摘要字段我找了一副图表,用以说明交叉表2创建交叉表步骤Birt 2.2M6首次出现了OLAP Cube功能,创建交叉表分为三步◆创建Cube◆创建CrossTab◆把Cube的维度和度量拖到相应的地方。
2.1选择Cube的数据集BIRT的数据立方体(Cube)是基于数据集的。
建一个Cube首先就是要选择Cube的数据集,所以先创建自己的数据源和数据集。
本例中我们建了一个名为crossTabDataSet 的数据集,数据集的预览如下图所示:2.2创建Cube在Data Exployer页的Cubes下面增加一个Cube,本例中,我们将Cube命名为TestCube,数据集选择我们刚才新建的crossTabDataSet。
2.3设置Cube的GroupGroup的设置页面如下:把我们需要在交叉表的维度拖到Groups的Group下。
(可以根据多个维度建立多个Group)2.4设置CrossTab然后,在设计面板中,双击Crosstab,在弹出的窗口中,选择我们刚才建好的Cube,点击‘Ok’。
设计页面上上出现了一个CrossTab的表格。
然后,打开DataExplor页,将Cube的维度和度量相应地拖放到规定的地方。
如下图所示。
预览效果如下图所示:至此,一个交叉表就完成了2.5给交叉表设置附加列如果想要出现本文开头的交叉表的效果(即:行小计和列小计计算结果),进行如下设置:右键单击横向维度右边的小三角,点击菜单中的Aggregation项:在出现的对话框中,将GrandTotals栏目中的NUM选上,Function选择Sum函数,OK即可。
BIRT交叉报表一、创建报表和配置数据源1.新建一个报表,改好自己的名字,然后next进行下一步。
然后选择一个空白报表(Blank Report),单击finish完成。
2.新建数据源,这里使用的是协同数据库,选择Date Explore标签右键单击DataSources 新建一个数据源。
选择JDBC Data Source 命名为clmpdemo 然后单击next利用JDBC链接数据源,然后点击测试链接,提示成功后,点击finish完成。
注:在应用里面,可以设置为JNDI链接。
具体是在报表文件中,增加一列JNDI 设置,如下所示:<data-sources><oda-data-sourceextensionID="org.eclipse.birt.report.data.oda.jdbc"name="clmpdemo"id="7"><text-property name="displayName"></text-property><list-property name="privateDriverProperties"><ex-property><name>contentBidiFormatStr</name><value>ILYNN</value></ex-property><ex-property><name>metadataBidiFormatStr</name><value>ILYNN</value></ex-property></list-property><propertyname="odaDriverClass">oracle.jdbc.driver.OracleDriver</property> <propertyname="odaURL">jdbc:oracle:thin:@127.0.0.1:1521:eccl</property><property name="odaUser">clmp</property><encrypted-property name="odaPassword"encryptionID="base64">ZWNjbDIwMDk=</encrypted-property><!--新增JNDI设置--><property name="odaJndiName">java:/comp/env/clmp</property> </oda-data-source></data-sources>3.建立一个新的数据集,New data sets ,命名为clmprfq,点击next。
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报表入门教程之多层交叉汇总报表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年每个雇员,每月订单金额。
MySQL中的数据可视化与报表生成工具MySQL是一种广泛应用于数据库管理系统中的关系型数据库软件,被大量用于开发和维护各种规模的应用程序。
而在实际应用中,我们经常需要对数据库中的数据进行可视化展示和报表生成。
本文将介绍MySQL中的数据可视化和报表生成工具,以及它们的功能和用法。
一、MySQL中的数据可视化工具数据可视化是将数据通过图表、图形和可视化方式呈现,使数据分析更加直观和易理解。
MySQL中有一些常用的数据可视化工具,如下所示。
1. MySQL WorkbenchMySQL Workbench是MySQL官方推出的集成开发环境,不仅可用于数据库建模和设计,也可以进行数据可视化分析。
它提供了丰富的图表和图形显示选项,可以通过可视化方式浏览和分析数据,包括表格、视图、关系和SQL查询结果等。
此外,MySQL Workbench还支持用户自定义报表和数据导出功能,方便将数据直接生成报表。
2. Navicat for MySQLNavicat for MySQL是一种功能强大的MySQL数据库管理工具,除了常规的数据管理功能外,它也提供了数据可视化功能。
通过该工具,可以将查询结果转化为图表或图形的形式展示,如柱状图、折线图等,并提供了一些图表设置选项,如X 轴、Y轴等自定义配置。
3. TableauTableau是一种独立的数据可视化工具,不仅支持多种数据源的连接,还提供了丰富的可视化分析功能。
通过Tableau,可以轻松地将MySQL中的数据连接到该工具中,然后利用其强大的数据可视化功能创建各种图表、图形和仪表盘等,并进行交互式数据分析和探索。
二、MySQL中的报表生成工具报表是对数据库中数据进行总结和分析的结果展示,可以帮助我们更好地了解数据的趋势和关联。
MySQL中也有一些报表生成工具,如下所示。
1. MySQL Enterprise EditionMySQL Enterprise Edition是一套高级数据库管理工具,其中包含了一些报表生成功能。
第一部分BIRT介绍BIRT(Business Intelligenceand Reporting Tools),是为Web应用程序开发的基于Eclipse的开源报表系统,特别之处在于它是以Java和J2EE为基础。
BIRT有两个主要组件:基于Eclipse的报表设计器,以及部署到应用服务器上的运行时组件。
BIRT介绍BIRT也提供了图标引擎让你能为应用增加图标。
BIRT当前发行的版本是2.6.1。
可通过下载使用。
有了BIRT,你可以为应用程序构建丰富的报表。
列表-列表是最简单的报表。
当列表变长时,你可以把相关数据增加到同一分组(基于客户的订单分组,基于供应商的产品分组)。
如果数据是数字类型的,你可以轻松的添加到―总数‖、―平均‖、或其他汇总中。
图表-当需要图表表现时,数字型数据比较好理解。
BIRT也提供饼状、线状以及柱状图标等。
交叉表-交叉表(也叫做十字表格或矩阵)用两种维度展示数据:salesperquarterorhitsperwebpage。
(交叉表在1.0.1中没有提供,但计划在将来提供。
)信函和文档-通知、信件、以及其他文本文档都很容易通过BIRT方便建立。
文档包括正文、格式、列表、图表等。
混合报表-很多报表需要联合以上所有的报表构成单一文档。
例如,一份客户声明会列出客户所需要的信息,为当前促进(promotions)提供文本,以及提供并行的出帐和入帐列表。
一份财政报表将包括声明、图表、表格,所有这些都将进行全方位的格式化,来匹配共有的配色方案。
剖析一份报表BIRT报表包含四个部分:数据、数据转换、业务逻辑、陈述。
数据-数据库、Web服务、XML文件、Java对象等,这些都可以作为BIRT报表源。
1.0.1版本提供JDBC 支持,也支持利用编码来获取其他地方的数据。
BIRT的ODA(OpenDataAccess)框架允许任何人构建新的UI 以及运行时支持任何类型的表格式数据。
未来,单一报表可包含从任意多个数据源获取数据。
Birt文档学习资料1.新建报表:File->New->Report,输入报表名称,报表后缀默认为rptdesign,下一步选择模板就完成了。
2.创建数据源在Data Explorer选项卡中,选中Data Sources节点,右键可以创建数据源。
在数据源中可以配置数据库连接信息,可以测试连接是否成功。
3.创建参数如果数据集中需要参数,那么要先创建参数,选择Report Parameters,右键新建参数,也可以创建级联参数或者参数组等。
在新建参数窗口中,给参数命名,参数显示的文本,选择参数类型,显示类型以及默认值等。
Prompt text是显示的文本,表示参数的意义,在报表运行后的参数层中展示的文本,如果不指定,那么默认的是参数名。
显示类型是参数到底是以什么控件进行交互的,如果是Text Box,那么就是普通的文本输入框,如果是Combo Box,List Box,那么就是下拉框,数据可以是静态的,可以是动态的。
静态的是要手动输入的或者导入数据,如果是动态的,要选择数据集,选择值列字段和显示字段,默认值,还可以排序。
4.创建数据集当数据源配置完成后就可以创建数据集了,数据集是直接给报表提供数据的sql查询。
选中Data Sets,右键新建数据集,在弹出窗口中填写数据集名称或者采用默认名称,数据集类型(Data Set Type)默认是SQL Select Query,这个一般不用改。
下一步,是写sql 语句,将要展现或者将要使用到的数据字段全部查询出来,左边的Available Items可以查看自己的表,可以将这个表直接拖拽到sql区域。
写完sql语句,点击完成后会弹出一个编辑数据集的窗口,在这个窗口中可以看到输出字段,以及预览数据。
如果sql中有参数?,那么在这个窗口中要创建参数,并且选择链接到报表的参数。
5.如果报表中需要用到交叉表,那么要创建Data Cubes,意思大概是数据切片之类的,用于给交叉表提供数据源。
用iReport制作交叉表(CrossTabs) 立方开源商业智能一个CrossTabs是一种在设计的时候既不确定行数和也不确定列数的一种表格,在运行环境下它会像下面显示的不同年份的一个销售报表一样。
CrossTabs在jasperresports中从1.1.0版本时开始提供,同时iReport也从1.1.0开始支持CrossTabs。
Jasperreports的CrossTabs工具允许对行和列的数据进行分组、汇总和自定义每一个cell里的内容。
填充CrossTab的数据可以来自主报表里的dataset或来自subDataset。
使用iReport里提供的向导我们可以简单快速的创建功能强大的交叉报表组件。
一个CrossTabs本质上是一个表格,行和列的数量取决于填充这个表格的数据。
行和列也可以在groups里做聚合操作。
对于每一个行或列的group我们都可以得到一个细节信息和一个可选的行列数据的汇总。
16.1 交叉表向导 (Crosstab wizard)为了说明怎么让一个crosstab工作起来,我们将使用向导创建一个crosstab,当我们在工具条里选择crosstab元素并将其添加到报表中时crosstab的向导会自动启动。
还是以DoradoSample里提供的hsql数据里的employee报为例,我们使用包含下面查询语句的空报表开始:Select * from employee我们把crosstab放在报表的底部:summary band图16.1在第一步里我们需要选择一个dataset来填充crosstab,我们这里使用主报表里提供的dataset,点击下一步继续。
图16.2在第二步里我们需要定义至少一个行分组.我们这里选择对所有记录使用DEPT_ID进行分组。
这样就意味着crosstab的每一行将会采用一个明确的部门编号,这样JasperReports将会使用部门编号对数据集里的数据进行重新整理计算。
Birt数据报表开发手册1. 创建模板双击BIRT应用程序以启动Birt报表设计环境,首次启动未加载任何报表开发资源。
主界面如下:根据报表设计的需要,Birt本身提供了一些常规的模板:当然,也可以根据实际需要,添加一些使用频率比较高的模板。
下面将以两张图形,一张列表,且图形在上横向排列的模板为例,创建新模板。
点击文件菜单中的新建,选择新建模板,根据实际情况修改模板名称和存储路径:为此模板添加一些附加属性,如该模板的描述信息和模板布局的预览图像等。
点击完成,开始编辑此模板的布局。
在组件按钮区域依次选取:一个标签,用于放置报表的标题,双击输入标题文本。
也可根据需要动态的文本。
一个网格:用于放置水平的两张图形,因此网格设置为2列1行。
可根据实际情况调整。
一张表:用于放置数据报表,明细数据列设置为8列1行。
可根据实际情况调整。
关于组件的使用,将在后面的章节中具体说明。
用鼠标右击网格中的其中一个空白处,依次选择插入,图表。
在弹出的对话框中选取需要的图形。
同样的方法处理另外网格的另外一个。
有关图形的制作,将在图形报表开发手册中详细说明。
设置每种组件的属性,在OutLine窗口中选中已经拖放的组件,根据需要对其相应的属性进行调整。
如字体大小,颜色,对齐方式,样式等设置完成后,模板样式如下:保存模板的配置信息,以便在以后的报表开发中可以直接读取该模板。
2. 新建共享资源库在Birt的资源管理器中添加一些共享资源,如共享库:在弹出的对话框中输入Library库文件的保存路径和名称:确定后,Library库的创建完成。
如果操作无误,可以在对应的目录下浏览到新建的库。
3. 新建数据源在共享库中新建一个制作报表需要的数据库连接,以Oracle9i数据库连接为例,需要先配置数据驱动(数据库的驱动程序配置方法已经在报表设计器的配置手册文档中体现)。
然后在新建的库中,用鼠标右击数据源,选择新建数据源:在弹出的对话框中选择对应数据源类型,并为该数据源命名:选择正确的数据库驱动和URL后,就可以进行数据库的连接测试:可以根据报表需要,创建一个或者多个数据源的配置:数据源创建完成后,可以通过选择选择资源管理器中共享资源,Library库下新建的数据源,右击鼠标选择添加到报表,将新建数据源添加值报表中供使用。
Birt 报表参数的使用级别:中级路绪清(luxuqing@), 软件开发工程师, IBM 中国软件开发中心任谦(renqian@), 软件开发工程师, IBM 中国软件开发中心2007 年9 月27 日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 自带的Sample 数据源,用到的数据基于图 1 所示的实体关系模型。
从这个模型中可以看出,文中示例用到三张数据库表分别为customers,orders 和orderdetails。
其中customers 表的customernumber 字段作为外键出现在orders 表中,而orders 表的ordernumber 字段做为外键出现在orderdetails 表中。
图 1. 实体关系模型1 标量参数(Scalar parameter)在使用BIRT 参数的时候,首先要了解BIRT 分为报表参数和数据集参数。
报表参数定义于整个报表内,而数据集参数定义于某个数据集(Data Set)中。
1 BIRT报表开发环境准备 (2)1.1 BIRT报表开发准备 (2)1.2 建立Web Project (2)1.3 配置交叉报表数据源 (5)1.3.1 建立公共资源的文件夹 (5)1.3.2 建立公共资源Library (6)2 动态分组交叉报表 (10)2.1 建立报表文件夹 (10)2.2 建立报表文件 (11)2.3 复用报表数据源 (12)2.4 配置交叉报表结果集 (13)2.5 配置交叉报表分组字段 (16)2.5.1 新建Data Cuber (16)2.5.2 新建Groups (17)2.6 配置交叉报表求和字段 (18)2.7 交叉报表表样制作 (19)2.7.1 新建Cross Tab (19)2.7.2 完成报表表样制作 (20)2.8 报表分页实现 (20)2.9 预览交叉报表 (20)3 部署交叉报表 (21)4 运行交叉报表 (21)1BIRT报表开发环境准备1.1 BIRT报表开发准备(1)、Ecplise:这里我使用的是Eclipse Platform Version: 3.6.2。
(2)、BIRT插件:可以通过Ecplise中的Install New Software 添加Birt插件。
插件地址://birt/update-site/2.6/(3)、Tomcat:这里我使用的是apache-tomcat-6.0.161.2 建立Web Project(1)、新建Web Project为了体现BIRT与实际应用项目相结合的特点,首先建立一个Web Project,工程命名为myReport。
然后单击“Next”,出现下图:在Project Name中输入“myReport”,工程构建后的class文件输入目录为WebContent/WEB-INF/classes下。
如下图:然后单击“Next”,出现下图,这里我将“Generate web.xml Deployment descriptor”选项勾选上,让Ecplise来创建web.xml。
BIRT开发技术培训BIRT深入培训简介BIRT是一个Eclipse-based开放源代码报表系统。
它主要是用在基于Java与J2EE的Web应用程序上。
BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。
BIRT同时也提供一个图形报表制作引擎。
BIRT拥有和Dreamweaver一般的操作界面,可以像画table一样画报表,也可以生成图片、导出Excel、html分页,样式比script设置简单,另外BIRT还有OLAP导航功能。
基本概念数据源:数据的来源,或提供者。
如xml数据源、jdbc数据源、script数据源等数据集:数据集合,它必须与数据源关联,可以理解为查询的结果报表以及报表项,报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形式的某个具体的单元。
它们之间的关系,与窗体和控件的关系非常类似。
报表、数据集、数据源三者间的关系:数据源---数据集---报表。
报表参数:查询参数的表现形式,使用它可以构建更灵活的报表模板和库:主要用于复用报表设计,提高报表开发的效率。
BIRT报表应用☐BIRT报表设计器的安装与配置 配置环境项目搭建☐使用BIRT报表设计器设计报表 设计一个简单报表给报表添加统计图表给报表添加统计图表使用Xml文件建立xml数据源使用JAVA对象建立脚本数据源配置环境IDE:birt-report-designer-all-in-one-2.2.2 (建议初学者下载,下载后是一个ECLIPSE,BIRT已经装好了,方便)Runtime:birt-runtime-2.2.2jdk1.4 or later☐项目搭建直接使用birt_runtime_2.2.2中的WebViewerExample。
⏹将其发布到C:\jakarta-tomcat-5.0.28\webapps目录下,并将其更改名称为birtApp。
⏹将已完成的报表,比如test.rptdesign放到birtApp的根目录下,即可通过http://localhost:8080/birt/frameset?__report=test.rptdesign直接在WTP集成的BIRT插件下的新建web project使用BIRT报表设计器设计报表☐设计一个简单报表创建一个项目⏹选择“文件-→新建-→项目”,出现一新项目对话框。
该DEMO的环境是 tomcat5.0下,BIRT用的是2.6.2,数据库用的是mysql5.0,
该DEMO访问的地址是
http://localhost:8080/portal/birtView?__report=TestReport1.rptdesign&displayFields=account, cost_Center ,Application_Domain,big_Kind, special
参数
__report 是指定报表名字
displayFields 要显示的字段,用逗号隔开,如果不写该参数,显示所有字段。
其中的对应关系:
account -----账簿
cost_Center---- 成本中心
Application_Domain ----应用领域
big_Kind - -----大类
special ----专业
关于BIRT交叉报表动态删除列的说明
1、报表设计部分
数据源,修改自己的数据源
数据集
数据集的数据结构应该是这样:
具体数据可见test_table1.sql文件
2、报表元素
要删除交叉报表的分组列,需要删除列定义、列绑定、分组数据定义以及表头的内容
2.1数据集
账簿的分组定义
账簿分组列绑定定义
账簿账簿的分组数据定义如下:
账簿表头表格定义
账簿表头标签定义
交叉数据集
com.foreveross.kason.birt. BirtReportHandler类中doReport()方法用于删除交叉报表列分组字段的。
具体请看代码
最终结果:
显示全部列
根据参数显示其中3列。
Birt2.2M6 的CorssTab(交叉表)的用法
1什么是交叉表
首先你要知道什么是交叉表,又是在什么情况下需要用交叉表。
“交叉表”对象是一个网格,用来根据指定的条件返回值。
数据显示在压缩行和列中。
这种格式易于比较数据并辨别其趋势。
它由三个元素组成:
◆行
◆列
◆摘要字段
我找了一副图表,用以说明交叉表
2创建交叉表步骤
Birt 2.2M6首次出现了OLAP Cube功能,创建交叉表分为三步
◆创建Cube
◆创建CrossTab
◆把Cube的维度和度量拖到相应的地方。
2.1选择Cube的数据集
BIRT的数据立方体(Cube)是基于数据集的。
建一个Cube首先就是要选择Cube的数据集,所以先创建自己的数据源和数据集。
本例中我们建了一个名为crossTabDataSet 的数据集,数据集的预览如下图所示:
2.2创建Cube
在Data Exployer页的Cubes下面增加一个Cube,本例中,我们将Cube命名为TestCube,数据集选择我们刚才新建的crossTabDataSet。
2.3设置Cube的Group
Group的设置页面如下:
把我们需要在交叉表的维度拖到Groups的Group下。
(可以根据多个维度建立多个Group)
2.4设置CrossTab
然后,在设计面板中,双击Crosstab,在弹出的窗口中,选择我们刚才建好的Cube,点击‘Ok’。
设计页面上上出现了一个CrossTab的表格。
然后,打开DataExplor页,将Cube的维度和度量相应地拖放到规定的地方。
如下图所示。
预览效果如下图所示:
至此,一个交叉表就完成了
2.5给交叉表设置附加列
如果想要出现本文开头的交叉表的效果(即:行小计和列小计计算结果),进行如下设
置:
右键单击横向维度右边的小三角,点击菜单中的Aggregation项:
在出现的对话框中,将GrandTotals栏目中的NUM选上,Function选择Sum函数,OK即可。
Layout中的CrossTab自动在最后加了一列,如下图所示:
预览后,效果如下:
同样的,以相同方法设置另一维度:
设置完毕,预览效果如下:。