JasperReport-Variable变量使用和求总计等计算

背景

        在制作报表时,会经常看到Variables变量,里边有几个默认值,默认值不支持修改。其中用得最多的就是PAGE_NUMBER和PAGE_COUNT。下边接着介绍一下自定义变量的一些用法。

内置变量

Variable Name 变量名

Description 描述

PAGE_NUMBER

Contains the current number of pages in the report at the report time.
包含报告时报告中的当前页数。

COLUMN_NUMBER

Contains the current number of columns.
包含当前的列数。

REPORT_COUNT

Contains the number of records processed.
包含已处理的记录数。

PAGE_COUNT

Contains the current number of records processed in the current page.
包含当前页面中处理的当前记录数。

COLUMN_COUNT

Contains the current number of records processed during the current column creation.
包含当前列创建期间处理的当前记录数。

MASTER_CURRENT_PAGEIt is used in subreports or report parts to display the current page number.
它在子报表或报表部件中用于显示当前页码。
MASTER_TOTAL_PAGESIt is used in subreports or report parts to display the total number of pages.
它用于子报表或报表部件中以显示总页数。

自定义变量 

在Table编辑详情页面,右键“Variables”,然后选择“Create Variable”。

右下角出现配置变量的界面,如下:

各配置属性的作用和含义:

Name名称:用于引用变量的字符串。有必要在其他表达式中使用此变量,例如文本字段的计算或另一个变量的计算。使用以下语法引用变量:$V{variable_name}。
Value Class Name类型:必需,因为变量是可能在其他表达式中使用的对象,因此必须知道其类型才能正确操作。
Expression表达式:用于定义变量值的函数,它可以由更多的字段和变量组成,可以是逻辑运算符、数学运算符等。Jaspersoft Studio 提供了一个表达式编辑器。要打开它,请单击表达式文本字段右侧的按钮。在每次迭代(每次从数据源读取记录)时计算表达式。如果未定义计算函数,则表达式的结果将分配给变量。因此,结果的类型必须与变量中的类型兼容。
Initial Value初始值:在首次计算变量表达式之前,从变量开始时假定的值。初始值是表达式本身,因此可以通过表达式编辑器进行定义。

Calculation计算功能:它指定何时可以将变量与表达式结合使用以确定变量的值。

Jaspersoft Studio内置了很多计算函数:

Sum: At every iteration, the variable value is summed. This is one of the cases where the initial value is really important.
Sum:在每次迭代时,对变量值进行求和。这是初始值非常重要的情况之一。
Count: At every iteration, the variable value is incremented by one unit (this is only if the expression is not null).
计数:每次迭代时,变量值都会增加一个单位(仅当表达式不为空时)。
Distinct Count: At every iteration, the variable value is incremented by one unit, but only if the value of the expression was never returned before.
不同计数:在每次迭代时,变量值都会增加一个单位,但前提是表达式的值以前从未返回过。
Average: The value of the variable is the arithmetic average of all values received in input from the expression.
平均值:变量的值是从表达式输入中接收到的所有值的算术平均值。
Lowest: The variable takes the value of the lowest element received from the expression.
最低:变量采用从表达式接收的最低元素的值。
Highest: The variable takes the value of the highest element received from the expression.
最高:变量采用从表达式接收到的最高元素的值。
Standard Deviation: The standard deviation of all the values received from the expression.
标准差:从表达式接收到的所有值的标准差。
First: The variable takes the value from the first value returned by the expression.
First:变量从表达式返回的第一个值中获取值。
System: No calculation is done and the expression is not evaluated. The value of the variable is the last value set on it. This is useful to store partial results or the final results of a computation.
系统:不进行任何计算,也不对表达式求值。变量的值是最后设置的值。这对于存储部分结果或计算的最终结果很有用。
Variance: The variance of all values returned by evaluation of a report variable’s expression.
方差:通过计算报表变量表达式返回的所有值的方差。

Increment Type 增量类型。

该属性的可能值为:

Report: The Calculation Function is called only at the end of the report, passing it to the expression's value at that moment.
报告:仅在报告末尾调用计算函数,并将其传递给当时表达式的值。
Page: The Calculation Function is called at the end of each page, passing to it expression's value at each of those moments.
页面:计算函数在每页末尾调用,在每个时刻向其传递表达式的值。
Column: The Calculation Function is called at the end of each column (for a one-column report, this is the same as Page).
列:在每列的末尾调用计算函数(对于单列报表,这与页面相同)。
Group: The Calculation Function is called at the start of every occurrence of the specified group. This option is visible only if at least one group is defined.
组:在每次出现指定组时调用计算函数。仅当至少定义了一组时,此选项才可见。
None: The Calculation Function is called after the read of every record, this is the default behavior.
None:读取每条记录后调用计算函数,这是默认行为。

Reset Type 复位类型: 重置类型指定变量何时应重置为其初始值(如果未定义初始值,则重置为 null)。当变量用于计算部分值(例如仅读取的某些记录的总和或平均值)时,这非常有用。

该属性的可选值为:

Report: The variable is initialized only one time at the beginning of the report creation.
报告:该变量仅在报告创建开始时初始化一次。
Page: The variable is initialized on each page.
页面:变量在每页上初始化。
Column: The variable is initialized again in each new column (for a one-column report, this is the same as Page).
列:在每个新列中再次初始化变量(对于单列报表,这与页面相同)。
Group: The variable is initialized at the start of every occurrence of the specified group. This option is available only if at least one group is defined.
组:变量在每次出现指定组时初始化。仅当至少定义了一组时,此选项才可用。
None: The variable is never initialized, so the initial value expression is ignored.
None:变量从未初始化,因此初始值表达式被忽略。
增量器工厂类名称: 计算函数很有用,但仅限于数字类型。您可能会遇到需要更具体的情况。假设您有一个 String 类型字段,并且您想要连接读取的值。您可以通过定义一个新的增量器来做到这一点。增量器是一段扩展了JRIncrementerFactory接口的Java代码,可以构建个性化的计算函数来完成您需要的操作。每个计算函数都接收表达式值和变量值并返回增量结果,因此完成计算并返回正确值所需的一切都已准备就绪。

变量使用 

求和:

假如有一个表:

需要对M/M列求总计,则此时可先自定义变量sumMm,计算公式选择求和,表达式选择mm列。如下:

表格模板:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/723712.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

爆赞!GitHub首本Python开发实战背记手册,标星果然百万名不虚传

Python (发音:[ paiθ(ə) n; (US) paiθɔn ] n. 蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富…

Java 诊断神器 Arthas使用笔记

Arthas 是一款开源在线 Java 诊断工具,采用命令行交互模式,支持 web 端在线诊断,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。得益于 Arthas 强大且丰富的功能。 1.JDK原生定位工具 平时开发中会用到JDK中…

韩顺平0基础学java——第23

p460-483 常用类 包装类Wrapper 针对8种几种数据类型相应的引用类型——包装类 包装类和基本数据类型的转换 jdk5之前的手动装箱和拆箱: jdk5之后的自动装箱和拆箱: 三元运算符是一个整体: 这个三元运算符里,精度最高的是doubl…

【区块链】以太坊白皮书深度解读:构建智能合约的分布式平台

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 以太坊白皮书深度解读:构建智能合约的分布式平台引言1. 以太坊的诞生…

机能学实验通过ZL-620C一体化信息化生物信号采集系统具体呈现

ZL-621大屏教学试教系统为了实施机能学实验的教学改革,大力减轻教师的实验教学负担,主要功能电子白板,同步教学、控制、过程仿真、虚拟现实、三维动画、管理、音视频广播、PPT教材等于一体,大屏教学试教系统并能同时实现屏幕监视和…

权利利益方格

权利利益方格 一、定义二、分类与策略权力高、利益高(双高)权力高、利益低权力低、利益高权力低、利益低(双低) 三、应用四、总结 在项目管理中,权力利益方格是一种重要的工具,用于评估项目相关方的权力和利…

树莓派4B_OpenCv学习笔记9:图片的腐蚀与膨胀

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: 图像的膨胀与腐蚀一般用于灰度图或者二值图,今日便来学习…

头歌资源库(13)背包问题

一、 问题描述 二、算法思想 这是一个背包问题,可以使用动态规划算法来解决。具体思路如下: 定义一个二维数组dp,dp[i][j]表示前i个物品在背包容量为j时能获取的最大价值。初始化dp数组的第一行和第一列为0,表示当只有一个物品或…

这13个常用电路基础公式,每一位电子工程师都要牢记

计算电阻电路中电流、电压、电阻和功率之间的关系。 欧姆定律解释了电压、电流和电阻之间的关系,即通过导体两点间的电流与这两点间的电势差成正比。说明两点间的电压差、流经该两点的电流和该电流路径电阻之间关系的定律。该定律的数学表达式为V IR,其中…

Qt调用第三方库的通用方式(静态链接库.a或.lib、动态链接库.dll)

目录 一、前提 二、如何引用静态链接库 三、如何引用动态链接库 四、示例代码资源 在开发项目中经常会存在需要调用第三方库的时候,对于Qt如何来调用第三方库,为了方便自己特意记录下详细过程。 一、前提 1. window 10操作系统 2. 已安装了Qt6.7.…

申万宏源:消费税改或是财政改革第一枪

消费税征收环节后移可能带来年化千亿的税收收入增长,地方财政压力的缓和程度取决于中央确定保留的消费税基数。申万宏源认为,财政改革不仅仅只涉及消费税和央地分配,而稳定扩大需求才是下一步改革核心。 主要内容 财政现实呼唤改革。紧迫性…

改进位删除谜题的求解方法

问题背景 给定长度为 n 的二进制向量,如何删除恰好 n/3 个位,使剩余二进制向量的不同数量最小化。该问题被称为“位删除谜题”。 以下是该问题的示例: 对于 n 3 的情况,最优解是 2,对应两个不同的向量 11 和 00。对…

python pytest 参数化的几种方式

一、使用pytest.mark.parametrize装饰器: 可以使用pytest提供的pytest.mark.parametrize装饰器来指定参数化测试的参数。下面是一个示例: import pytest# pytest.mark.parametrize装饰器 # 其中num expected,分别对应(1, 1),(2, 4),(3, 9)&…

JLINK调试妙用----读写flash

JLINK调试妙用----读写flash 前言 随着对jlink使用频率的增加,越发觉得它太强大了,可以满足好多调试功能,现在已经用的就是J-flash(程序下载)、RTT(日志打印)和J-flash SPI(读写spi类…

从零基础到学完CCIE要多久?

思科认证的CCIE是网络工程师追求的顶级认证之一。 对于刚入门的初学者来说,从零基础到通过CCIE认证,这条路需要多长时间? 这个问题的答案因人而异,取决于多种因素。 这不仅是一个关于时间的问题,更是一个关于规划、学习…

芯片验证 | FPGA 原型验证

更多完整内容访问:【芯片验证 | FPGA 原型验证】

Debian12安装Nvidia官方驱动

1、下载驱动(下载到一个英文目录例如你的用户目录/home/用户名下,我下载到dowload目录,由于默认显示中文,在命令行不支持中文显示的是一串数字,当然你仍然可以cd 那串数字进目录,显示有有引号就加引号&…

聚四氟乙烯提取瓶2L固废浸提用PTFE大口瓶适配FZ-4翻转震荡器

聚四氟乙烯广口瓶的口径较大,我司采用“直上直下”的样式设计,方便样品的存放和拿取。瓶身内壁平滑,,易清洗。瓶口是螺纹口设计,保证很好的密封性。聚四氟乙烯广口瓶特性:1.耐高低温:-200至250℃…

业务谈判的过程中多让客户做选择

之前还在工厂的时候,开分享会,经理会反复强调的一个跟进思路就是一定要学会让客户跟着我们的节奏走,而不是被客户牵着鼻子走。 前者会让客户顺着我们设计好的谈判路径,把客户引导到我们想要的结果上,业务员是主动角色…

ShokoServer /api/Image/withpath/ 任意文件读取漏洞复现(CVE-2023-43662)

0x01 产品简介 ShokoServer是一款高性能、可扩展的服务器软件,专为满足现代数据管理和处理需求而设计。它采用先进的架构和算法,提供稳定、可靠的数据存储、查询和分析服务,适用于各种规模和类型的应用场景。 0x02 漏洞概述 ShokoServer /…