iReport 笔记(八) 添加统计信息 【转】
来源:互联网 发布:phoneshop mac 编辑:程序博客网 时间:2024/05/18 12:44
添加统计信息
本节说明如何添加本页合计、累计合计、总合计三种类型的统计信息,说明如下:
本页合计:只统计本页的数据
累计合计:截至当前页为止的数据合计
总合计:所有数据的合计
我在此仍然使用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
{
}
}代码与以前的代码相似度很高,阴影部分的代码是设定一个合计值,因为只是示例,我在此偷了个懒,直接把结果给传过去了。结果如下图所示:
注: 如需本例示例代码, 请留言.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lldwolf/archive/2008/06/29/2596769.aspx
- iReport 笔记(八) 添加统计信息 【转】
- iReport 笔记(八) 添加统计信息
- iReport 笔记(八) 添加统计信息
- iReport 笔记(七) 为子报表添加统计信息 【转】
- iReport 笔记(七) 为子报表添加统计信息
- iReport 笔记(七) 为子报表添加统计信息
- IReport添加报表分组与分组统计
- 《统计学习方法》学习笔记八
- iReport 笔记(一) 序 【转】
- ireport 添加行自增序号<转>
- iReport 笔记(二) iReport 的设计界面 【转】
- iReport笔记
- iReport 分组统计
- iReport 笔记(五) 中文设置 【转】
- 信息安全工程师 学习笔记(八)
- ireport使用变量进行统计
- 【安全牛学习笔记】信息统计
- iReport 笔记(二) iReport 的设计界面
- WinCE显示驱动
- 要考证件了,我还没有准备好,怎么办?
- Windows 2000内存篇 分页机制介绍(一)
- 堆和栈的区别(注意文章中的效率比较)
- 如何让CSS实现多游览器兼容 (转)
- iReport 笔记(八) 添加统计信息 【转】
- VC 快捷键
- Java工具界面设计规范(一)
- C/C++宏大全(转)
- sql数据类型详解
- Table表格1px样式
- 大量Hash算法的实现
- ireport一点总结
- 水煮操作系统之虚拟化