问题:二手车认证系统的检测报告采用iReport开发,开发者自定义了一张超级长的纸张,导致打印时自动缩放到了一张A4纸上。需要修改使之能够合理的分页打印,这是来到新公司的第一个任务。


解决方案一:

1、iReport报表自定义页面,需要分页的地方使用分页符进行分页

2、生成PDF报表

3、按照如下说明进行打印

采用这种方式,显示出的PDF报表有大片空白,但是打印是正常的。查看PDF时每页下方大片的空白导致用户体验极差,不采用此方式。

方案二:

还是使用“自定义”纸张,采用“海报”方式打印,PDF会自动把一张很长的页面的内容拆分到多个A4页面上,需要仔细调整每页的内容。

注:得用IE浏览器,360、谷歌等浏览器需要先另存到本地,然后再使用Adobe Reader自己提供的打印功能。

教客户使用时又发现问题了,因为是使用开发和调试的,但是到了实际的打印机上分页效果不一样。

方案三:

把每一页的内容单独放到一个子报表上,然后父表去调用6个子报表。每个子表前放一个分页符。这样终于完美解决问题了。


iReport分页打印开发调试过程中遇到的坑总结如下:

1、如果在子表中使用 Text Field 控件直接显示参数,那么不要放在 Detail 区,显示不出来(如果也同时显示从数据库中查询出的表数据,那么 Detail 区应该能显示出来);要放在 Page Header 或者 Title 区。

2、Field放在Detail区,也可以在 Page Header 区。

3、报表的 When No Data 属性,选择“All Sections,No Detail”。

4、在[窗口]-[组件面板]中可以找回组件面板。

5、主表的数据是从Java代码中通过JSON格式传进去的,主表中定义了200来个Field,如果需要在子表中使用这些数据,那么需要在子表中定义参数,然后在主表 Subreport 控件的 Parameters 属性中对子表参数赋值。

 本文用菊子曰发布

关于iReport报表的分页的更多相关文章

  1. Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,htm

    Ireport 报表导出 Poi + ireport 导出pdf, doc ,excel ,html 格式 下面是报表导出工具类reportExportUtils 需要导出以上格式的报表 只需要调用本 ...

  2. ireport 导出excel 分页 和 文本转数字格式的解决方法

    景:ireport 画excel 报表,导出时要求 数据分页,每页包含 标题和页脚 1.画excel 2.处理分页 首先建立一个变量totalNum 用于记录总共有多少条记录,注意设置属性为Integ ...

  3. ireport报表学习

    常用组件介绍: 制作一个报表一般四个组件比较常用,下面分别介绍 Rectangle:用于画表格的样式,整个表格的样式使用次组件做出来的,本控件表现为一个黑色矩形框,多个黑色矩形框排在一起可以组合出来任 ...

  4. JS报表打印分页CSS

    在调用window.print()时,可以实现打印效果,但内容太多时要进行分页打印. 在样式中有规定几个打印的样式 page-break-before和page-break-after CSS属性并不 ...

  5. ssm中iReport报表使用json数据源过程体会

    前言:做这个一定要有耐心,因为报表本就是数据杂糅到规整的过程,这篇心得会细讲每一步操作,如果只想着一眼到位,建议close tab 在公司中遇到项目,大概是一个这样的需求,有一个列表和一个标题,需要把 ...

  6. ireport报表,打印时,报表加载失败的解决方法

    1.报表加载失败图示 2.解决方法 原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:http://www.cnblogs.com/dsh ...

  7. ireport报表制作, 通过节点、产品类型来判断,当该节点审核通过之后,报表相对应的审核意见及签名 显示相对应的内容

    1.代码①  (与本内容相关的代码:7~36)           以下类似 $P{P_XXXX} :均为页面端的传入参数 select so.sale_order_no as sale_order_ ...

  8. ireport报表制作, 当一个字段显示的数据太多时(数据过长),则需要自动换行

    1.当一个字段显示的数据太长,一个表格放不下,则需要自动换行,选中要更改的表格(要显示动态内容的字段),设置属性Stretch with overflow 为钩选状态. 未勾选之前: 勾选之后: 2. ...

  9. 利用JasperReport+iReport进行Web报表开发

    用JasperReport+iReport进行Web报表开发 序言 在非常多实际的项目里,报表都是当中十分重要的组成部分,比如把查询结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥 ...

随机推荐

  1. Java核心知识点学习----线程同步工具类,CyclicBarrier学习

    线程同步工具类,CyclicBarrier日常开发较少涉及,这里只举一个例子,以做备注.N个人一块出去玩,相约去两个地方,CyclicBarrier的主要作用是等待所有人都汇合了,才往下一站出发. 1 ...

  2. linux学习之——数据操作:添加与查询

    说明: 在linux系统中,利用搭建的服务器,编写两个页面,一个添加信息,一个展现信息: 主要涉及到:php+mysql的操作: 数据添加页面: <html> <head> & ...

  3. 用T-sql 实现Oracle Connect by 的功能

    ; with subDepartment as ( select BesonDepartmentID, DepartmentName, ParentBesonDepartmentID, 1 as Hi ...

  4. php变量判断为空的几种方法

    1.isset  主要用来判断变量是否被初始化过 注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右 2.empty  可以将值为 " ...

  5. 如何断开所有SQL Server所有的连接

    方法1: 执行以下脚本 01.declare   @sql   varchar(100) 02.  03.while   1=1 04.begin 05.  06.select   top   1   ...

  6. android text

    "@you bang--- go on -------" 需要做分享内容,前面有段格式固定写死,同时颜色为灰色:后面的内容可以编辑,颜色为黑色,同时支持多行 有人用textview ...

  7. Ubuntu和Windows的交互工具---Samba环境配置

    Samba软件安装 使用源代码安装samba,在终端输入如下指令: #sudo apt-get install samba #sudo apt-get install smbclient #sudo ...

  8. UISwitch(开关控件)、UISegmentedControl(分段控件)

    一.UISwitch 1.初始化 UISwitch *s1 = [[UISwitch alloc]initWithFrame:CGRectMake(50, 170, 100, 200)];   2.设 ...

  9. Android的构造器

    当Java代码创建一个View实例,或根据XML布局文件加载并构建界面时将需要调用该构造器1.onFinishInflate():这是一个回调方法,当应用从XML布局文件加载该组件并利用它来构建界面之 ...

  10. SQL语句 in和inner join各有什么优点

    比如A1表 100W行 A2表50W行select a.* from A1 a where a.column1 in (select b.column1 from A2 b where b.colum ...