java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > IReport使用

非常全面的IReport的使用教程

作者:此成非彼诚

iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。本教程给大家详细介绍IReport的使用解析,感兴趣的朋友一起看看吧

简介

iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。

iReport是一个能够创建复杂报表的开源项目。它100%使用Java语言编写。是目前全球最为流行的开源报表设计器。

由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。

用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。

它支持多种输出格式包括:PDF,RTF,XML,XLS,CSV,HTM。

安装环境

本教程环境如下,如版本不同出现与本文内容不合情况请自行百度~

版本

iReport:版本5.0.0

JDK环境:版本1.6,全名:jdk1.6.0_45,即下载jdk-6u45-windows-x64.exe

注意事项

需要本机/虚拟机的JDK环境变量设置为JDK1.6才能运行iReport,环境变量怎么设置应该不必多说了吧,忘了的可以看我这篇博文:win7/win10下的jdk的安装和环境变量的配置

环境变量配置好后如果还是打不开iReport,请重新启动电脑

楼主不才,如有错误之处,请评论必虚心改之

百度云下载地址

链接: https://pan.baidu.com/s/140AioMEZi6N4cedYXl4sjw

提取码: yujq

失效请联系楼主

基本操作

 新建

1.左上角文件——》new

QQ截图20200927085054

2.对模板进行命名

QQ截图20200927090431

3.finish完成新建

QQ截图20200927090857

页面布局

1.打开模板可以看到这样的视图

QQ截图20200927093724

2.删除和添加页面布局

QQ截图20200927095821

style样式

和前端的css一样,为了样式复用,减少繁琐的样式操作,每个样式都可以继承另一个样式,继承的样式没有本身样式的优先级高

中文支持必备

右键点击Styles——》添加一个style名为china

QQ截图20200930125019

比较常用的属性

基础控件

右上角有控件列表,使用只需要拖进布局视图即可

image-20200928095840391

Break:分页符

其中的Page Break 表示在此之下建立一个新的分页,相当于word的分页符

举例:

在第二页1前放一个分页符:

image-20200928104442163

查看预览效果:

QQ截图20200928104605

QQ截图20200928104702

分页符后就是这一页的结束,分页优先级高于detail自动分页

Ellipse、Round Rectangle、Line、Rectangle:图形

四个图形控件:

都可组合其他控件,但操作过复杂,不推荐

示例:

QQ截图20200928105927

Static Text:静态文本

静态文本,不具备自扩展能力,意思是框子有多大,显示的内容就多大,多余的内容不显示

示例:

image-20200928110433029

QQ截图20200928110506

预览:

QQ截图20200928110553

Text Field:文本域

文本域

文本域写法:

点击属性中的Text Field Experssion可对文本域进行编辑

QQ截图20200928112752

字符串需要放到""

使用自扩展,需改变两个属性:

image-20200928111508904

示例:

image-20200928113003603

预览:

image-20200928113037254

Image:图片

图片,可选本地文件或者网络URL,一般使用网络URL

示例:

QQ截图20200928154120

预览:

QQ截图20200928154755

Barcode:条形码

条形码,一般选取Code128条形码

QQ截图20200928161101

示例:

QQ截图20200928161846

table 和 subreport之后介绍

连接数据库-使用table与subreport

导入驱动

1.寻找驱动

以导入Oracle驱动为例,Mysql驱动iReport已存在

首先去能连入生产数据库的项目看看,用的是哪个版本的驱动,然后从Maven仓库中找到Oracle驱动的jar包

比如我这个版本的Oracle驱动

image-20200928164457423

懒的找的童鞋去maven官网下个jar包:https://mvnrepository.com/artifact/com.oracle/ojdbc6/11.2.0.3

2.放入bin

把驱动包放到iReport的安装目录\iReport-5.0.0\bin

3.点击左上角的工具——》选项——》Classpath——》Add JAR

image-20200928170326122

4.找到刚刚放入bin的驱动包添加进去,确定,驱动添加完成

创建连接

1.点击此图标

QQ截图20200928170134

2.点击new——》Database JDBC connection

QQ截图20200928170903

3.选择刚刚导入的oracle驱动,URL、用户名、密码自行填写

QQ截图20200928171026

4.点击Test,连接成功则Save,失败则是某个环节出问题了

QQ截图20200928171956

5.选择此连接,创建连接成功

编辑sql语句

有了连接,我们就需要查询数据库的sql语句了,这里分为主查询和子查询,都可要参数可不要参数

主查询

1.点击上方的按钮

QQ截图20200928171617

2.添加sql

我连接的是本地oracle,查的表是一张测试用户表

可以点击 Read Fields 查看查询到的字段

这个sql是个全查sql且没有条件,我们给它加一个name条件

QQ截图20200928172713

3.添加条件和其参数

image-20200928173009312

name是String类型的,新建的参数也需要此类型

QQ截图20200928173136

点击ok,完成一个带条件的主查询sql语句

4.测试主查询

主查询一般用于整体布局中的参数填入,也就是可以把刚刚查出来的那几个字段的值插入到我们设计的页面中

可以从Fields看到可以选择的字段名

QQ截图20200929090455

用Text Field来插入字段值

QQ截图20200929090910

预览:

因为需要传入参数,所以预览需要一个name的条件参数值

QQ截图20200929090943

输入参数后,可得到预览页面

QQ截图20200929091213

子查询(较难)

很多时候并不是一个主查询的一个sql语句就能查到所有想要的数值,那么可以新建多个子查询

子查询同样可以通过条件参数来查询,可以新建一个条件参数,也可以使用主查询同名的条件参数

1.新建一个dataset

QQ截图20200929091815

一般是单数据源,所以选择创建空的dataset

QQ截图20200929092014

2.设置sql

QQ截图20200929092313

还是熟悉的界面,还是熟悉的操作,传入的参数名取和主查询一样的名字——name,这样只需要输入一次name的值子查询也可查询完毕

特别注意的是,记得给字段取别名,不要都叫一样的名字,不仅自己容易混淆,程序也容易出错

QQ截图20200929094015

3.使用子查询——table

例子中的主查询返回值只有0个或1个对象,而子查询可以返回多个对象(列表),这时候可以使用table了

拖一个table到一个单独的detail中,这样detail会自适应table

选择table所用的dataset,刚刚的创建t1

QQ截图20200929095104

选择需要显示的字段,一般全选

QQ截图20200930094416

选择连接的数据源,一般是一个数据源,也就是创建连接中的那个数据源

QQ截图20200930094516

如果是第一次创建table,勾上这个,会为表头\表尾、表列头\表列尾、表边框、表内容各创建一个style

QQ截图20200930094742

表介绍

QQ截图20200930095102

Table Header\Table Footer:表头\表尾Column Header\Column Footer:表列头\表列尾Detail:表内容

style介绍

QQ截图20200930094940

table:表整体(相当于围了一圈边框)table_TH:表头\表尾(第一行/最后一行)table_CH:表列头\表列尾(第二行/倒二行)table_TD:表内容(除此之外的行)

最终是这样展现的

QQ截图20200930100429

终极丑有木有?明明只想要最原始的表格就好了,太花花绿绿了

删除除了有字段的所有其他行

QQ截图20200930101028

将Table、Column Header、嵌入的Text Field、Static Text的样式全部选择为table_TD,再拉长Text Field、Static Text占据列长

QQ截图20200930101445

此时表就创建好了,这个表是根据子查询dataset t1的数据来填入信息的,t1是需要传入一个参数的,这个参数的值我们需要去指定,右键Table——》Edit Table datasource

QQ截图20200930113924

t1子查询需要一个name参数的值,这个值可以从输入参数(如 P N A M E ) 取 , 也 可 以 自 己 去 设 定 ( 如 " c i c h e n g " ) , 还 可 以 从 主 查 询 的 字 段 值 中 取 ( 如 P{NAME})取,也可以自己去设定(如"cicheng"),还可以从主查询的字段值中取(如 PNAME)取,也可以自己去设定(如"cicheng"),还可以从主查询的字段值中取(如F{NAME})

QQ截图20200930123320

布局:

QQ截图20200930123548

预览:

QQ截图20200930123621

表格这个属性记得改成这个:

可以达到没数据也可以有表头的效果

image-20200930130327417

子模板subreport

相当于再新建了一个模板,但主模板包含这个子模板

子模板本身也具备所有主模板的特性,拥有主查询和子查询,层层套娃

示例暂且先鸽了,因为以上内容足以完成模板的布局与样式,之后会继续更新~

本人原创内容,如需转载,请联系一下我~

到此这篇关于非常全面的IReport的使用的文章就介绍到这了,更多相关IReport使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文