Ireport 报表设计部分填坑记录 基于Ireport 4.5.1

2023-11-20

Ireport 报表设计 基于Ireport 4.5.1

Ireport 换行遇到分页时,一行会被拆分为两行(断行)

方式一:面板直接修改

点击detail栏的空白处, 修改其 Split Type属性值为: Prevent

如果方式一, 无法修改属性值,请使用方式二

方式二: 修改 XML 文件内容

进入xml 模式 -> 找到Dtail 标签下的 band 标签 -> 为band 标签添加一个属性 splitType="Prevent"

Ireport 数值列可以同时打印整数和小数

需求: 当原始数据的值都包含两位小数时, 需要将整数 以 整数的形式打印

方式一: 使用四舍五入判断是否为整数

# 判断 bookDetailUseQty 是否等于其取整后的值, 如果相等,说明是整数, 就保留整数位.  如果不相等, 说明是小数, 则保留两位小数即可
$F{bookDetailUseQty}==$F{bookDetailUseQty}.intValue() ? $F{bookDetailUseQty}.setScale(0, BigDecimal.ROUND_HALF_UP):$F{bookDetailUseQty}.setScale(2, BigDecimal.ROUND_HALF_UP)

方式二: 面板直接设置

没找到设置方式

Ireport Detail 序号分页之后连续

分页之后序号连续

  1. Variables 下新建一个变量, 更名叫 Index (名字随意)

  2. 调整该变量的属性:

  3. class: `java.lang.Integer`

  4. Calculation: `Count`

  5. Variable Expression: `$V{Index}.ValueOf(1)` 这里的 Index 对应第一步里取的名字

  6. initial Value Expression: `1`

  7. 最后在面板中调用即可

Ireport Last Page Footer 紧跟Detail

Last Page Footer 和 Detail 之间的空隙, 是无法去掉的, 但是可以通过其他的方式来达到该效果的视觉目的

方案一: 使用Column Footer + 设置条件打印

  1. Last Page Footer 中的内容, 全部拷贝至 Column Footer

  2. 全选这些只需要在最后一页打印的项

  3. 修改其 Print When Expression 的值

Print When Expression 应返回一个布尔值, 当值为True时, 就会触发打印, 否则不打印

这里需要Ireport 判断该页是否为最后一页:

要达成这个判断, 需要一个非常取巧的方式:

页面中有一项是 金额总合计: $V{MoneyTotal}.setScale(2, RoundingMode.HALF_UP) 它的值是变量 MoneyTotal,

我们找到这个 MoneyTotal 观察它的属性:

可以发现, 这个变量是 整个报表对 orderDtailMoney的求和, 就是所有金额的总和,这个值是由报表自行计算的, 只有在最后一页末尾时,该值才会停止增长.

此时, 我们可以由后端传入一个参数Parameters, 其值为金额总和, 在我的示例模板中, 这个参数的名字是: orderMoney

然后当orderMoney == MoneyTotal时, 报表达到最后一页.

最后修改Print When Expression条件打印的值为:$P{orderMoney}.setScale(2,BigDecimal.ROUND_HALF_UP) == $V{MoneyTotal}.setScale(2, BigDecimal.ROUND_HALF_UP)

方案二: 浮动的 Last Page Footer

没找到设置方式

方案三: 使用 Summary 来达到效果

此方式要求不得启用 Column Footer 和 Page Footer ,

因为 Column Footer 和 Page Footer 在最后一页会出现在 Summary 的下方, 特别难看

Ireport 字体大小动态缩放

当格子大小已经固定后, 需要动态缩放字体大小, 以免格子变形

  1. 在Styles 下新建一个样式模板, 名字随意, 我这里使用 item_name

  2. 在新建的样式模板下, 新建多个条件样式, 我这里建了两个条件样式, 分别是字符长度 <11 和 >10 时的样式

  3. 为这些条件样式分别设置字体大小(比如: size: 13/16), 和字体名称(比如:宋体)

  4. 将需要动态缩放字体的格子的属性 Style: 选择第一步建立的样式模板

备注: Ireport4.5.1 此时还不会生效,听说高版本的到这一步就ok了.

Ireport4.5.1 需要进入xml模板, 找到该格子的位置(建议,复制格子的内容函数, 在xml 中进行搜索)

找到之后, 删除该格子的 fontName 和 Size, 即可生效

–> 原文首发公众号,感谢点击关注 <–

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ireport 报表设计部分填坑记录 基于Ireport 4.5.1 的相关文章

  • Unity中实现退出游戏功能

    我们要实现在编辑器环境下退出编辑器 在非编译器环境下退出游戏 提问 如何判断是否在编辑器环境中 如何退出编辑模式 如何退出程序 回答 使用预处理判断当前的环境 常用的预处理标识符 标识符 解释 UNITY EDITOR 只在编辑器中编译 U
  • 复杂网络数据集下载地址

    1 斯坦福大学公开数据集 Stanford Large Network Dataset Collectionhttp snap stanford edu data 2 那慕尔大学公开数据集 Networks konect cc http k
  • 创建Vue3.0工程和常用 Composition API

    一 创建Vue3 0工程 1 使用 vue cli 创建 官方文档 https cli vuejs org zh guide creating a project html vue create 查看 vue cli版本 确保 vue cl
  • 【python总结】python学习框架梳理

    目录 基础 注释与变量名等基本规则 关键字 操作符 数字 流程控制 序列 文本序列 字符串 二进制序列 字节 列表 元组 映射 字典 集合 函数 面向对象编程 错误和异常 模块 数据结构与算法 数组 字符串 链表 二分查找 排序 栈 队列
  • 微信小程序退出重新进入时跳转特定页面

    微信小程序退出时会记录当前页面的状态 短时间内再次进入会显示退出前的状态 解决方案 在app js文件中添加onHide方法 onHide方法监听小程序切后台 在app js文件中使用会在每次程序退出时调用 onLaunch functio
  • 线性代数-方阵对角化及其应用

    前置知识 1 向量的内积 对于 a x 1
  • 【1024狂欢】力扣经典链表OJ题合集

    现在的力扣题的源代码我会全部一并上传至我的码云仓库里面 点我看仓库 写在前面 首先祝各位程序猿1024狂欢节快乐鸭 这是属于我们的节日 为了致敬1024 今天的力扣系列不再是一题了 而是多个题的组合 也是与我们最近更新的内容梦幻联动 祝大家
  • Linux 压缩解包命令讲解

    tar命令使用讲解 压缩 tar命令 c 生成档案文件 v 列出归档解档的详细过程 f 指定档案文件名称 t 列出档案在包含的文件 x 解开档案文件 打包 tar cvf a tar txt tar cf a tar txt 解包 tar
  • r语言写九九乘法表并保存为txt文件

    r语言写九九乘法表并保存为txt文件 代码 for i in 1 9 for j in 1 i cat j x i i j t file 九九乘法表 txt append TRUE cat n file 九九乘法表 txt append T
  • vs2019+QT5.12.0打不开现有文件,提示This application failed to start because no Qt platform plugin问题

    按照要求配置好vs2019和QT5 12 0后 qt addin插件仍然不能使用 已经尝试更换了2 8 0 2 6 0 2 5 0版本的qt development releases vsaddin 仍旧报错 出现以下问题 后来找方法 在电
  • [OpenAirInterface实战-14] :OAI nFAPI VNF/PNV持续集成测试的xml配置文件详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120850348 目录 1 nFAPI
  • 01 C++Primer-基本内置类型

    01 C Primer 基本内置类型 从这篇博客开始 作者开始总结C Primer的知识点以及疑难点 希望能加深自己的印象 也能够给大家带来一定的帮助 mermaid svg YHaqJho6PUshJ8nL label font fami
  • yolo v3 fatal : Memory allocation failure

    torch版的 yolov3报错 fatal Memory allocation failure parser add argument n cpu type int default 8 help number of cpu threads
  • 5V转±12V无变压器双boost电路

    最近有个新项目 需要 10V范围的模拟量输出 非隔离 对于5V以下供电的控制板而言单端输出绝对没问题 可现在需要有正负输出 是少不了正负电源的 因此准备设计一个5V转 12V的电源 然后选择一个双向供电的运放 来实现单端模拟量信号向双向模拟
  • Tomcat单实例安装部署

    自说 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 属于轻量级应用服务器 主要用于处理动态web数据 部署java环境 上传jdk包 使用xftp上传 解压 tar zxvf u01 jdk 8u333 linux i58
  • 斑马面试总结

    面试岗位 测试开发实习生 面试主要提问的是简历上的项目经历 测试相关的 给你一个视频软件 怎么测试 功能测试 黑盒测试 视频的封面正常 点击屏幕或播放键可以正常播放 视频时间倒计时显示正常 再次点击暂停 视频的声音 默认打开 无噪音 可以调
  • Java 实现令牌桶限流算法 原生极简实现 包括单机和多线程版本

    文章目录 令牌桶算法简介 令牌桶算法限流范围 单机版实现 多线程版实现 令牌桶算法简介 令牌桶是指一个限流容器 容器有最大容量 每秒或每100ms产生一个令牌 具体取决于机器每秒处理的请求数 当容量中令牌数量达到最大容量时 令牌数量也不会改
  • 关于高并发与多线程中的线程池

    关于高并发与多线程中的线程池 定义 线程是稀缺资源 它的创建与销毁是一个相对偏重且耗资源的操作 而Java线程依赖于内核线程 创建线程需要进行操作系统状态切换 为避免资源过度消耗需要设法重用线程执行多个任务 线程池就是一个线程缓存 负责对线
  • 运行游戏找不到x3daudio1_7.dll怎么解决?教你如何快速修复的教程

    在计算机使用过程中 我们经常会遇到一些错误提示 其中之一就是 x3daudio1 7 dll丢失 这个错误提示可能让我们感到困惑和烦恼 但是不用担心 本文将为您介绍x3daudio1 7 dll丢失的原因以及五种修复方法 帮助您解决这个问题
  • 面对内卷严重的2023年,测试人员该怎样修炼?

    这几天马上就要双12大促 相信大家都准备花了不少钱吧 其实在每一次大促的背后各大电商平台还在遭受一次又一次的的黑产攻击 拿阿里巴巴去年双十一举例 2684 亿交易额的背后 有一天内 22 亿次的黑产攻击 近几年网络安全事件层出不穷 相信大家

随机推荐

  • openstack平台搭建笔记(容器云)

    openstack平台搭建笔记 容器云 一 根据要求准备好配置环境 节点IP 角色 备注 192 168 100 30 Master Kubernetes 集群 master 节点 Harbor 仓库节点 192 168 100 31 Wo
  • C# 快速写入日志 不卡线程 生产者 消费者模式

    有这样一种场景需求 就是某个方法 对耗时要求很高 但是又要记录日志到数据库便于分析 由于访问数据库基本都要几十毫秒 可在方法里写入BlockingCollection 由另外的线程写入数据库 可以看到 在我的机子上面 1ms写入了43条日志
  • html5 自动化测试工具,五大最佳自动化测试工具

    对更快交付高质量软件 或 快速质量 的需求要求组织以敏捷 持续集成 CI 和DevOps方法论来寻找解决方案 测试自动化是这些方面的重要组成部分 最新的 2018 2019年世界质量报告 表明 测试自动化是实现 快速质量 的最大瓶颈 因为它
  • 四位数显表头设计

    去年帮别人定制了一个四位数显小表头 可以用于测量4 20mA或者0 5V 0 10V输出的的各种传感器 可设置显示范围 上下限报警灯 由于后面更改方案 此方案暂时搁置不用 今天来分享一下软硬件的设计过程 1 硬件设计 1 1电源 电源采用一
  • Flink_06_ProcessAPI(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 侧输出流 SideOutput 即分支流 可以用来接收迟到数据 也可
  • SpringBoot实现接口版本控制

    一个系统在上线后会不断迭代更新 需求也会不断变化 有可能接口的参数也会发生变化 如果在原有的参数上直接修改 可能会影响到现有项目的正常运行 这时我们就需要设置不同的版本 这样即使参数发生变化 由于老版本没有变化 因此不会影响上线系统的运行
  • python的UnboundLocalError: local variable 'xxx' referenced before assignment

    From http blog sina com cn s blog 8d3652760101d01p html 一 意思 本地变量xxx引用前没定义 二 错误原因 在于python没有变量的声明 所以它通过一个简单的规则找出变量的范围 如果
  • OPENV接收和发送串口的数据

    import sensor image time from pyb import UART from pyb import Pin Timer LED import re sensor reset sensor set pixformat
  • qt 开发遇到的坑

    1 QString的toString 和toWString 引起的win32位release 下std string的析构崩溃 代码 QString qs std string str qs toStdString const wchar
  • Linux NFS说明,配置及故障分析

    一 NFS服务简介 NFS 是Network File System的缩写 即网络文件系统 一种使用于分散式文件系统的协定 由Sun公司开发 于1984年向外公布 功能是通过网络让不同的机器 不同的操作系统能够彼此分享个别的数据 让应用程序
  • MATLAB:figure的用法

    figure的定义 figure 创建图窗窗口 可以理解为创建一个有画板的窗口 我们在这块画板上绘制 plot 曲线等 figure主要是创建图窗窗口或者切换图窗窗口 figure n 查找到n存在时 将当前窗口切换成n 不存在时创建标识为
  • Java的String类、Object类、包装类

    1 String类 1 1 String类的两种实例化方式 1 直接赋值 String str hello 2 使用构造方法new的形式赋值 String str new String hello 1 2 String类定义的字符串的比较
  • Eclipse安装SVN插件

    http subclipse tigris org servlets ProjectProcess jsessionid A870EAC9A292637E167F9719F6399F60 pageID p4wYuA Installation
  • Binary Tree on Plane【费用流】

    题目链接 CF 277 E 题意翻译 给你平面上 n 个点 2 n 400 要求用这些点组成一个二叉树 每个节点的儿子节点不超过两个 定义每条边的权值为两个点之间的欧几里得距离 求一个权值和最小的二叉树 并输出这个权值 其中 点 i 可以成
  • Qt导出库接口类无法connect信号

    问题 动态库中的接口类内部有信号 但是在主程序中无法connect 链接时报错 undefined symbol xxx staticMetaObject 解决 在接口类前加导出标记 参考动态库的隐式调用 一般接口类如果不需要继承实现的话
  • 2013年9月22日---2013年10月5日(每天1小时,共15小时,还有5050小时)

    之所以写每天1小时 是因为这段时间浮躁了 面临培训 过于兴奋 另外一个是假期闹得 不过 每天1小时肯定有 为了这1万小时的计算不浮夸 宁可少一些
  • 一个boot.oat crash问题的分析

    最近遇到一个手机重启的问题 日志如下 05 18 13 42 55 553 I AEE AED 10514 pid 1734 tid 1788 name android ui gt gt gt system server lt lt lt
  • 了解数据的发展历程--大数据简史

    数据技术的发展历史就是人类追求美好生活过程最真实的写照 大数据分析的历史与未来展望 最早的数字不是阿拉伯人发明的 数字的起源如同文字起源一样古老 结绳记事 易九家言 中记载 事大 大结其绳 事小 小结其绳 之多少 随物众寡 即根据事件的性质
  • 2048游戏矩阵操作算法

    题目 1 手指向一个方向滑动 所有格子会向那个方向运动 2 相同数字的两个格子 相撞时数字会相加 输入描述 1 输入为一个3 3的矩阵 2 接下来输入一个1 4的数字 1表示向上滑动 2表示向下划动 3表示向左滑动 4表示向右滑动 输出描述
  • Ireport 报表设计部分填坑记录 基于Ireport 4.5.1

    Ireport 报表设计 基于Ireport 4 5 1 Ireport 换行遇到分页时 一行会被拆分为两行 断行 方式一 面板直接修改 点击detail栏的空白处 修改其 Split Type属性值为 Prevent 如果方式一 无法修改