返回顶部
首页 > 资讯 > 后端开发 > Python >非常全面的IReport的使用教程
  • 558
分享到

非常全面的IReport的使用教程

2024-04-02 19:04:59 558人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录简介安装环境版本注意事项百度云下载地址基本操作 新建页面布局style样式中文支持必备比较常用的属性基础控件Break:分页符Ellipse、Round Rectang

简介

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

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

2.对模板进行命名

QQ截图20200927090431

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

3.finish完成新建

QQ截图20200927090857

页面布局

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

QQ截图20200927093724

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

2.删除和添加页面布局

QQ截图20200927095821

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

style样式

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

中文支持必备

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

QQ截图20200930125019

  • 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,而是空白

基础控件

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

image-20200928095840391

Break:分页符

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

举例:

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

image-20200928104442163

查看预览效果:

QQ截图20200928104605

QQ截图20200928104702

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

Ellipse、Round Rectangle、Line、Rectangle:图形

四个图形控件:

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

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

示例:

QQ截图20200928105927

Static Text:静态文本

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

示例:

image-20200928110433029

QQ截图20200928110506

预览:

QQ截图20200928110553

Text Field:文本域

文本域

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

文本域写法:

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

QQ截图20200928112752

字符串需要放到""

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

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

image-20200928111508904

示例:

image-20200928113003603

预览:

image-20200928113037254

Image:图片

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

示例:

QQ截图20200928154120

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

预览:

QQ截图20200928154755

Barcode:条形码

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

QQ截图20200928161101

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

示例:

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使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 非常全面的IReport的使用教程

本文链接: https://lsjlt.com/news/155495.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作