Jasperreport## 标题基础教程

下载地址:https://community.jaspersoft.com/community-download

1.标题创建项目及文件

1.1 打开Jaspersoft Studio工具,点击File->New->Project先创建一个项目


然后填写项目名字为demo,创建一个名叫demo的项目

1.2 点击File->New->Jasper Report(也可以直接在demo项目上右键New->Jasper Report),选择一个竖向A4纸大小的模板


Data Adapter可以选择 One Empty Record 选项,即空数据源,完成后就创建好了第一个模板

2. 模板设计界面区域说明

2.1中间的模板设计区域分别多个band,这些band都可以右键删除

Title:标题区,如果数据有多页只会在第一页打印
Page Header:页头区,多页的情况下每页都会打印
Column Header:列头区,配合下面的Detail区打印列表数据,多页的情况下每页都会打印
Detail:可以新增多个Detail区,可以组合打印出多个列表数据,多页的情况下每页都会打印
Column Footer:列表底部区,多页的情况下每页都会打印
Page Footer:页底部区,多页的情况下每页都会打印
Summary:合计区,只会在最后一页打印

3. 添加报表元素

3.1先从右侧Basic Elements区域拖拽一个Static Text元素到Title区,可以任意调整元素的大小和位置,双击可以修改元素要显示的内容,选中元素后,可以在右侧设置元素的边框,字体和大小,文本的对齐方式等等。

3.2在左侧Outline区域Paramters上右键Create Paramter创建一个新的属性,命名为name,类型java.lang.String

3.3拖拽name属性到Page Header区域,同样可以在右侧设置它的属性

4.属性解析

4.1基础元素

线(Line)、矩形(Rectangle)、椭圆(Ellipse)、静态文本(Static Text)、字段文本(Text field)、图片(Image)、框架(Frame)、子报表(Subreport)、交叉报表(Crosstab)、图表(Chart)、段落之间的空白(Break)
元素列表面板:

元素列表面板又分为两个子面板:

4.2元素的属性

元素的具体属性依赖于具体的元素类型,下面是矩形元素的属性视图:

5. 元素的插入、选择以及位置调整

5.1插入元素

用鼠标从 Palette 中拖拽出需要的元素,放到栏内,这时的元素会有一个默认的宽度大小。然后就可以使用鼠标来调整这个元素的高度与宽度啦:

5.2选中多个元素

使用鼠标在你所需要选中的多个元素外围,画一个大矩形,把这些元素都包围在内,就可以一次性选中多个元素:

注意,选中多个元素后,它们的 properties 面板就只会展示这些元素所共同拥有的属性!

5.3调整元素位置

默认会在背景中展示 Grid 的小格子,这可以在 View -> Show Grid 中进行控制。默认会让元素紧贴着这些小格子,这可以在 View -> Snap to Grid 中进行控制,Grid Size调整格子大小

5.4元素布局

有四种容器布局:自由布局(Free layout),默认。水平布局(Horizontal layout)。垂直布局(Vertical layout)。网格布局(Grid layout)。有两种方式可以选择容器布局:
1.右键选择某个容器,然后选择 “Arrange In Container”,最后再选择你想要的容器布局。
2.先选择某个容器,然后在相应容器的 Properties 面板中,Appearance->Layout 中进行下拉选择即可:

5.5格式化元素

右键选择某个元素,在上下文菜单中就能看到格式化工具项

5.5.1调整所在层(Order)

5.5.2容器内的对齐方式(Align in Container)

5.5.3调整大小(Size to Container)

5.5.4 其他

5.6文本字段元素

文本字段表达式(text field expression)的 class 类型可以是这些:

除了表达式(Expression)之外,文本字段元素还有这些属性:


static text:这个组件用到的最多的就是字体设置,还有边框设置,不多介绍,看看就懂了。字体的大小,上下左右的对齐方式在顶部设置

Text Feild:这个地方与static text基本属性设置并无差异,有几个地方需要注意一下

expression:就是即将在这个文本框显示的东西,这个表达式点开后可以选择参数(parameters),函数变量(variable),数据库字段(fields),还可以是自由组织的其他数据,比如两个字符字符串拼接,两个数字类型做计算,基本的Java表达式都可以用在里面。
black when null:必须勾选,方当某个表达式结果时null时页面会把null打印在页面,既不美观,勾选后会打印空白。
pattern:当表达式的结果是日期、时间、金钱等可以可格式化的数据时,可以对原数据格式化,比如yyyy-MM-dd等,这是最常用的。

6. 纸张属性

1. 纸张:点击报表,如图所示打开报表的设计页面,如图:


看一下纸张最常用的属性:

When no data type,是指当数据库查出来的数据是空时显示什么,默认显示的是一张白纸,开发的时候为了好看和美观我们一般选择下面这个属性

这个的意思是除了数据区域不显示,其余的都显示,这样我们会看到报表的表头标题等内容,比较美观。
下面这两个属性也有用到

这两个属性分别设置标题和结尾是否在新的页面显,依据需求来定,当报表很多的时候会这么做,标题相当于报表的封面,summary相当与报表总结。
还有一个属性就是ignore pagination,就是忽略分页,报表以一个整体的结构显示,不会出现按照纸张大小分页。
下面这个用来编辑纸张大小和纸张方向(纵向,横向),当报表很长,A4大小不足以容纳的时候会用到。


7.函数

1. 创建一些统计函数用来统计数据,比如求和,求平均等等。如图:

2.页脚设置

创建一个Text Field
双击获取编辑页面,双击PAGE_NUMBER获取变量


编辑页脚属性

样式可自定义:
插入图片:创建参数image,类型String,图片表达式获取数据方式:
new ByteArrayInputStream(org.apache.commons.codec.binary.Base64.decodeBase64($P{image}.getBytes()))


后端代码实现:Base64导包:import org.apache.commons.codec.binary.Base64;
//测试
// 读取图片字节数组

ClassPathResource pathResource = new ClassPathResource("a.jpeg");
InputStream inputStream = pathResource.getInputStream();
byte[] data = new byte[inputStream.available()];
inputStream.read(data);
inputStream.close();
Base64 base64 = new Base64();
byte[] encode = base64.encode(data);
parameters.put("image", StringUtils.newStringUtf8(encode));//获得为图片设置的参数,把图片传给这个参数

Jasperreport 基础教程相关推荐

  1. Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

    自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...

  2. [SQL基础教程] 1-5 表的删除和更新

    [SQL基础教程] 1-5 表的删除和更新 表的删除 语法 DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法 ALTER TABLE<表名> ...

  3. python 包用法_Python 基础教程之包和类的用法

    Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...

  4. Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0

    Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0 昨晚Nacos社区发布了第一个生产级版本:0.8.0.由于该版本除了Bug修复之外,还提供了几个生产管理非常重要 ...

  5. Python培训基础教程都教哪些

    根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍. Python培训基础教程都教哪些 ...

  6. 深度学习之Pytorch基础教程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...

  7. python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...

    时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python) 发布时间:2019-01-10 00:02, 浏览次数:620 , 标签: Python 导读: 本文介绍了数据平稳 ...

  8. %3c- r语言运算符,R语言基础教程之运算符

    原标题:R语言基础教程之运算符 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他运算符1.算术运算符 下表显示了R语言支持的算术运算符.运算符对向量的 ...

  9. python分类器鸢尾花怎么写_python机器学习基础教程-鸢尾花分类

    一: 环境准备: 1.导入的库: importnumpy as npimportmatplotlib.pyplot as pltimportpandas as pdimport mglearn 2.导 ...

最新文章

  1. 机器学习特征工程之连续变量离散化:聚类法进行分箱
  2. leetcode.169 求众数
  3. android 应用在启动后进行全局的的初始化操作
  4. 计算机科技英语论文,计算机科技英语论文.doc
  5. python多线程控制暂停_python多线程控制
  6. 如何寻找互联网红利期产品?
  7. [Angularjs]视图和路由(四)
  8. 多线程进行n皇后计算
  9. sklearn.preprocessing.PolynomialFeatures的使用
  10. 上海计算机等级考试一级题库软件,计算机等级考试一级题库
  11. Shapley算法总结
  12. java写的国有资产管理系统
  13. jQuery动画高级用法(上)——详解animation中的.queue()函数 http://www.cnblogs.com/hh54188/archive/2011/04/09/1996469.
  14. [翻译]IAdaptable是什么?
  15. Greenplum外表gpfdist加载数据
  16. 写在2020.11.19 周四晚上
  17. 无法打开SQL Server的连接 provider:Named Pipes Provider,error:40
  18. js中的数组拷贝(浅拷贝,深拷贝)
  19. SRS4.0源码分析-序言
  20. 函数的定义以及关键字参数

热门文章

  1. 《图解HTTP》全书内容表述
  2. 虚拟机中Linux怎么与宿主机、外网通信
  3. 201871010115——马北《面向对象程序设计JAVA》第二周学习总结
  4. 小鼠内皮细胞分离提取方法
  5. 关于秒杀,多个用户抢同一件商品
  6. 把 ChatGPT 加入 Flutter 开发,会有怎样的体验?
  7. 书写一个管理平台开发常用的通用table组件
  8. RTKLIB 中的天线相位缠绕误差修正
  9. 大连理工,吉林大学,同济,北航,西交计算机考博上岸分享
  10. Android读书笔记(六) OkHttp(GET、POST)、解析XML(Pull、SAX)