一、iReport 是什么

iReport是一个能够创建复杂报表的开源项目,并且它能调用JasperReports库应用于任何一种Java应用程序。本身是分布式的且由符合GNU通用公共许可的百分之百纯java编写。

由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。iReport能够让我们提高技术方面的信心,比如它能降低学习JasperReports的XML语法的难度,而且能够为熟练的技术人员节省大量的时间并能开发出非常精细的报表。

二、iReport 的下载与安装

JasperReport 的下载地址:http://jasperreports.sourceforge.net/index.html

iReport的下载地址:http://sourceforge.net/projects/ireport

可能有几种不同的分类

iReport-x.x.x.zip 这是官方的zip格式的二进制文件。

iReport-x.x.x.tgz 这是官方的tar gz格式的二进制文件。

iReport-x-x-x-src.zip 这是官方的包含源代码的zip格式的二进制文件。

x.x.x表明了iReport的版本号。每一种都包含必须使用的第三方的库和程序及附加文件,例如模板和一些html格式的基础教程。

三、iReport 的配置

iReport的初始化配置包括:设置所要查看运行后的文档的格式;选择语言;设置编译后的文件目录。我们要配置 iReport 必须运行刚刚安装的 iReport。然后选择菜单选项中工具选项(menu Options → Tools.)。

首先出现如下图的界面(图1.1)。此选项卡是一些简单常规的设置。

图 1.1

这个选项卡(图1.2)是用来设置编译后的文件存储目录,默认的目录会在iReport的根目录。一般情况下是要指定一个有效的目录来保存编译文件。这个目录也可以是加载报表源时的目录。笔者的文件存储目录是 D:"J2EE"iReport ,以后所有的报表文件都将被保存在这个目录下。

图 1.2

这个选项卡(图1.3)设置 iReport 编译后用来预览报表的外部程序。笔者这里只设定了 IE,其它没有设定的编译之后 iReport 会为你生成一个对应格式的文件保存在上面设置的默认目录下,但不会打开。

图 1.3

四、创建 JDBC 连接

任何一种动态报表都需要一个数据源,iReport 支持任何一款关系型数据库作为数据源。

首先我们来看一下怎么建立一个数据源的连接。点菜单(图1.4),出现一个 Connections /Datasources 对话框。

图 1.4

图 1.5

笔者这里已经创建了两个数据源。如果你是第一次使用 iReport 工具来作报表的话,那么你就要首先来创建数据源的连接。点击New 新建一个数据源连接。将出现(图1.6)一个 Connections properties 对话框。这里有很多种数据源类型,我们程序员常用的只有 Database JDBC connection、XML file data source、JavaBeans set data source、EJBQL connection 这几种。其它的一般程序员很少用得到的。(呵呵…..这是笔者个人的看法)

图 1.6

我们选择 Database JDBC connection 后点击 Next 出现一个数据源连接的配置属性对话框(图1.7)。以下是针对笔者的 Oracle 10 数据库连接配置。

图 1.7

配置好后我们需要测试一下是否连接成功。点击 Test 进行测试如出现 Connectin test successful 则表示连接成功(图1.8)。

注意:这里有一个 Save password 复选框,如果你选种了此复选框,则它会将密码保存到一个 .txt 文件里面,如果你的密码不想被暴露话的话,建议不要选此复选框。

图 1.8

创建一个连接后此连接后,笔者的 iReport 就有三个数据源了(图1.9)。

图 1.9

注意:我们创建数据源连接时一定要有数据库连接驱动的支持。iReport 只为我们符带了一个 MySQL 的驱动包,并且不定符合你的 MySQL 数据库的版本。所以我们连接任何一种关系型数据库时都要将驱动拷贝到 iReport 的安装根目录下的 lib 目录里。

五、第一个简单的报表

第一个报表我们就采用 iReport 本身的报表精灵向导来创建一个简单的。iReport Wizard 是一个用来一步步创建报表的工具。点击(图2.0)菜单档案à报表清灵,将出现一个 iReport Wizard 对话框(图2.1)。

图2.0

iReport Wizard 工具可以根据你以往的模版进行报表的创建。也可选择你已经配置好的数据库连接作为此报表的数据源,然后编写SQL语句或导入已有的SQL文件。即使你不会写SQL语句也可以做出一个漂亮的报表出来,因为它有一个 Design… 按钮(图2.2),专门为一些不会写SQL语句的人所设计的。

图2.1

在此视图中你可以选择你要使用的表和表字段,并且它帮我们把表的关系给体现出来了。

图 2.2

下一步需要选择我们要在报表中显示的字段(图2.3)。

图2.3

根据此向导我们可以创建四个组(事实它可以设置很多的组)。

图2.4

向导为我们提供几套显示模版供我们选择(图2.5)。

图2.5

最终它根据我们的设定生成了一份报表(图2.6)。

图2.6

所有的工作已经全部完成,只需要执行报表就可以了。点击后面这个执行动态报表将出来下图(图2.7)的报表结果。

图2.7

如何支持中文。

这个报表的所有数据都是英文的,如果您的数据有中文的话,那么您还需要进行一步设定(图2.8),要修改的地方有三个,1.Font Name 改成中国的字体。2.PDF Font Name 改成 STSong-Light。3.PDF Encoding 改成 UniGB-UCS2-H (Chinese Simplified)。就OK啦。

图2.8

上面我只做了一个简单的报表,其实 iReport+JasperReport 最大的靓点就是设计可视化的图表报表,下面是笔者做的一个简单的图形报表(图2.9)。

图2.9

六、图形报表(饼图)

新建一个chatReport 报表

编写SQL语句(图3.0)。查询每个部门有多少个职员。

图3.0

选择工具栏中插入饼图的快捷键(图3.1)

图3.1

出现一个图形报表选择向导。我们选择第二个三维饼图(图3.2)。

图3.2

点击OK之后,在报表的设计器中出现一个三维饼图(图3.3)。我们需要设置饼图的一些属性,通过右键 Chart Properties 来完成属性的设定。

图3.3

出现了 Chart Properties 对话框后,选择 Chart Data 选项卡图形报表的数据,设置其数据来源。

对应部门的职员的个数

部门名称

图3.4

关闭设计视图。然后选择我们要预览的格式(图3.5)。

图3.5

注意:在生成PDF预览时,需要向 iReprot 的 lib 目录下加入一个 iTextAsian.jar 的亚州语言包,用于处理亚州语言的乱码的问题。iTextAsian.jar 现在很难下载得到了,如果你需要的话给我一个邮件,讲明你所要的东西。

点击工具栏的编译运行,最终执行报表的效果(图3.6)。

图3.6

七、一劳永益的解决中文的问题

前面提到过报表中的中文问题,上面给出的解决方案比较麻烦需要对每个字段进行设定,下面给出一个通用的设定,可以应用到所有的字段,这样我们只须做一次设定永久使用。

第一步:添加一个自定义的字体(图3.7)。

图 3.7

弹出一个添加自定义字体的对话框(图3.8)。

图3.8

点击添加一个新的字体。要想中文不出现乱码,则要跟我的配置一样(图3.9)。

图3.9

配置已完生,以后在使用的时候只要选中字段然后右键属性,在Font 选项卡中 Report Font 中选择我的字体就OK了(图4.0),不用像上面那样子每次都要同时修改三个地方了。

图4.0

八、应用程序调用JasperReport 报表

应用程序包结构(图4.1)。

图4.1

Servlet 代码:

iReport 工具的lib目录下的.jar 全部拷贝到工程下面。

public void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

try {

// 报表编译之后生成的.jasper 文件的存放位置

File reportFile = new File(

request.getRealPath("jasperreport/employee.jasper"));

// 传递报表中用到的参数值

Map<String, String> parameters = new HashMap<String, String>();

// "name"是报表中定义过的一个参数名称,其类型为String 型

//                   parameters.put("name", value);

byte[] bytes = JasperRunManager.runReportToPdf(

reportFile.getPath(), null, DBConnection.getConnection());

//生成PDF文件

response.setContentType("application/pdf");

ServletOutputStream ouputStream = response.getOutputStream();

ouputStream.write(bytes, 0, bytes.length);

ouputStream.flush();

ouputStream.close();

} catch (Exception e) {

System.out.println("出错");

e.printStackTrace();

}

}

记住此应用程序需要添加一些库支持。最简单的办法就是把

运行程序,打开浏览器。

http://localhost:8080/reportdemo/index.jsp出现此页面(图4.2)。

图4.2

点击生成报表。出现我们想要的报表(图4.3)。

图4.3

大功告成。。

iReport使用入门相关推荐

  1. 大数据分析 es hive_使用Hive和iReport进行大数据分析

    大数据分析 es hive 每个JJ Abrams的电视连续剧疑犯追踪从主要人物芬奇先生一个下列叙述情节开始:" 你是被监视. 政府拥有一个秘密系统-每天每天每小时都会对您进行监视的机器. ...

  2. 使用Hive和iReport进行大数据分析

    每个JJ Abrams的电视连续剧疑犯追踪从主要人物芬奇先生一个下列叙述情节开始:" 你是被监视. 政府拥有一个秘密系统-每天每天每小时都会对您进行监视的机器. 我知道是因为...我建造了它 ...

  3. ireport使用参考

    ireport下载地址:https://community.jaspersoft.com/project/ireport-designer/releases JasperReport简易入门教程:ht ...

  4. iReport制作EXCEL、PDF或者HTML文件

    公司用到了iReport制作报表,正好,毕业论文上也得用到报表,也就稍稍学习了下.个人感觉还是有个人教你的话,这个入门的最佳捷径. 一.首先是下载iReport,我下载的是iReport-5.1.0, ...

  5. ireport 5.6.0 + Jasper 6.8.0 报表生成

    iReport 5.6.0 + Jasper 6.8.0 报表生成 一.iReport和Jasper介绍 二. iReport的使用 1. iReport下载 2. 配置JDK 3. 配置数据源 4. ...

  6. iReport 相关资料汇总

    JapertReports&iReport的开源报表实战 本文来自CSDN博客,转载请标明出处:[url]http://blog.csdn.net/hellopro/archive/2007/ ...

  7. ireport中文手册3.7版(无图)

    目录 Giulio Toffoli 1 1 序言... 6 什么是iReport?. 6 功能特点:... 7 iReport 社区:... 7 鸣谢:... 8 2 入门... 8 必要条件:... ...

  8. 【ireport工具制作报表使用流程】

    [ireport工具制作报表使用流程] 1.ireport使用说明 2.安装包及相关环境下载 3.快速入门上手 如何使用代码生成报表 1.ireport使用说明 ireport 是一款方便实用的报表编 ...

  9. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  10. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

最新文章

  1. VMware vSphere Client(4.1/5.0/5.1/5.5/6.0) 客户端下载地
  2. python编程用什么电脑好-初学Python编程看哪些书比较好?
  3. Java 泛型背后的原理是什么?
  4. python处理mysql数据结构_python环境下使用mysql数据及数据结构和二叉树算法(图)...
  5. WPF 透明窗口在桌面上放虫子。。。
  6. 管理低代码公民开发人员的8个技巧
  7. Linux多线程详解
  8. web前端基础(09html5多媒体)
  9. android统计库,android jacoco 统计多模块
  10. 推荐很好用的Goroutine连接池
  11. 【190105】VC++ 家庭理财系统1.0(Access)源码源代码
  12. lcms质谱仪_岛津LCMS-8045三重四极杆质谱仪
  13. Shell实现俄罗斯方块小游戏
  14. 水晶易表(Xcelsius) 2008 学习
  15. 模板匹配及其源代码---Edge Based Template Matching
  16. 解决 filezilla 连接服务器失败问题
  17. java中获取中文拼音(全拼)和中文首字母
  18. 你知道吗?申报深圳市专精特新企业必须先申报创新型中小企业!
  19. java replace 忽略大小写_java替换字符串时忽略大小写
  20. 使用Google时区API显示任何城市的实时本地时间

热门文章

  1. 【无标题】关于CTF的相关知识
  2. ubuntu20.04 常用开发工具整理
  3. 零基础个人网站搭建教程(一个完全的新人如何搭建自己的个人网站)
  4. 小目标检测--SNIP
  5. chrome插件推荐:FaWave(发微)
  6. 网络营销的15大形式
  7. php 按钮外观怎么改变,php 按钮样式
  8. 两个人聪明人的空城——《司马懿之虎啸龙吟》
  9. php写phalapi,PhalApi框架
  10. 稳定性测试怎么测_药物稳定性试验的细枝末节该如何处理?