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.子报表
子报表是报表产生工具的重要特征,它允许更复杂报表的创建并简化设计工作。
子报表在创建主从报表时非常有用。
附:
- public String printResumeToPDF() throws Exception {
- String jrxmlPath = getServletContext().getRealPath(
-
"/jasper/sovoResume.jrxml");
- List resumeInfo = getServMgr().getUserService().getResumeForDataSource(
- getLoginUserId());
-
Map<String, String> parameters = new HashMap<String, String>();
-
parameters.put("SUBREPORT_DIR", getServletContext().getRealPath(
-
"/jasper"));
-
JRDataSource dataSource = new JRBeanCollectionDataSource(resumeInfo);
- JasperReport report = JasperCompileManager.compileReport(jrxmlPath);
- JasperPrint jasperPrint = JasperFillManager.fillReport(report,
- parameters, dataSource);
- HttpServletResponse response = ServletActionContext.getResponse();
- OutputStream ouputStream = response.getOutputStream();
-
-
response.setContentType("application/pdf");
-
response.setCharacterEncoding("UTF-8");
-
response.setHeader("Content-Disposition", "attachment; filename=\""
-
+ URLEncoder.encode(getLoginUserRealName() + "的个人简历", "UTF-8")
-
+ ".pdf\"");
-
-
JRPdfExporter exporter = new JRPdfExporter();
- exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
- exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
-
exporter.exportReport();
-
ouputStream.close();
-
return null;
- }
分享到:
相关推荐
这个“jasperReports小例子”是用于演示如何使用jasperReports来生成Excel文件的一个简单示例。jasperReports的强大之处在于它的灵活性和可扩展性,能够处理各种数据源,并支持多种输出格式,如PDF、HTML、Excel...
**jasperreports分页例子详解** JasperReports是一款强大的开源报表工具,广泛应用于Java环境中,用于生成静态或交互式的PDF、HTML、XLS、CSV、XML等格式的报告。在这个"jasperreports分页例子"中,我们将深入探讨...
**jasperreports ejbql例子** 在Java世界中,JasperReports是一款强大的开源报表工具,它允许开发者创建复杂的报告,并可以导出为多种格式,如PDF、HTML、Excel等。EJBQL(Enterprise JavaBeans Query Language)是...
JasperReport是一个强大、灵活的报表生成工具,是开放源代码组织sf.net中的一个java 报表打印工程。能够展示丰富的页面内容,并将之转换成PDF,HTML,XML,Excel(通过POI或JExcelAPI实现)和Rtf(通过POI实现)格式...
4. **示例(samples)**:尽管原始的示例目录被删除,但压缩包可能还包含一些基础的示例代码,这些代码展示了如何使用JasperReports创建和填充报表。 5. **配置文件**:如jasperreports.properties,定义了...
jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports
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
- **src**: 源代码目录,包含Java源文件,可能有用于处理报表请求、数据处理以及与JasperReports交互的自定义代码。 - **WebContent**: Web应用程序的根目录,包含HTML、JSP、CSS、JavaScript等资源,以及WEB-INF...
标题“jasperreports-fonts.zip”暗示这是一份与JasperReports相关的字体资源包,而描述中的“jasperreport支持中文jar包”则指出这个压缩文件包含的是为了使JasperReports能够正确显示中文字符的特殊组件。...
在早期的 Web 开发中,Applet 是一种将 Java 代码运行在客户端浏览器上的方式,这使得用户可以在网页中直接查看和交互报表。虽然随着现代浏览器对 Applet 支持的减少,这种方式已经不再常用,但在 4.5.0 版本时,它...
《JasperReports 4.7.0:深入解析与应用》 JasperReports是一款功能强大的开源报表工具,尤其在Java环境中被广泛应用。本文将详细探讨JasperReports 4.7.0版本的核心特性、设计原理及其实现方法,旨在帮助开发者...
标题中的"jasperreports所有的jar包"指的是JasperReports库的相关组件集合,这是一个用于创建复杂的报表的开源Java库。JasperReports支持多种数据源,包括数据库连接、CSV、XML等,能够生成PDF、HTML、Excel等多种...
**JasperReports教程** JasperReports是一款强大的开源报表工具,专为Java开发人员设计,用于创建复杂的报表和数据可视化。它的灵活性和可扩展性使其在企业级应用中广泛应用。本教程将深入探讨JasperReports的核心...
在运行时,这些模板会被编译成.jasper文件,并结合Java代码和数据源来生成最终的报表。 在实际应用中,JasperReports可以与各种数据源集成,如数据库、XML文件、CSV文件甚至是Java对象。通过使用Java API或JSP标签...
- **编写Java代码**:在服务器端,通过JasperFillManager填充数据到报表模板,然后使用JasperExportManager导出为所需格式。 - **前端展示**:在Web页面上提供一个接口,用户可以通过点击按钮触发报表的生成和下载。...
jasperreports-6.1.0下载
- 执行报表:在Java代码中加载数据源,调用JasperFillManager填充报表,最后使用JasperExportManager导出报表。 5. **报表设计** JasperReports支持多种元素,如文本框、表格、图像、子报表等。通过使用表达式和...
《JasperReports Applet 5.1.0:报表打印技术新视角》 JasperReports是Java领域中广泛使用的开源报表工具,它提供强大的报告设计和数据可视化功能。在5.1.0版本中,引入了applet技术,使得用户能够通过浏览器实现...
《JasperReports 3.6 Development Cookbook》是一本专注于JasperReports 3.6版本开发实践的书籍,旨在帮助开发者深入理解和应用这个强大的报表工具。JasperReports是Java平台上广泛使用的开源报表库,它允许开发者...