iReport 笔记(八) 添加统计信息

【JasperReports笔记03】JasperReports之模板文件七大组成区域介绍(Title、PageHeader、ColumnHeader、Detail、ColumnFooter等) Title区域是只会显示在模板文件的第一页最开头位置,注意啦,这个只会显示一次,并且只会显示在第一个页面里面,这个区域一般是设置整个模板文件的大字标题,例如:我们写论文的时候,都会在第一页中写【xxx毕业设计论文】,这个地方就是专门为此而设置的。Column Header是表头区域,它是在使用了Table表格组件时候,才会起作用的一个区域,Column Header是显示在Page Header区域的下面,并且是会显示在每一个页面中,位于Table表格的顶部区域。 阅读详情

添加统计信息

本节说明如何添加本页合计、累计合计、总合计三种类型的统计信息,说明如下:

  • 本页合计:只统计本页的数据
  • 累计合计:截至当前页为止的数据合计
  • 总合计:所有数据的合计

我在此仍然使用JavaBean集合作为数据源,JavaBean类很简单,只有一个整型成员,如下所示:

package lld.test.ireport;

public class NumberBean
{
	private int number;

	public int getNumber()
	{
		return this.number;
	}

	public void setNumber(int number)
	{
		this.number = number;
	}
}

报表将为这个整型成员number进行上述三种统计,制作的报表如下图所示:

其中sumValue是一个Parameter,表示累计合计,定义如下图所示:

其中Vaiable Expression的值为

new java.lang.Integer($V{sumValue}.intValue() + $F{number}.intValue())

PAGE_SUM 表示本页合计,也是一个Variable,定义如下图所示:

与sumReport的定义基本相同,只是“Reset Type”设为Page,而不是Report。

SUM_VALUE 表示总合计,是一个Parameter,由外部传入,因为在打印前,总合计信息可提前获知,定义如下图所示:

用于生成报表的Servlet程序如下所示:

package lld.test.ireport;

import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.JRLoader;

public class SummaryReportServlet extends HttpServlet
{

	private static final long serialVersionUID = 3226292331974282393L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException
	{
		this.doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException
	{
		try
		{
			String root_path = this.getServletContext().getRealPath("/");
			root_path = root_path.replace('//', '/');
			String reportFilePath = root_path + "WEB-INF/classes/lld/test/ireport/summary_rep.jasper";
			JRDataSource dataSource = this.createDataSource();

			Map<String,Object> params = new HashMap<String, Object>();
			params.put("SUM_VALUE", new Integer(19900));		//设定合计值
			JasperReport report = (JasperReport)JRLoader.loadObject(reportFilePath);
			JasperPrint jasperPrint = JasperFillManager.fillReport(report, params, dataSource);

	        OutputStream ouputStream = resp.getOutputStream();  
	        resp.setContentType("application/pdf");
	        resp.setCharacterEncoding("UTF-8");  
	        resp.setHeader("Content-Disposition", "attachment; filename=/""  
	                + URLEncoder.encode("PDF报表", "UTF-8") + ".pdf/"");  
	            	
	        // 使用JRPdfExproter导出器导出pdf  
	        JRPdfExporter exporter = new JRPdfExporter();  
	        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
	        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
	        
	        exporter.exportReport();
	        
	        
	        ouputStream.close();  

		}catch(Exception ex)
		{
			ex.printStackTrace();
		}
		
		
	}
	
	private JRDataSource createDataSource()
	{
		//生成测试数据
		ArrayList<NumberBean> beans = new ArrayList<NumberBean>();
		for(int i = 0; i < 200; i++)
		{
			NumberBean bean = new NumberBean();
			bean.setNumber(i);
			beans.add(bean);
		}

		return new JRBeanCollectionDataSource(beans);
	}

	public static void main(String[] args) throws Exception
	{
		
	}
}

代码与以前的代码相似度很高,阴影部分的代码是设定一个合计值,因为只是示例,我在此偷了个懒,直接把结果给传过去了。结果如下图所示:

注: 如需本例示例代码, 请留言.

jasReport+ireport 报表生成 ireport jasreport 立即下载

相关推荐

iReport 报表、子报表、主从报表、合计、实例解析

iReport 报表、子报表、主从报表、合计、实例解析1. 开发使用步骤(iReport4.1)... 2 4.1. JasperReport 和iReport的介绍... 2 4.1.1. JasperReport 简介... 3 4.1.2. iReport 简介... 3 4.1.2.1. iReport几个重要的概念... 3 4.1.2.2. iReport数据库连接的建立 DataSource. 5 4.2. 创建报表(以几个不同类型的报表为例)... 7 4.2.1. iReport基本报表(例:预交费用和押金报表)... 7 4.2.2. iReport子报表SubReport(例:批量打印报表)... 13 4.2.3. iReport table类型的表单(例:押金报表)... 21 4.2.4. Dorado7中iReport的配置... 24

iReport 4.1 报表制作,子报表,实例解析

开发使用步骤(iReport 4.1.1)   (个人总结,如有问题请留言,另外知道table控件用法的给我留言或者发邮件谢谢。Email:jiazx0107@163.com) 目录 1.      开发使用步骤(iReport4.1)... 2 4.1.       JasperReport 和iReport的介绍... 2 4.1.1.        JasperReport 简

九尘辛 3万+

华为设备有关用户名密码的策略配置

命令用来开启对密码进行复杂度检查功能,设备默认已经是开启状态。1、密码长度大于等于12位,含数字大小写字母和特殊符号。2、设置密码更换周期为90天。取值范围8-16,默认长度为8位。登录失败后锁定时间大于15分钟。3、登录失败次数小于5次。4、登录超时30分钟以内。

简单的创作,希望可以帮助到跟我一样的学习者! 7840

ireport 序号 合计,分组序号

在使用ireport做报表的过程中遇到需要分组及序号显示的,但网上的资料良莠不齐,为了分组的验证浪费了一些时间,所以做了以下的一些简单例子,希望对你们有些帮助。 1.普通ireport序号 和 合计  步骤一:定义变量如index (设置序号),total (设置合计) 步骤二:设置变量信息 a)index 序号的变量信息 b)total合计的变量信息,计算的是字

zyf的博客 4270

从零开始搭建一个高性能电流镜:手把手教你设计Wide-Swing Cascode结构

本文详细解析了Wide-Swing Cascode电流镜的设计原理与实战流程。针对低压高性能模拟电路设计的核心挑战,文章手把手指导如何从理论分析、参数计算到仿真验证,搭建一个兼具高输出阻抗和低输出电压裕度的电流镜结构,并深入探讨了偏置电路生成、性能优化及版图匹配等关键要点。

weixin_29294975的博客 623

基于RK3588的YOLOv11目标检测NPU加速系统设计与实现——模型转换(RKNN)、量化与板端部署全流程(含环境搭建与疑难解析)

而RK3588芯片则是一款性能强劲的边缘计算芯片,将YOLOv11部署在RK3588上,可实现本地化的智能检测应用,比如工业质检中的产品缺陷识别、安防领域的异常行为监测等。比如,优化模型的推理速度,可通过调整模型的输入尺寸、使用更高效的推理框架等方式实现;可以使用RK提供的量化工具来完成这一过程,按照工具的使用说明,对ONNX模型进行量化,生成适用于RK3588的模型文件。现在,你已经掌握了从环境搭建到模型部署的全流程,赶快动手实践,让YOLOv11在RK3588上绽放智能光彩,打造属于你的AI应用吧!

m0_71589036的博客 44

iReport 笔记(八) 添加统计信息 【转】

添加统计信息 本节说明如何添加本页合计、累计合计、总合计三种类型的统计信息,说明如下:本页合计:只统计本页的数据 累计合计:截至当前页为止的数据合计 总合计:所有数据的合计 我在此仍然使用JavaBean集合作为数据源,JavaBean类很简单,只有一个整型成员,如下所示:package lld.test.ireport;public class NumberBean{ private

小板凳... 933

高通开发系列 - Bootloader之lk匹配dtb和dtbo中msm-id和board-id的知识

lk匹配dtb和dtbo中的msm-id和board-id等知识

fulinux的博客 4245

iReport 笔记(七) 为子报表添加统计信息

p { font-family: "宋体"; font-size: 12px; font-style: normal; line-height: 18px; font-weight: normal; text-indent: 24px;}h1 { font-size: 36px; font-style: normal; font-weight

铁背苍狼的专栏 3931

3.摄像头组件- CVP (ISP)

本文介绍 车载摄像头组件-ISP

2401_83458819的博客 1617

Pdu Router(PduR)模块

1. PduR路由基本功能 2. PduR总线网关功能 3. PduR缓存机制 4. 总结

weixin_43759043的博客 3849

iReport 笔记(七) 为子报表添加统计信息 【转】

为子报表添加统计信息内容与上例基本相同,但在子报表中添加一些统计信息,最后结果如下图所示: 程序部分 首先,我修改一下ProvinceBean的定义,添加一个只读属性cityCount,如下代码中的阴影部分所示:package lld.test.ireport;import java.util.ArrayList;public class ProvinceBean{ priva

小板凳... 727

SAP_PP模块中MRP中信号灯简介

一、信号灯的作用二、常见的信号灯颜色及含义三、信号灯的来源四、常见场景示例示例1:物料满足所有需求示例2:生产订单已延迟示例3:缺料或未产生计划订单五、相关事务码参考六、如何应对红色或黄色信号灯?七、前台操作说明在 SAP PP 模块中,**MRP(物料需求计划)运行结果中的“信号灯”是一种非常直观的可视化提示工具,用于帮助用户快速识别物料计划是否存在异常或需要关注的问题。这些信号灯通常出现在MD04(库存/需求清单)、MD05(单物料MRP清单)、MD07(MRP列表)**等事务代码的界面中。

我小时候很黑的博客 626

ireport 设置横向输出_ireport 报表技术文档

简介ireport 传递数据集ireport显示页码ireport 文字自动换行ireport 分组报表ireport 图表Ireport 父子图表简介 JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者 XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。只需要将Jaspe...

weixin_39766258的博客 1421

AI应用质量工程实践:从评估到监控的完整体系构建

在软件工程领域,质量保障体系是确保产品稳定可靠的核心机制,涉及度量指标、保障流程和工具链的完整闭环。随着生成式AI应用的快速发展,如何将传统软件工程中的质量门禁思想引入AI领域,成为工程实践的关键挑战。其核心原理在于构建可量化、可监控、可改进的质量评估框架,通过自动化测试、持续监控和反馈优化来管理AI输出的不确定性。这一技术价值在于将AI应用从原型阶段推向产品化,确保输出的一致性、安全性和可靠性。在实际应用场景中,开发者需要从功能性、非功能性、一致性和合规性四个维度构建评估体系,并借助LLM-as-a-Ju

weixin_28728279的博客 294

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java中ireport两个data_ireport 报表技术文档

简介ireport 传递数据集ireport显示页码ireport 文字自动换行ireport 分组报表ireport 图表Ireport 父子图表简介 JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者 XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。只需要将Jaspe...

weixin_39758229的博客 369

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

JasperReport+iReport高级报表设计实战

   JasperReport+iReport高级报表设计实战 序言一直以来,报表都是很多项目中一个重要的、不可获取的组成部分。然而其复杂性和专业性又使得程序员不能够也没时间自己设计属于目前手头正在构建的系统的报表模块;即便设计来了又可能由于通用性等原因不能够应用到下一个系统当中,这就导致了报表类库/组件在市场上的火爆。典型的例子就是水晶报表,几乎无处不在。还有一些专门处理中国式报

薛笛的专栏 5万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【转】JasperReport+iReport高级报表设计实战

转载自 http://blog.youkuaiyun.com/kabini/article/details/1600055 JasperReport+iReport高级报表设计实战   序言 一直以来,报表都是很多项目中一个重要的、不可获取的组成部分。然而其复杂性和专业性又使得程序员不能够也没时间自己设计属于目前手头正在构建的系统的报表模块;即便设计来了又可能由于通用性等原因不能够应用到下...

topMan'blog 303
上一篇: iReport 笔记(七) 为子报表添加统计信息
下一篇: 在Oracle中添加的中文变成"靠靠靠..."
lldwolf
博客等级 码龄26年 57粉丝 44原创
评论 19
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值