【精编推荐】birt动态分组报表制作

合集下载

Eclipse Birt报表指南

Eclipse Birt报表指南

-简介BIRT是一个Eclipse-based开放源代码报表系统。

它主要是用在基于Java与J2EE的Web 应用程序上。

BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。

BIRT同时也提供一个图形报表制作引擎。

URL: /birt/前言这个指南将引导你设计一个简单的报表,令你对BIRT报表系统有个感性的认识,如果想进一步了解BIRT的使用可以参考 BIRT在Eclipse中自带的帮助,Select Help→Help Contents from the Eclipse menu and then click on the BIRT Developer Guide.如图个人体验操作界面友好大方,小图标都很漂亮:);功能并不逊色与商业报表工具;∙CSS提供了强大灵活的样式定义,对于属性CSS的设计人员来说,应该可以设计出相当出色的报表样式;∙集成在Eclipse中,不用再开启别报表开发工具窗口;∙BIRE的本地化做的很好,安装以后操作界面就是中文的;∙开源的报表产品,降低开发成本,一些报表开发工具除了价格昂贵以外,还有用户限制;BIRT 安装指南安装方式一下载一个BIRT All-in-one版本的 Eclipse,包含了运行BIRT系统所需的组件,最方便了(如果是将报表工具培训一下让非开发人员参与定制话可以这样做:))URL:birt-report-designer-all-in-one-2_1_1.zip安装方式二假设你已经知道如何安装Eclispe插件(建议采用Link的方式安装插件,不至于全部一股脑的将各种插件都解压到Eclipse的目录中去)运行BIRT报表系统需要以下软件或插件∙Java 1.4.2/1.5 JDK/JRE∙Eclipse-SDK-3.1.2-win32及以上版本∙Graphics Editor Framework (GEF) runtime∙Eclipse Modeling Framework (EMF) runtime∙BIRT∙iText 1.3 - 复制 itext-1.3.jar 文件到plugins/org.eclipse.birt.report.engine.emitter.pdf_version/lib 目录.∙prototype.js v1.4.0 - 复制prototype.js 文件到plugins/org.eclipse.birt.report.viewer_version/birt/ajax/lib 目录其他∙BIRT提供的一个Flash格式的安装演示,也可以照着这个演示来安装:)∙BIRT 网站提供的安装指南∙运行报表(tomcat/weblogic/jboss)使用入门1.环境●报表设计器:可以到/birt/downloads/下载最新版本,当前的最新版是birt-rcp-report-designer-2_1_1。

birt报表动态切换数据源解决方案

birt报表动态切换数据源解决方案

Birt报表动态切换数据源处理方案陈鸿编写(一)通过 library实现连接数据库管理1.理解library(库):可视化旳报表开发环境。

可以理解为,在使用创立报表旳时候有诸多旳报表资源都会反复旳使用,这样为了以便管理,可以将这些部分放在library文献里,这样其他报表只要是引用这些library文献即可。

同步也以便了管理,例如当修改数据源旳时候,只要修改包括数据源旳library文献就可以了,而不必去一种个修改其他旳报表文献。

这些库可包括任何报表元素,例如样式、数据源、报表条目、脚本等等。

2.创立library:增长到应用中用于运行报表,并可以把报表以多种形式导出,如Excel、HTML分页格式、PDF、RTF等。

A.选新建LibraryB.可以看到新类似于创立报表文献旳界面C.选择所需旳驱动,并添加合法旳数据源信息。

D.创立数据源完毕后,也可以继续创立数据集。

3.使用libraryA.下面进行报表文献旳制作,制作过程中会用到这个library文献。

新建一种报表文献。

在视图里选择Library Explorer,右击,添加刚刚新建好旳Library文献。

添加完毕后记得点上面旳刷新。

B.进行引用,首先保证Data Explorer和Library Explorer同步在界面里显示,之后便是将Library 里旳我们要用旳数据拖拽到Data Explorer 自己旳报表Datasources中。

便完毕了引用数据源。

假如Library中尚有其他我们要引用旳部分也是同样去操作。

4.在java中修改birt报表library旳数据源// 修改.rptlibrary内旳数据源信息public void setDataSource(String rptdesignPath) {DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null;InputStream is = null;String datasource = null;Document doc = null;String EncodePsd = null;try {db = dbf.newDocumentBuilder();try {is = new FileInputStream(rptdesignPath);try {doc = db.parse(is);is.close();} catch (SAXException e) {toPrint("SAXException");return;} catch (IOException e) {toPrint("Can't read file [" + rptdesignPath + "]");return;}} catch (FileNotFoundException e) {toPrint("Can't found file [" + rptdesignPath + "]"); return;}} catch (ParserConfigurationException e) {// TODO Auto-generated catch blocktoPrint("ParserConfigurationException");return;}// 查找data-sources信息NodeList nodeList = doc.getElementsByTagName("data-sources");for (int i = 0; i < nodeList.getLength(); i++) {Element e = (Element) nodeList.item(i);NodeList properties = e.getChildNodes();if (properties != null) {// 得到oda-data-source部分信息Node property = properties.item(1);for (Node node = property.getFirstChild(); node != null; node = node .getNextSibling()) {// 得到driver、url、username、password四项旳值,并重新设置if (node.getNodeName().equals("property")|| node.getNodeName().equals("encrypted-property")) { String name = node.getAttributes().getNamedItem("name") .getNodeValue();if (name.equals("odaDriverClass")) {node.getFirstChild().setNodeValue(driver);} else if (name.equals("odaURL")) {node.getFirstChild().setNodeValue(url);} else if (name.equals("odaUser")) {node.getFirstChild().setNodeValue(username);} else if (name.equals("odaPassword")) {// 对密码进行base64编码EncodePsd = (new sun.misc.BASE64Encoder()).encode(password.getBytes());// System.out.println("********EncodePsd:// "+EncodePsd);node.getFirstChild().setNodeValue(EncodePsd);}}}}}// 写入指定旳文献中writeToXml(doc, rptdesignPath);}// write to xmlpublic void writeToXml(Document doc, String rptdesign) { try {OutputStream fileoutputStream = new FileOutputStream(rptdesign);TransformerFactory tFactory = TransformerFactory.newInstance();Transformer transformer = tFactory.newTransformer();DOMSource source = new DOMSource(doc);StreamResult result = new StreamResult(fileoutputStream);transformer.transform(source, result);fileoutputStream.close();} catch (Exception e) {toPrint("Can't write to file: " + rptdesign);return;}}(二)计划开发方案与环节第一步:建立library,实现连接数据库管理。

BIRT工具报表生成

BIRT工具报表生成

BIRT报表生成步骤1.新建Report ProjectFile---->new--->Business Intelligence and Reporting Tools--->Report Project点击next按钮,输入Project name,点击Finish按钮。

这样就成功完成Report Project 的创建!本文档以myReport项目为实例。

2.新建Report Project中***.rptdesign的报表。

File---->new--->Report 选中您的报表所要放置的项目,输入File name点击Finish按钮即可!这里把新建的myReport.rptdesign放入myReport项目中。

如下图1.1图1.13.数据库连接3.1双击你要设计的***.rptdesign,这里(以下)我们以myReport.rptdesign为实例,看下图1.2图1.23.2 选中工具左侧Data Expolr下的Data Sources 右击---.>New Data Source具体步骤如下图1.3(选中JDBC Data Source ,Data Source Name自己可以定义,这里我用默认的Data Source。

点击next)图1.3填入相应的数据配置信息如下图1.4图1.4值得注意的是若是第一次使用需要添加ojdbc14.jar包,点击如图1.4中的Manage Drivers 添加jar包。

如下图1.5图1.53.3 选中工具左侧Data Expolr下的Data Sets右击---.>New Data Set如下图1.6,选择您的Data Set需要绑定的Data Source(这里我选择上步创建的Data Source),选择Data Set Type(这里我选择的是:SQL Select Query),Data Set Name 可以自己定义,这里我用默认的Data Set。

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报表的制作过程。

为的是给各位同事一个参考,文中若有不完善的地方,还请各位同事多多包涵,多提宝贵意见。

根据各个项目上的实际情况,此文档主要介绍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报表例子

birt报表例子

birt报表例子BIRT(Business Intelligence and Reporting Tools)是一种开源的报表设计工具,它能够在Java环境下生成高度交互式的报表。

BIRT报表设计工具提供了简单易用的界面,使用户能够方便地创建和自定义各种类型的报表。

在本篇文章中,我们将介绍几个BIRT报表的例子,以帮助读者更好地理解和使用BIRT报表工具。

例子一:销售报表假设我们正在使用一个电商平台来销售商品,并且我们想要分析销售数据以了解最受欢迎的产品和销售业绩。

我们可以使用BIRT报表工具来设计一个销售报表。

该报表可以显示每个产品的销售数量、销售额和销售额占总销售额的比例。

此外,我们可以根据时间过滤数据,比如选择一个特定的月份或者一个特定的时间段。

通过这个报表,我们可以轻松地分析销售数据,以便做出更好的商业决策。

例子二:库存报表假设我们在一个仓库管理系统中,我们想要生成一个库存报表,以了解每个产品的库存情况。

我们可以使用BIRT报表工具来设计一个库存报表。

该报表可以显示每个产品的库存数量、已销售数量和剩余数量。

我们还可以根据产品类别进行分组,并在报表中显示每个类别的总库存数量。

通过这个报表,我们可以很方便地查看和比较不同产品的库存情况,从而更好地管理库存。

例子三:员工绩效报表假设我们是人力资源部门的负责人,我们想要评估员工的绩效以便做出合适的奖励和提升决策。

我们可以使用BIRT报表工具来设计一个员工绩效报表。

该报表可以显示每个员工的绩效评分、销售额和完成的项目数量。

我们还可以在报表中显示各个部门的平均绩效评分和总销售额。

通过这个报表,我们可以更准确地评估员工的表现,并制定相应的奖励和晋升策略。

例子四:学生考试成绩报表假设我们是一所学校的教务处老师,我们想要生成一个学生考试成绩报表,以便分析学生的表现和制定有针对性的教学计划。

我们可以使用BIRT报表工具来设计一个学生考试成绩报表。

该报表可以显示每个学生的各科成绩和总成绩,并可以根据性别、年级或班级进行分组。

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报表开发

图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报表初级教程之嵌套报表

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报表设计步骤

成报表内容
10、在 web viewer 中,鼠标右建点按生成的报表,选“属性”,获取 url,开一个空白 IE, 复制 url 到地址栏,在 url 最后用“&参数名=参数值”方式,把 Report Parameter 加进 url, 按回车,直接出现报表结果,不再出现报表参数输入对话框。还可以 pdf/doc/html 等格式 预览生成的报表
com.ibm.icu_3.6.1.v20070906.jar coreapi.jar engineapi.jar scriptapi.jar 5、将 jdbc 的 jar 或 zip 文件复制到 WEBINF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc_2.2.1.r22x_v20070919\drivers 目录下 6、删除 WEB-INF\platform\org.eclipse.birt.report.data.oda.sampledb_2.2.1.r22x_v20070919 目 录(示例数据库,没什么用处),否则生成报表时有不必要的警告信息出现 7、启动 web server,修改设计步骤第 10 步获得的 url,使 IP/端口/web 应用名称符合你的 Birt runtime 部署,在 IE 中可以查看报表内容
8、如要 Master-Sleve 报表,则在 Table 中再放置一个 Table。例如一个 data set 是客户基本 信息,每个客户一条记录,另一个 data set 是客户交易明细,每个客户可能有多条记录,则 先将客户基本信息的 data set 拖置设计界面,会自动放置一个 Table,然后将客户交易明细 的 data set 拖置前一个 Table 中适当位置,即生成一个 Table 中的 Table。选中交易 binding 栏中,选择交易明细的 data set,按“Dataset Parameter Binding...”,选择“CUST_ID"字段,将其和客户基本信息 data set 的 CUST_ID 关 联起来(row["CUST_ID"])

birt动态分组报表制作

birt动态分组报表制作

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插件。

插件地址:(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教程之分组报表分组报表在网格报表的基础上,我们可能还需要对数据进行进一步的处理。

比如,将同类数据显示在一个组中,并对这个组进行统计运算。

如下图所示,对数据按省份进行分组,并将同一省份数据放在一个组内进行汇总统计。

下面我们将上例的网格报表进行一下小的改进,建立一个按用户类型进行分组的报表。

创建数据源方法同上例。

构建数据集本例所用的数据集与上例完全相同,输入与上例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报表使用指南‎1Birt的安装方‎法‎把birt整合‎到了‎M yeclip‎s e6‎.5中,(e‎c lip‎s e的官方‎网站上提供‎有一个b‎i rt-re‎p or‎t-desig‎n e‎r-all-in‎-‎o ne-2_2_2‎.zip,你直接解压‎缩这个就可以了,就‎免‎去了birt与M‎y e‎c lipse6‎.5的‎整合)。

如‎果要把b‎i rt安装‎到Myec‎l ips‎e6.5中,‎要注意‎一些事情1.1ec‎l i‎p se的版本就‎是‎说你的eclips‎e版本要和适当的bi‎r t版本配合,当前‎b‎i rt的最新稳定‎版是‎b irt2.3‎。

如‎果使用的是e‎c lip‎s e3.3‎版本,你应‎该用bi‎r t-rep‎o rt‎-framew‎o r‎k-2_2_2.‎z‎i p,如果使用的‎是eclipse3.‎4,你应该用bir‎t‎-report-‎f r‎a mework‎-2_‎3_0.zi‎p版本不‎一致会出一‎些问题。

1.2‎在Mye‎c lipse‎6.5‎中装birt。

‎M‎y Eclipse‎6‎.5自带的是ecl‎i pse3.3,所以‎只能下载birt-‎r‎e port-fr‎a m‎e work-2‎_2_‎2.zip ‎(下载地‎址:htt‎p://d‎o wnl‎o ad.ec‎l ip‎s /‎b i‎r t/downl‎o‎a ds/index‎2.2.2.php)‎而birt-re‎p‎o rt-fram‎e w‎o rk-2_3‎_0.‎z ip是针对‎e cli‎p se3.‎4的。

把‎下载下来‎的birt-‎r ep‎o rt-fra‎m e‎w ork-2_2‎_‎2.zip包解压,‎解压后的featur‎e s文件夹下的所有‎文‎件拷贝到MyEc‎l i‎p se6.5安‎装目录‎下的..\m‎y ecl‎i pse\‎e clip‎s e\f‎e ature‎s 下,‎解压后的plu‎g i‎n s文件夹下的所‎有‎文件拷贝到..\m‎y eclipse\e‎c lipse\pl‎u‎g ins下。

01-Birt工具数据报表开发手册

01-Birt工具数据报表开发手册

Birt数据报表开发手册1. 创建模板双击BIRT应用程序以启动Birt报表设计环境,首次启动未加载任何报表开发资源。

主界面如下:根据报表设计的需要,Birt本身提供了一些常规的模板:当然,也可以根据实际需要,添加一些使用频率比较高的模板。

下面将以两张图形,一张列表,且图形在上横向排列的模板为例,创建新模板。

点击文件菜单中的新建,选择新建模板,根据实际情况修改模板名称和存储路径:为此模板添加一些附加属性,如该模板的描述信息和模板布局的预览图像等。

点击完成,开始编辑此模板的布局。

在组件按钮区域依次选取:一个标签,用于放置报表的标题,双击输入标题文本。

也可根据需要动态的文本。

一个网格:用于放置水平的两张图形,因此网格设置为2列1行。

可根据实际情况调整。

一张表:用于放置数据报表,明细数据列设置为8列1行。

可根据实际情况调整。

关于组件的使用,将在后面的章节中具体说明。

用鼠标右击网格中的其中一个空白处,依次选择插入,图表。

在弹出的对话框中选取需要的图形。

同样的方法处理另外网格的另外一个。

有关图形的制作,将在图形报表开发手册中详细说明。

设置每种组件的属性,在OutLine窗口中选中已经拖放的组件,根据需要对其相应的属性进行调整。

如字体大小,颜色,对齐方式,样式等设置完成后,模板样式如下:保存模板的配置信息,以便在以后的报表开发中可以直接读取该模板。

2. 新建共享资源库在Birt的资源管理器中添加一些共享资源,如共享库:在弹出的对话框中输入Library库文件的保存路径和名称:确定后,Library库的创建完成。

如果操作无误,可以在对应的目录下浏览到新建的库。

3. 新建数据源在共享库中新建一个制作报表需要的数据库连接,以Oracle9i数据库连接为例,需要先配置数据驱动(数据库的驱动程序配置方法已经在报表设计器的配置手册文档中体现)。

然后在新建的库中,用鼠标右击数据源,选择新建数据源:在弹出的对话框中选择对应数据源类型,并为该数据源命名:选择正确的数据库驱动和URL后,就可以进行数据库的连接测试:可以根据报表需要,创建一个或者多个数据源的配置:数据源创建完成后,可以通过选择选择资源管理器中共享资源,Library库下新建的数据源,右击鼠标选择添加到报表,将新建数据源添加值报表中供使用。

(bi商务智能)birt动态分组报表制作

(bi商务智能)birt动态分组报表制作

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报表数据展示解决方案

1.问题产生背景我们在报表的开发中,时常要处理大的数据处理量和复杂的业务,而brit使用的方式常以sql查询进行展示为主。

在加上由于我们项目中大多数是已EJB作为业务逻辑处理,而报表只是最为了一个客户端的展示,没有访问数据库执行sql的权限。

同时由于WEB具有很大的客户群体,WEB直接访问数据库,势必会降低服务器的安全性。

2.解决问题的流程方案2.1. 确定使用的解决方式由于BRIT提供了SCRIPT 脚本提供解决方式,BRIT 脚本是一种java和javaScript的一种结合使用。

我们使用script调用具有业务处理的java类,实现业务的展示。

2.2. 解决流程2.在数据源的open事件中我们调用业务类,进行读取数据。

实例如下:上面是模拟也一个java的类,获取了一个list集合。

比如变量aaaa的值,在报表上可以用下面的格式展示:3.结果集数据我们就要创建新的数据集对象,这样我们才能对一个集合的数据进行遍历展示。

在数据集的open事件中获取lists中下标为1的的数据集合,进行遍历然后在数据集的fetch中进行遍历数据dataSetRow["ss1"]是指数据集中的一列。

fetch事件执行的是数据集合的循环遍历。

多个数据集合,我们需要增加多个数据集进行遍历4.参数的使用,我们根据具体的参数,动态获取数据。

选择报表参数,进行新建参数。

参数的读取方式是:params["参数名"].value参数名就是我们在进行页面加载报表的时候用get方式传递的数据,URL上的参数名就是指我们报表上的参数名。

6.2.3. 结果实例3.使用后产生的结果应用中我们第一个主要的实例就是进行“多主险投保单”保单开发,保单主要分为4页,数据统一从EJB中进行读取,打印报表调用的时候根据传递的参数读取投保单信息,在数据源中进行拆分,根据数据的结构,创建结果集。

进行展示数据。

BIRT交叉报表动态列DEMO说明

BIRT交叉报表动态列DEMO说明

该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列。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【精编推荐】birt动态分组报表制作
1 BIRT报表开发环境准备 3
1.1 BIRT报表开发准备 3
1.2 建立Web Project 3
1.3 配置交叉报表数据源 6
1.3.1 建立公共资源的文件夹 6
1.3.2 建立公共资源Library 7
2 动态分组交叉报表11
2.1 建立报表文件夹11
2.2 建立报表文件12
2.3 复用报表数据源13
2.4 配置交叉报表结果集14
2.5 配置交叉报表分组字段17 2.5.1 新建Data Cuber 17
2.5.2 新建Groups 18
2.6 配置交叉报表求和字段19 2.7 交叉报表表样制作20
2.7.1 新建Cross Tab 20
2.7.2 完成报表表样制作21 2.8 报表分页实现21
2.9 预览交叉报表21
3 部署交叉报表22
4 运行交叉报表22
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.16
1.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。

然后单击“Finish”,这样“myReport”工程就建立成功了。

1.3 配置交叉报表数据源
1.3.1建立公共资源的文件夹
右击“myReport”工程,选择“New”------“Folder”,弹出下图所示对话框。

在Folder name录入项中输入db,然后点击“Finish”。

公共资源文件夹就建立完成了。

1.3.2建立公共资源Library
右击“db”公共资源文件夹,选择“New”----“Library”,出现下图的弹出窗口,如下:
在“File name”输入项中输入dataSource_library.rptlibrary。

然后单击“Finish”。

然后打开“Data Explorer”,如下图:
右击“Data Source”,在弹出的下拉列表选择项中选择“New Data Source”,如下图:
报表的数据来源于Oracle,但是从弹出的对话框不存在Oracle的连接驱动。

我们可以通过手动添加驱动包的形式。

点击“Manage Drivers”,在弹出的对话框中,单击“Add”按钮,我选择的是oracle数据库自带的驱动jar包,如下图:
然后,将oracle数据库的URL,用户名,密码。

输入相应的信息框中。

可以点击“Test Connection”来测试数据库是否连接正确。

如下图:
2动态分组交叉报表2.1 建立报表文件夹
我在myReport工程下的WebContent文件夹下建立了一个用于存放报表文件的文件夹reports。

2.2 建立报表文件
右击“myReport”工程,选择“New”-----“Report”,出现下图对话框,
然后单击“Next”。

在File name信息框中输入报表文件名称tends_group.rptdesign,然后单击“Next”,会出现一个关于报表类型选择的对话框,这里我采用的是默认选项,然后单击“Finish”。

2.3 复用报表数据源
对该报表使用先前建立的公共数据源,首先打开Resource Explorer窗口,如果当前Ecplise 中未出现Resource Explorer窗口,可以通过以下方法打开。

如下图
打开报表tends_group.rptdesign,将报表模式切换到“Layout”状态下,将dataSource_library 中的数据源“Data Source”拖曳到tends_group中的“Data Source”中,即可完成报表的数据源复用。

2.4 配置交叉报表结果集
在报表“tends_group.rptdesign”的“Layout”模式下,打开“Data Explorer”窗口,右击“Data Sets”,选择“New”-----“New Data Set”。

会出现下图对话框:
这里会要求输入Data Set Name的名字,我采用的是默认“Data Set”。

然后单击“Next”,会出现下图的内容,其中在“Query Text”文本区域中,录入了SQL语句
SQL语句:SELECT ZB,CBZX,YYLY,DL,ZY,SUM(YZ) AS YZ,SUM(JZ) AS JZ,SUM(LJZJ) AS LJZJ,SUM(JZZB) AS JZZB,SUM(KPSL) AS KPSL FROM DWDINFO GROUP BY ZB,CBZX,YYLY,DL,ZY。

如下图:。

相关文档
最新文档