`
haofeng82
  • 浏览: 144431 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多

自己写的birt学习笔记,由于是根据英文教材学习的,可能在理解上会出现一些偏差,见谅……,如需要示例,可以联系我

BIRT概述

BIRT (Business Intelligence and Reporting Tools), 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java J2EE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。BIRT 也提供了图标引擎让你能为应用增加图表。

有了 BIRT,你可以为应用程序构建丰富的报表。

  列表 列表是最简单的报表。当列表变长时,你可以把相关数据增加到同一分组(基于客户的订单分组,基于供应商的产品分组)。如果数据是数字类型的,你可以轻松的添加到总数平均、或其他汇总中。

  图表 当需要图表表现时,数字型数据比较好理解。BIRT 也提供饼状、线状以及柱状图标等。

交叉表 交叉表(也叫做十字表格或矩阵)用两种维度展示数据

信函和文档 通知、信件、以及其他文本文档都很容易通过 BIRT 方便建立。文档包括正文、格式、列表、图表等。

混合报表 很多报表需要联合以上所有的报表构成单一文档。例如,一份客户声明会列出客户所需要的信息,为当前促进(promotions)提供文本,以及提供并行的出帐和入帐列表。一份财政报表将包括声明、图表、表格,所有这些都将进行全方位的格式化,来匹配共有的配色方案。

BIRT开发流程概述

配置BIRT开发环境

我们可以基于eclipse进行birt的开发,在这里,我们在eclipse中集成了myeclipse7,由于myeclipse7已经集成了birt组件,所以我们只需要安装 myeclipse7插件即可。

配置数据源

数据源及报表所需要的数据的来源,报表展示的数据均来自数据源中。

BIRT目前支持多种数据源,具体包括数据库数据源 webservice数据源和xml数据源,和javascript数据源。目前最常见的数据源是数据库数据源。

配置报表用到的数据集

具体报表中用到的数据集合叫做数据集,数据集是按照一定的条件从数据源中获取到的数据集合。数据集中的数据可以被排序、过滤、以及分组。

设计报表

通过BIRT的开发平台,我们可以很方便快捷的设计出复杂、美观的报表。一个报表的信息存储在一个xml格式的报表文件中。

我们可以打开一个报表文件先看一下,在这里报表的文件看起来很复杂,所以,一般我们都是通过可视化开发工具进行报表文件的编辑。

部署报表到程序

当报表设计完成后,我们需要将其部署到相应的应用程序以供用户使用。BIRT提供了相应的运行时环境,可以将其整合到我们的web应用中,这样就可以运行报表了。

一个实例

实例说明

假设有这样一个报表设计开发要求:mysql数据库中有一张与产品有关的数据表,其中包含产品分类名称、产品编号、产品名称、产品价格四个字段。

要求通过一张图表,按照产品的分类,罗列出各个分类下的产品详细信息。并统计每一分类下的产品数。

最后通过饼图将每个分类下的产品数量统计出来。

创建工程

首先我们创建一个工程,将其命名为reportShow;然后向其增加开发报表的报表功能。

选择file-new –reportProject,选择j2ee5.0,并将工程名称命名为:reportShow。我们先来看一下整个工程的结构:这个工程和普通的java web工程结构是一样的。不同的是多出了报表所用的运行时环境,主要是report web lib,以及在web.xml中添加了相应的servlet配置。

创建报表

下面我们将创建一个报表文件,将其命名为demoReport

我们在reports文件夹下点击右键选择new -– report,输入报表名称:demoReport.rptdesign,选择空白报表一项;选择使用嵌入式标签进行展示;点击完成。这样就创建了一个报表文件。

现在我们来看一下,刚才的操作创建了两个文件,一个是/demoReport.jsp,用于演示报表jsp页面,另一个是:/reports/demoReport.rptdesign,使我们接下来需要编辑的报表文件。

数据库、数据源和数据集的配置

打开demoReport.rptdesign文件,我们现在首先要做的是配置数据源,以获取数据

我们使用数据库类型的数据源作为当前报表的数据源,我们使用mysql数据库,数据库名称为birtDemo,在其中有一名为product的表,包括4列:id nameprice,categoryName分别代表主键,产品名称,价格,所属分类名称。

接下来,我们配置下birt数据源。在data explore面板中选择dataSource,右键选择new dataSource ,选择数据库数据源。选择:com.mysql.jdbc.driver.这个是已经配置好的数据源。由于时间有限,数据库数据源参数的具体配置请参见myeclipse 数据源的配置方式,在这里不再演示。

点击测试,检测是否能够连接到数据库中。若测试通过,则数据库数据源创建成功。

接下来我们创建数据集product,这里的product数据集,将包括birtDemo数据库的product表中的所有数据.

dataSet上,右键选择new Data Set,输入数据集名称“product”,所属的数据源选择默认数据源即可。点击下一步,输入数据集查询语句:select * from birtdemo.product

,点击完成。接下来我们可以预览一下刚创建的数据集,如果有不满意的地方还可以对其进行修改。

预览一下,确实查询到了所有的数据。完成数据集的创建操作。

设计报表

我们首先将product数据集中的所有数据展示在一个表格中。

palette 面板中拖动一个table对象到右侧文件中,这样会在报表文件中添加一个列表对象。

选择列数。然后在data explore面板中,拖动product数据集的各个列到tabe中。切换到预览标签,我们可以看一下此时的展示效果:在table中列出了数据集的各个列的数据。

接下来,我们修改下列表的表头部分。分别改为:编号、名称、价格、分类。

下面,我们对报表进行按照分类进行分组操作。

首先我们调整一下各列的展示顺序,换成分类、编号、名称、价格。

然后在表格上按右键选择增加分组,选择分组列:categoryName。这样,就添加了一个分组到报表中。

接下来我们去掉多余的字段,并调整分组的样式【将分组改为对齐数据第一行并使其竖行剧中展示】。

下面我们对报表进行下美化。我们采取样式表的方式对列表进行美化。

先创建一个样式表文件:report.css,将其放置到css文件夹中。在其中添加上表格样式:

.tables{

text-align:center;

line-height:25px;

font-size:14px;

margin: 0;

border: 1px solid #99CCCC;

}

.table-header{

color:red;

}

我们在报表文件的out-line面板中导入这个文件:在Styles上按右键,选择Use Css File,选择我们刚才创建的文件,完成css文件的引入。

然后我们在报表的table上选择style—apply style 选择tables,这样就增加了样式到表格上了。我们可以预览一下效果。

我们接着给当前的报表增加一个图表,以饼图的形式,统计各个分类的产品数量。

我们先来定义一个数据集:叫做productStat,这里按照分类名称进行分组,取得分组名称以及分组中包含的数目。

select birtdemo.product.categoryName,

count(birtdemo.product.price)

from birtdemo.product

group by birtdemo.product.categoryName

接下来,我们在报表文件中拖入一个Chart组件,我们选择chart的类型为pie,即饼图。在数据选择标签中,我们选择使用数据集的方式,选中刚创建的数据集productSta

将分类名称部分拖动到分类部分;将总数部分拖动到左侧作为饼图的值。保存后点击报表的预览看一下效果。这样,一个简单的饼图就添加到报表中了。

发布

到目前为止,我们还只是在birt的开发环境中预览报表文件的效果,下面我们将在实际环境中运行报表看一下。

首先打开创建报表时自动生成的页面:demoReport.jsp

页面中使用了<birt:viewer>标签来访问我们刚才创建的报表,几个参数的意思很明显,分别指定了报表路径以及展示格式等。

最后,我们部署刚创建的应用,运行一下看一下实际效果。

分享到:
评论

相关推荐

    Python 强化学习 DQN Flappy Bird

    总结来说,这个项目展示了DQN在解决复杂环境决策问题上的能力,特别是如何在Flappy Bird这样的动态环境中学习有效的策略。通过理解和实践这个项目,你可以深入理解强化学习和DQN算法,并将这些知识应用到其他类似的...

    flappybird强化学习

    总结来说,"flappybird强化学习"项目展示了强化学习在游戏自动化领域的应用,通过训练智能体学习Flappy Bird的策略,实现无需人工干预的高分游戏。这个过程涉及到深度学习、Q-learning或DQN算法、环境模拟和训练优化...

    Flappy bird资源.zip

    总结起来,通过分析和实践Flappy Bird,我们可以掌握Unity中的2D游戏开发基础,包括资源管理、脚本编写、物理引擎运用和游戏逻辑设计。进一步扩展到"小鸟大战"等更复杂的游戏,可以深化对Unity引擎的理解,提升游戏...

    Flappy Bird 源代码 贴图 以及 音效

    总结起来,学习Flappy Bird的源代码、贴图和音效,不仅能让我们深入了解游戏开发的全貌,还能锻炼我们的编程思维、艺术感知和音频处理能力。对于长安大学的学生而言,这是一个极好的实践平台,而对于Unity爱好者,这...

    flappybird源代码

    总结,通过对Flappy Bird的源代码学习,我们可以深入了解游戏开发的基本原理,包括图形绘制、物理模拟、事件处理、分数系统等。同时,这也是一次学习C语言编程和使用图形库的实践机会。如果你对游戏开发感兴趣,从这...

    Java课程设计大作业FlappyBird

    总结起来,"Java课程设计大作业FlappyBird"是一个全面的Java编程实践项目,涵盖了面向对象编程、游戏循环、事件处理、碰撞检测、GUI设计和资源管理等多个关键知识点。通过这个项目,学生不仅能够提高编程技能,还能...

    FlappyBird实训报告.docx

    本实训报告详细阐述了基于Android平台的《FlappyBird》小游戏的开发过程,旨在提升学员在移动游戏开发和多媒体技术应用方面的能力。游戏设计简单,玩家通过点击屏幕控制小鸟飞行,避开不断出现的固定间距管道,得分...

    flappy bird as3版

    总结一下,通过研究和分析这个AS3版的Flappy Bird,我们可以学到如何用AS3进行游戏开发,包括但不限于角色动画控制、物理引擎应用、事件监听、碰撞检测、得分系统设计以及用户体验优化。这不仅能够提升我们的AS3编程...

    flappy bird c++版本

    总结,通过学习和实践C++开发Flappy Bird,初学者不仅可以掌握基本的游戏开发流程,还能提升对C++语言的理解和应用。虽然这是一个简单的项目,但它涵盖了许多编程和游戏设计的核心概念,是进入游戏开发领域的良好...

    FlappyBird源码 ios 开发

    总结,通过对Flappy Bird iOS源码的学习,开发者不仅能了解2D游戏开发的基本流程,还能掌握SpriteKit框架的使用、物理引擎的实现、碰撞检测的算法以及游戏循环的构建等关键技能。这对于提升iOS应用开发能力,尤其是...

    鸟类识别训练数据集(bird_photos).zip

    总结来说,"bird_photos"数据集提供了一个深入研究和实践深度学习和图像识别技术的平台。通过对这个数据集的学习和应用,我们不仅可以提升在图像识别领域的技能,还能为生态保护和科学研究做出贡献。

    flappybird源码

    总结,Flappy Bird的源码揭示了游戏开发的核心原理,而Cocos2d-x Editor则为开发者提供了便捷的工具,两者结合,为学习游戏开发提供了一个生动的实例。无论你是想了解游戏开发的初学者,还是寻求提高开发效率的专业...

    Scratchflappybird_flappybird_scratch_

    总结来说,使用Scratch制作Flappy Bird小游戏不仅锻炼了我们的逻辑思维能力,还让我们熟悉了基础的编程概念。通过实践,我们可以更好地理解程序是如何运作的,并且能够创造出自己的互动项目。无论是对于孩子还是成年...

    Libgdx版本FlappyBird

    总结来说,"Libgdx版本FlappyBird"是一个学习Libgdx的绝佳案例,它涵盖了游戏开发的基础知识,包括图形渲染、物理模拟、用户输入、音频处理和状态管理。通过这个项目,开发者不仅可以掌握Libgdx的基本用法,还能了解...

    FlappyBird源代码

    总结来说,FlappyBird源代码的学习不仅能帮助我们理解Java编程和Eclipse IDE的使用,还能让我们深入掌握游戏开发的基本原理和技巧。通过这个项目,开发者可以提升对图形编程、事件处理、物理模拟等领域的理解,为...

    app inventor开发Flappy bird小游戏(北邮移动应用开发实验)

    总结来说,"app inventor开发Flappy bird小游戏"是一项极好的实践项目,它不仅能够帮助初学者快速掌握App Inventor的基本操作,还能够锻炼其逻辑思维能力和问题解决技巧。而北邮的这个实验设计,无疑为学习者提供了...

    FreeBird2011

    总结来说,【FreeBird2011】源代码是一个丰富的学习资源,它涵盖了项目管理、软件架构、编程技术、系统设计等多个方面,对于想要了解2011年左右IT行业的开发者来说,具有很高的历史价值和学习意义。通过阅读和分析...

    unity3d做的flappyBird

    总结,Unity3D提供了完整的工具链,使得开发者可以高效地创建Flappy Bird这样的2D游戏。通过这个项目,我们可以学习到游戏开发的基础知识,包括物理系统、碰撞检测、动画控制以及用户交互,这些是开发任何类型游戏都...

    Flappy Bird 源码

    总结来说,Flappy Bird的源码提供了一个很好的学习平台,涵盖了2D游戏开发的基本元素,包括游戏循环、动画制作、物理模拟、碰撞检测以及用户交互等。通过分析和理解这些代码,开发者可以进一步提升游戏开发技能,为...

    FlappyBird正点原子mini

    总结来说,《FlappyBird正点原子mini》是一个生动的实例,让学习者能深入理解嵌入式系统开发,特别是STM32微控制器的应用,以及如何在有限的硬件资源下实现复杂的游戏逻辑。这对于提升嵌入式开发者的设计能力和实践...

Global site tag (gtag.js) - Google Analytics