`

JasperReports例子代码(转载)

阅读更多

sperReports例子代码

代码例子:
设置编译的类库和表格文件存放目录:
JRProperties.setProperty(JRProperties.COMPILER_CLASSPATH, context.getRealPath("/WEB-INF/lib/jasperreports-1.2.0.jar")
???+ System.getProperty("path.separator")
???+ context.getRealPath("/WEB-INF/classes/"));
JRProperties.setProperty(JRProperties.COMPILER_TEMP_DIR, context.getRealPath("/reports/"));
或者是直接使用:
JasperCompileManager.compileReportToFile(context.getRealPath("/reports/WebappReport.jrxml"));

HTML Export:
File reportFile = new File(context.getRealPath("/reports/WebappReport.jasper"));
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
或直接使用JasperReport的XML文件
JasperReport jasperReport = JasperCompileManager.compileReport(context.getRealPath("/reports/WebappReport.jrxml"));

设置输入的一些参数
Map parameters = new HashMap();

填充报表
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new WebappDataSourceList());

导出HTML格式:
JRHtmlExporter exporter = new JRHtmlExporter();
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrint);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);--使用报表(JasperPrint)
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);--输出到流
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");
exporter.exportReport();

PDF Export:
bytes = JasperExportManager.exportReportToPdf(jasperPrint);?
response.setHeader("Content-Disposition","attachment;filename=JasperPDF.pdf");
// 设置页面的输出格式
response.setHeader("Content-Type", "application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();

XLS Export:
ServletOutputStream outs = response.getOutputStream();
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,reportFile + xlsFileName); --输出到文件
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outs);--输出到流
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);--每页使用一个SHEET
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);--移除空白
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);--背景色
exporter.exportReport();

主从报表:
ServletOutputStream out = response.getOutputStream();
JasperReport subReport = JasperCompileManager.compileReport(context.getRealPath("/reports/child.jrxml"));
JasperReport fatherReport = JasperCompileManager.compileReport(context.getRealPath("/reports/father.jrxml"));--定义主报表样式
Map parameters = new HashMap();
ArrayList listf = new ArrayList();--主报表的数据
ArrayList listc = new ArrayList();--子报表的数据
??
parameters.put("Title", "SubReport");
parameters.put("SubReportMap", new JRBeanCollectionDataSource(listc));--子报表的数据
parameters.put("ChildReport", subReport);

JasperPrint jasperPrint = JasperFillManager.fillReport(fatherReport,parameters, new JRBeanCollectionDataSource(listf));
?
JRHtmlExporter exporter = new JRHtmlExporter();

request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrint);

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");
exporter.exportReport();

子报表如何得到输入的参数:
首先是将参数传入到主报表中,再在主报表中将相应的参数传给子报表。因为在主报表中定义子报表时可以定义参数给子报表
并且要将相应的表格样式文件传给子报表
使用方法:
(1)net.sf.jasperreports.engine.JasperReport。
JasperReport subReport = JasperCompileManager.compileReport(context.getRealPath("/reports/child.jrxml"));
parameters.put("ChildReport", subReport);
(2)在样式中直接使用文件得到子报表的样式。

相关的定义:
1.参数
参数是传入到报表填充操作的对象引用
参数可的构造SQL查询
2.数据源
JasperReports使用一个叫JRDataSource的接口来支持各种类型的数据源
3.字段
报表字段代表从数据源映射数据到报表产生程序的唯一途径
4.表达式
表达式是JasperReports的强大特点,它们可被声明的报表变量使用来执行各种计算。
5.变量
报表变量是才一个表达式开始时建立的特殊的对象。
变量可以在相应的表达式中执行内置类型的计算,如:count,sum,average,lowest,highest等
6.报表区
当我们建立一个报表设计时,我们需要定义报表区的内容和布局。报表设计的整个结构基于以下报表区<title>, <pageHeader>, <columnHeader>, <groupHeader>, <detail>, <groupFooter>, <columnFoter>, <pageFooter>, <summary>.
7.组
组代表了在报表上组织数据的一个灵活的方式,当我们填充一个报表时,JasperReports引擎可字段检测组表达式<groupFooter> 和 <groupHeader>等是否完整。
8.字体和Unicode支持
你可以用任何语言来创建你的报表。
9. Scriptlets
Scriptlets是java代码序列,在每次报表事件发生时被执行。通过 scriptlets,用户可以影响被报表变量存储的值。
当我们创建一个JasperReports scriptlet类时,开发者要实现或重载几个方法,象:beforeReportInit(), afterReportInit(), beforePageInit(), afterPageInit(), beforeGroupInit(), afterGroupInit()等,这些方法当填充报表时在适当的时候被报表引擎调用。
10.子报表
子报表是报表产生工具的重要特征,它允许更复杂报表的创建并简化设计工作。
子报表在创建主从报表时非常有用。

附:

  1. public String printResumeToPDF() throws Exception {   
  2.         String jrxmlPath = getServletContext().getRealPath(   
  3.                 "/jasper/sovoResume.jrxml");   
  4.         List resumeInfo = getServMgr().getUserService().getResumeForDataSource(   
  5.                 getLoginUserId());   
  6.         Map<String, String> parameters = new HashMap<String, String>();   
  7.         parameters.put("SUBREPORT_DIR", getServletContext().getRealPath(   
  8.                 "/jasper"));   
  9.         JRDataSource dataSource = new JRBeanCollectionDataSource(resumeInfo);   
  10.         JasperReport report = JasperCompileManager.compileReport(jrxmlPath);   
  11.         JasperPrint jasperPrint = JasperFillManager.fillReport(report,   
  12.                 parameters, dataSource);   
  13.         HttpServletResponse response = ServletActionContext.getResponse();   
  14.         OutputStream ouputStream = response.getOutputStream();   
  15.         // 设置相应参数,以附件形式保存PDF   
  16.         response.setContentType("application/pdf");   
  17.         response.setCharacterEncoding("UTF-8");   
  18.         response.setHeader("Content-Disposition""attachment; filename=\""  
  19.                 + URLEncoder.encode(getLoginUserRealName() + "的个人简历""UTF-8")   
  20.                 + ".pdf\"");   
  21.         // 使用JRPdfExproter导出器导出pdf   
  22.         JRPdfExporter exporter = new JRPdfExporter();   
  23.         exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);   
  24.         exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);   
  25.         exporter.exportReport();// 导出   
  26.         ouputStream.close();// 关闭流   
  27.         return null;   
  28.     }  

 

 

分享到:
评论

相关推荐

    jasperReports小例子

    这个“jasperReports小例子”是用于演示如何使用jasperReports来生成Excel文件的一个简单示例。jasperReports的强大之处在于它的灵活性和可扩展性,能够处理各种数据源,并支持多种输出格式,如PDF、HTML、Excel...

    jasperreports分页例子

    **jasperreports分页例子详解** JasperReports是一款强大的开源报表工具,广泛应用于Java环境中,用于生成静态或交互式的PDF、HTML、XLS、CSV、XML等格式的报告。在这个"jasperreports分页例子"中,我们将深入探讨...

    jasperreports ejbql例子

    **jasperreports ejbql例子** 在Java世界中,JasperReports是一款强大的开源报表工具,它允许开发者创建复杂的报告,并可以导出为多种格式,如PDF、HTML、Excel等。EJBQL(Enterprise JavaBeans Query Language)是...

    jasperreports工程项目源码

    JasperReport是一个强大、灵活的报表生成工具,是开放源代码组织sf.net中的一个java 报表打印工程。能够展示丰富的页面内容,并将之转换成PDF,HTML,XML,Excel(通过POI或JExcelAPI实现)和Rtf(通过POI实现)格式...

    jasperreports-4.1.3-lib+src.zip

    4. **示例(samples)**:尽管原始的示例目录被删除,但压缩包可能还包含一些基础的示例代码,这些代码展示了如何使用JasperReports创建和填充报表。 5. **配置文件**:如jasperreports.properties,定义了...

    jasperreports 3.7.5

    jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports

    jasperreports主要jar包

    commons-beanutils-1.7.0.jar;commons-collections-3.2.1.jar;commons-digester-2.1.jar;commons-logging-1.1.1.jar;itext-asian.jar;itextpdf-5.5.8.jar;jasperreports-6.1.1.jar;...jasperreports-javaflow-6.1.1.jar

    JasperReports webapp应用

    - **src**: 源代码目录,包含Java源文件,可能有用于处理报表请求、数据处理以及与JasperReports交互的自定义代码。 - **WebContent**: Web应用程序的根目录,包含HTML、JSP、CSS、JavaScript等资源,以及WEB-INF...

    jasperreports-fonts.zip

    标题“jasperreports-fonts.zip”暗示这是一份与JasperReports相关的字体资源包,而描述中的“jasperreport支持中文jar包”则指出这个压缩文件包含的是为了使JasperReports能够正确显示中文字符的特殊组件。...

    jasperreports-4.5.0整套的jar包

    在早期的 Web 开发中,Applet 是一种将 Java 代码运行在客户端浏览器上的方式,这使得用户可以在网页中直接查看和交互报表。虽然随着现代浏览器对 Applet 支持的减少,这种方式已经不再常用,但在 4.5.0 版本时,它...

    jasperreports

    《JasperReports 4.7.0:深入解析与应用》 JasperReports是一款功能强大的开源报表工具,尤其在Java环境中被广泛应用。本文将详细探讨JasperReports 4.7.0版本的核心特性、设计原理及其实现方法,旨在帮助开发者...

    jasperreports所有的jar包

    标题中的"jasperreports所有的jar包"指的是JasperReports库的相关组件集合,这是一个用于创建复杂的报表的开源Java库。JasperReports支持多种数据源,包括数据库连接、CSV、XML等,能够生成PDF、HTML、Excel等多种...

    Jasperreports教程

    **JasperReports教程** JasperReports是一款强大的开源报表工具,专为Java开发人员设计,用于创建复杂的报表和数据可视化。它的灵活性和可扩展性使其在企业级应用中广泛应用。本教程将深入探讨JasperReports的核心...

    jasperreports-6.1.1 jar包

    在运行时,这些模板会被编译成.jasper文件,并结合Java代码和数据源来生成最终的报表。 在实际应用中,JasperReports可以与各种数据源集成,如数据库、XML文件、CSV文件甚至是Java对象。通过使用Java API或JSP标签...

    Jasperreports的文件包

    - **编写Java代码**:在服务器端,通过JasperFillManager填充数据到报表模板,然后使用JasperExportManager导出为所需格式。 - **前端展示**:在Web页面上提供一个接口,用户可以通过点击按钮触发报表的生成和下载。...

    jasperreports-6.1.0下载

    jasperreports-6.1.0下载

    jasperreports-5.6.0和4.6.0.rar

    - 执行报表:在Java代码中加载数据源,调用JasperFillManager填充报表,最后使用JasperExportManager导出报表。 5. **报表设计** JasperReports支持多种元素,如文本框、表格、图像、子报表等。通过使用表达式和...

    jasperreports-applet-5.1.0.jar

    《JasperReports Applet 5.1.0:报表打印技术新视角》 JasperReports是Java领域中广泛使用的开源报表工具,它提供强大的报告设计和数据可视化功能。在5.1.0版本中,引入了applet技术,使得用户能够通过浏览器实现...

    JasperReports 3.6 Development Cookbook

    《JasperReports 3.6 Development Cookbook》是一本专注于JasperReports 3.6版本开发实践的书籍,旨在帮助开发者深入理解和应用这个强大的报表工具。JasperReports是Java平台上广泛使用的开源报表库,它允许开发者...

Global site tag (gtag.js) - Google Analytics