非常全面的IReport的使用教程

目录
  • 简介
  • 安装环境
    • 版本
    • 注意事项
    • 百度云下载地址
  • 基本操作
    • 新建
    • 页面布局
    • style样式
      • 中文支持必备
    • 比较常用的属性
  • 基础控件
    • Break:分页符
    • Ellipse、Round Rectangle、Line、Rectangle:图形
    • Static Text:静态文本
    • Text Field:文本域
    • Image:图片
    • Barcode:条形码
  • 连接数据库-使用table与subreport
    • 导入驱动
    • 创建连接
    • 编辑sql语句
      • 主查询
      • 子查询(较难)
  • 子模板subreport

简介

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

  • 一般选择A4纸张,而且是竖的A4,根据实际情况选择其他类型纸张大小
  • 再选择 Open this Template 打开此模板

2.对模板进行命名

  • Repoet name:模板名
  • Location:文件存放地址
  • File:模板文件全路径(Location\Repoet name.jrxml)
  • 下一步

3.finish完成新建

页面布局

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

  • 红框标出来的是页边距,和word中的页边距一样,是内容与纸张的距离
  • Title:标题,仅在第一页显示一次
  • Page Header:页眉,每页出现,可用于放页码,创建人等信息,值可变
  • Column Header:列头部信息,每页出现,一般不用
  • Detail:内容信息(使用重点),可添加多个Detail,控件基本上放在Detail中,它会自动根据体内的内容大小进行扩展、分页
  • Column Footer:列底部信息,每页出现,一般用于统计列数据。
  • Page Footer:页脚,每页出现,可用于放页码,创建人等信息,值可变
  • Last Page Footer:最终页脚,最后一页显示,一般用于显示编制人等信息
  • Summary:总结,最后一页显示,一般用于显示所有页面的统计

2.删除和添加页面布局

  • 可以看到上方所解释的布局在此处都有其显示,灰色的代表这个布局不启用
  • 删除布局:右键点击一个启用的布局——》Delete Band
  • 添加布局:右键点击一个可以添加的布局(一般添加Detail)——》Add Another
  • Detail Band启用布局:右键点击一个未启用的布局——》Add Band

style样式

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

中文支持必备

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

  • pdf font name:STSong-Light
  • Pdf Embedded:√
  • pdf Encoding:UniGB-UCS2-H
  • default style:√

比较常用的属性

  • Padding and borders:设置内边距和边框
  • Font name:字体
  • Size:字体大小
  • Horizontal Alignment:水平方向所处位置
  • Vertical Alignment:垂直方向所处位置
  • Line Spacing:行距
  • Blank when null:勾选后如果传入的数据是空的,不会显示null,而是空白

基础控件

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

Break:分页符

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

举例:

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

查看预览效果:

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

Ellipse、Round Rectangle、Line、Rectangle:图形

四个图形控件:

  • Ellipse:椭圆
  • Round Rectangle:圆角方形
  • Line:横线
  • Rectangle:方形

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

示例:

Static Text:静态文本

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

示例:

预览:

Text Field:文本域

文本域

  • 具备自扩展能力,不管框子多大,都会完整显示
  • 具备使用数据参数能力,使用方法:$F{导入的字段名}

文本域写法:

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

字符串需要放到""

  • 字符串需要放到""中
  • 可使用加号(+),进行字符串拼接
  • 调用Paramters:$P{参数名}
  • 调用Fields:$F{数据库字段名}
  • 调用Variables:$V{变量名}
  • 可使用基础运算,如三元运算

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

示例:

预览:

Image:图片

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

示例:

  • Image Expression:就像文本域一样使用,可从数据库拿数据填充,放入图片URL
  • Scale Image:选择Real size或者Real height会保持原图的比例,选择Retain Shape会随着图片框的大小改变图片的大小
  • Using Cache:启用图片缓存,可以看到URl内的图片样子

预览:

Barcode:条形码

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

  • Code Expression:就像文本域一样使用,可从数据库拿数据填充,放入条形码内容
  • Orientation:条形码方向,none就是正方向,left就是把条形码顺时针转90°,以此类推
  • Text Position:条形码内容显示,Bottom就是在条形码下方显示,None就是不显示
  • Module Width:条形码的长度,是以倍数增加的长度

示例:

table 和 subreport之后介绍

连接数据库-使用table与subreport

导入驱动

1.寻找驱动

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

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

比如我这个版本的Oracle驱动

懒的找的童鞋去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

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

创建连接

1.点击此图标

2.点击new——》Database JDBC connection

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

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

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

编辑sql语句

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

主查询

1.点击上方的按钮

2.添加sql

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

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

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

3.添加条件和其参数

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

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

4.测试主查询

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

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

用Text Field来插入字段值

预览:

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

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

子查询(较难)

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

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

1.新建一个dataset

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

2.设置sql

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

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

3.使用子查询——table

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

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

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

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

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

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

表介绍

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

style介绍

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

最终是这样展现的

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

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

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

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

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

布局:

预览:

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

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

子模板subreport

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

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

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

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

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

(0)

相关推荐

  • Ireport的安装与使用教程

    Ireport的安装及使用 一. 安装ireport 1.点击安装包,可以一直点击下一步,安装完成. 2.安装完成后,要在如下安装目录下添加ojdbc14.jar. 3.数据源的添加和修改 (1)进入ireport,点击如下位置,可以添加数据源. (2)选择JDBC数据连接方式.选择第一个,点击下一步. (3)在如下界面中,编辑所要连接的数据库.在填写password时,右侧的save password要勾选上,这样你在以后每次需要连接数据库时,不用每次都要输入数据库密码了. **(注意)**在

  • iReport简单使用方法图文教程

    iReport是一个能够创建复杂报表的开源项目,它100%使用Java语言编写,是目前全球最为流行的开源报表设计器,由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表. iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器. iReport的遵循AGPL自由开源协议,在SourceForge.net开源社区发布 . 根据iReport和Jasper Studio的维护公告,自iReport版本5.5.0之后,终止

  • iReport使用教程(示例教程)

    在使用ireport的过程中,因为各种功能都要百度,但是大家使用的例子又千差万别让人很苦恼,所以用一个简单例子贯穿的展示一下ireport的常见功能. iReport简介 说到iReport不得不先介绍Jasperreport,Jasperreport是一个报表制作程序,用户需要按照它制定的规则编写 一个XML文件,然后得到用户需要输出的格式文件.它支持输出的文件格式包括PDF,HTML,XML,XLS,CVS等等.而iReport就是一个制 作Jasperreport的XML文件的可视化开发工

  • ireport数据表格报表的简单使用

    如果出现ireport打不开的问题正常都是因为JDK版本太高了,百度下如何简单,很容易的 首先:文件->new,选择Blank A4,Open this template 2.取个名字,选择下保存的位置,点击完成 3.此时新模板已经打开,下面我们开始介绍下模板的各部分是什么 4.设置连接驱动 第一步:选择new 第二部:选的Datebase JDBC Connection 第三步: 好了就点击save,会自动选中你刚建的数据源,下面编写SQL语句获取数据库的数据 5.编写sql语句 6.报表页面

  • iReport使用指南及常见功能示例详解

    目录 报表结构 数据源 示例 3.1 简单示例 3.2 分组示例 3.3 子表方式分组查看 3.4 图表示例 3.4.1 饼图 3.4.2 柱状图 3.5交叉报表 在使用ireport的过程中,因为各种功能都要百度,但是大家使用的例子又千差万别让人很苦恼,所以用一个简单例子贯穿的展示一下ireport的常见功能. 我使用的是iReport 3.5.1,使用的示例数据表如图: sales表:(人名.大致结构来自帆软电子文档,如有雷同,无意冒犯) sellers表: 下面开始介绍: 报表结构 左边是

  • 非常全面的IReport的使用教程

    目录 简介 安装环境 版本 注意事项 百度云下载地址 基本操作 新建 页面布局 style样式 中文支持必备 比较常用的属性 基础控件 Break:分页符 Ellipse.Round Rectangle.Line.Rectangle:图形 Static Text:静态文本 Text Field:文本域 Image:图片 Barcode:条形码 连接数据库-使用table与subreport 导入驱动 创建连接 编辑sql语句 主查询 子查询(较难) 子模板subreport 简介 iReport

  • 可能是最全面的 Python 字符串拼接总结【收藏】

    在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅. 加号连接 第一种,通过+号的形式: >>> a, b = 'hello', ' world' >>> a + b 'hello world' 逗号连接 第二种,通过,逗号的形式: >>> a, b = 'hello', ' world' >>> print(a, b) hello world 但是,使用,逗号形式要注意一点,就是只能用于pr

  • 非常全面的Java异常处理(全文干货,值得收藏)

    一.初始Java异常 1.对异常的理解:异常:在Java语言中,将程序执行中发生的不正常情况称为"异常".(开发过程中的语法错误和逻辑错误不是异常) 2.Java程序在执行过程中所发生对异常事件可分为两类: Error:Java虚拟机无法解决的严重问题.如:JVM系统内部错误.资源耗尽等严重情况.比如:StackOverflowError和OOM.一般不编写针对性 的代码进行处理. Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理.例如

  • 超全面的SpringBoot面试题含答案

    1. 什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用Spring 的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手. 2. 为什么要用SpringBoot 快速开发,快速整合,配置简化.内嵌服务容器 3. SpringBoot与SpringCloud 区别 SpringBoot是快速开发的Spring框架,SpringCloud是完整的微服务框架,SpringCloud依赖于Sp

  • 必须详细与全面的Java开发环境搭建图文教程

    在项目产品开发中,开发环境搭建是软件开发的首要阶段,也是必须阶段,只有开发环境搭建好了,方可进行开发,良好的开发环境搭建,为后续的开发工作带来极大便利. 对于大公司来说,软件开发环境搭建工作一般是由运维来做,然而,对于小公司来说,这个工作就交给开发人员来做了,如开发经理.不管这个工作是交给运维人员做,还是 交给开发人员做,能确定的是:做这件事的人,一定是个资深的人,如此,方可让开发环境稳定运行,从而为后续的开发提供便利. 现实中,只有极少部分开发人员接触服务器(能接触的人,基本都是开发组长及其以

  • 超全面的vue.js使用总结

    一.Vue.js组件 vue.js构建组件使用 Vue.component('componentName',{ /*component*/ }): 这里注意一点,组件要先注册再使用,也就是说: Vue.component('mine',{ template:'#mineTpl', props:['name','title','city','content'] }); var v=new Vue({ el:'#vueInstance', data:{ name:'zhang', title:'th

  • 很全面的JavaScript常用功能汇总集合

    本文主要总结了JavaScript 常用功能总结,如一些常用的额JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式.  目录: 众所周知,JavaScript是动态的面向对象的编程语言,能够实现以下效果: 丰富Web 网页功能 丰富Web界面 实现本地或远程存储. 实现分布式网络应用的前端组件,并在后台进行数据存储管理. 使用JavaScript可以实现完整的分布式Web 应用.  一.JavaScript 中的数据类型 JavaScript 提供三种元数据类型,string,numb

  • 非常全面的php日期时间运算汇总

    实例讲解之前,先来介绍几个核心函数:  mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳. 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响. 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值. 语法:mktime(hour,minute,second,month,day,year,is_dst) 参数               描述  hour       可选.规定小时.  minute   可选.规定分钟.  second   可

  • 非常全面的Python常见基础面试题及答案

    目录 Python 1 Python垃圾回收机制是什么 2 元组和列表的区别 3 元组可以作为字典的key? 4 进程 线程 协程 4.1 进程 4.2 线程 4.3 协程 5 赋值.浅拷贝和深拷贝 6 GIL 7 列表去重 8 最常用的排序算法及其复杂度 8.1 冒泡排序 9 闭包 10 with 11 实例方法 静态方法 12 迭代器和生成器 12.1 迭代器 12.2 生成器 13 匿名函数 14 map reduce filter 14.1 map 14.2 reduce 14.3 fi

  • 比较全面的C 、Java、JavaScript中的正则表达式详解

    什么是正则表达式? 正则表达式(Regular Expression) 就是用某种模式去匹配一类字符串的公式.如你要在一篇文章中查找第一个字是"罗"最后一个字是"浩"的三个字的姓名,即"罗 * 浩":那么"罗 * 浩"就是公式,也称作 模式(Pattern) ,这篇文章就是 要匹配的串( 或叫文本 text) .再如,你要检查输入的一个字符串是否是 126 邮箱的格式,你得制定一个规则去查检,这种规则就是正则表达式. 从入门开

随机推荐