天天看点

JasperReports实战问题 - 连续打印系列文章目录前言一、功能需求背景二、解决方案

系列文章目录

JasperReports实战问题 - 组件隐藏显示

JasperReports实战问题 - 子报表

JasperReports实战问题 - Position Type: Float 应用

文章目录

  • 系列文章目录
  • 前言
  • 一、功能需求背景
  • 二、解决方案

前言

  • 本文不是从零构建,所以需要一些基本环境基础和概念
  • 本文重点讲述解决问题的关键点。
  • JasperReports版本:6.2.2
  • Jaspersoft Studio版本:5.6.0

一、功能需求背景

一个集合的数据进行数据列印,原有报表模板列印出来的是一张纸只有一组数据,现在要求改为连续打印,既第一张纸打印完一组数据之后还有空余位置则继续打印第二组数据,如果第二组多余数据无法在第一张纸完全打印则自动延续到第二张(二页),以此类推。

二、解决方案

原来所有内容都放在一个Detail中,现在进行内容分解,创建多个Detail,将每一行放置于一个Detail中,效果如下:

JasperReports实战问题 - 连续打印系列文章目录前言一、功能需求背景二、解决方案

原理:

在JasperReport中是依据Detail的高度断定是否被顶到下一页中,如果一个Detail的高度占了一张纸的三分之二,系统就会判断这页纸放不下第二组数据(第二个Detail),则放到第二页纸。所以我们要将Detail分解最小化。