`

JasperReports(一:基础)

阅读更多

 以下文件参照:Struts2 权威指南

JasperReports共涉及的类:

JasperCompileManager:这是一个与编译有关的类,利用它提供的一些编译方法,允许我们将一个报表设计文档*.jrxml 文件编译成一个二进制的报表文件 *.jasper文件。此外,也允许使用一个JasperDesign 实例(*.jrxml文件在内存中的形式)作为报表设计文件。

JasperFillManager:这个类是用于填充报表的,所谓填充报表就是为报表的数据查询提供数据库连接,给报表的参数设值等。报表填充之前是*.jasper文件,经过填充后就成为了*.jrprint 文件--这就是一份可显示或者可导出成报表的文件。

JasperPrintManager:用于将一个*.jrprint 文件完成打印。

JasperExportManager:用于将可显示的报表导出成各种格式的报表文件,主要导出成pdf、xml 格式的文档。

JasperRunManager:这个类可以直接将*.jasper 文件导出成各种格式的报表文件,只要是导出成pdf、html文档。

JRXxxExporter:这是一系列的文件导出器,他们用于将*.jrprint 文件导出成对应格式的报表文件,例如,JRPDFExporter可将*.jrprint  导出成一个pdf文档。

 

当开发人员生成不同的文件时,不同文件在JasperReports中也有对应的类。不同文件有如下3个类来对应:

JasperDesign:对应报表设计文件在内存中的形式,也就是对应*.jrprint 文件

JasperReport:对应二进制报表文件在内存中的形式,也就是对应*.jasper文件

JasperPrint:对应可显示报表设计文件在内存中的形式,也就是对应*.jrprint文件

 

以下是简单的实例:

所用到的包和iReport 文件都在下面

 

package testone;

import javax.swing.JFrame;

import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JRViewer;

public class MyCompile {

	/**
	 * @param args
	 * @throws Exception 
	 * 开发步骤:
	 * 1.开发人员开发报表设计文件,可利用iReport 工具,生成*.jrxml文件
	 * 2.使用JasperReport提供的JasperCompileManager工具把*.jrxml文件编译成*.jasper文件
	 * 3.使用jasperReport 提供的JasperFillManager 工具把*.jasper文件编译成*.jrprint文件
	 * 4.使用导出管理器jasperExportManaer 或者各种格式的文件导出器JRXxxExport将*.jrprint文件导出成各种格式的报表文件
	 */
	public static void main(String[] args){
		compile();
		fill();
		export1();
//		export2();
//		export3();
//		view();
	}
	
	public static void compile(){
		try {
			JasperCompileManager.compileReportToFile("static.jrxml","static.jasper");
			System.out.println("成功编译成jasperReport文件 *.jasper");
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	public static void fill(){
		try {
			//填充时,即使没有使用数据源,也必须指定一个新建的JREmptyDataSource实例,而不能直接用null
			JasperFillManager.fillReportToFile("static.jasper",null,new JREmptyDataSource());
			System.out.println("成功填充成一个报表文件*.jrprint");
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	/*
	 * 利用JasperExportManager 生成pdf、html或者xml格式的文件(不能生成xls格式文件)
	 */
	public static void export1(){
		try {
			JasperExportManager.exportReportToPdfFile("static.jrprint","static1.pdf");
			System.out.println("成功生成pdf报表文件");
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	/*
	 * 利用JRXxxExport将*.jrprint文件导出成各种格式的报表文件
	 * 
	 */
	public static void export2(){
		try {
			JasperPrint jasperPrint=(JasperPrint)JRLoader.loadObject("static.jrprint");
			JRXlsExporter export=new JRXlsExporter();
			export.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
			export.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"static.xls");
			export.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
			export.exportReport();
			System.out.println("成功生成xls报表文件");
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	/*
	 * 利用JasperRunManager,可把*.jasper文件直接生成html、pdf格式文件
	 */
	public static void export3(){
		try {
			JasperRunManager.runReportToPdfFile("static.jasper", "static2.pdf",null,new JREmptyDataSource());
			System.out.println("成功生成xls报表文件");
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
	}
	/*
	 * 利用JRViewer可直接预览*.jrprint文件
	 */
	public static void view(){
		try {
			JRViewer jr=new JRViewer("static.jrprint",false);
			JFrame jf=new JFrame("报表预览");
			jf.add(jr);
			jf.pack();
			jf.setVisible(true);
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

 

  • lib.rar (5.2 MB)
  • 下载次数: 512
分享到:
评论
1 楼 ap0406708 2010-04-28  
,好文章~~~

相关推荐

    jasperreports-4.1.3-lib+src.zip

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

    jasperreports

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

    jasperreports-6.9.0-project.zip

    数据是报表的基础,JasperReports支持多种数据源,如Java集合、数据库连接(JDBC)、CSV文件等。在这个模块中,我们可以看到如何配置和使用这些数据源,以及如何通过JRDataSource接口自定义数据提供者。 2. **...

    jasperreports-4.5.0整套的jar包

    在这个版本中,用户可以找到一系列与报表设计、编译和展示相关的 `jar` 包,这些库是开发基于 Java 的报表应用的基础。 **1. jasperreports-javaflow-4.5.0.jar:流式处理** `jasperreports-javaflow-4.5.0.jar` ...

    JasperReports 3.6 Development Cookbook

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

    jasperreports-applet-5.1.0.jar

    一、JasperReports基础 JasperReports是Itext和JFreeChart的结合体,它允许开发者使用XML格式定义报表模板,然后在运行时动态填充数据。报表可以是各种形式,包括表格、图表、文本等,且支持导出为PDF、HTML、Excel...

    java报表jasperreports-0.6.1.rar

    总之,JasperReports 0.6.1是一个基础的报表生成工具,虽然功能相对有限,但对于初学者或对复杂报表需求不高的项目来说,它仍然是一个实用的选择。随着版本的迭代,JasperReports的功能不断丰富和完善,成为了一个...

    iReport+jasperReports 联合开发JAVA报表

    2. **《ireport图文教程.pdf》**:此教程详细介绍了如何使用iReport进行报表设计,包括基础操作、高级功能和实战技巧,对于初学者来说是一份很好的入门教材。 3. **《iReport+jasperReports 联合开发JAVA报表.pdf》...

    jasperreports实例+中文文档+资料

    JasperReports是一款强大的开源报表工具,广泛应用于Java应用程序中,用于生成复杂的数据报告。这个资源包“jasperreports实例+中文文档+资料”提供了全面的学习材料,包括实例、文档以及相关资料,帮助开发者深入...

    JasperReports 3.6 Development Cookbook Jul 2010

    - 有经验的开发者:对于已经有一定基础的开发者,本书可以帮助他们深入了解JasperReports的各种高级功能和技术细节。 - 项目经理和技术负责人:对于负责项目管理和技术决策的人来说,本书提供了一套完整的解决方案,...

    Jasperreports教程

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

    jasperreports-5.6.0和4.6.0.rar

    - **iTextAsianCmaps.jar, iText-2.1.7.jar**:iText是JasperReports用于生成PDF的依赖库,这两个版本分别包含亚洲字符映射和基础iText库。 - **jasperreports-applet-4.6.0.jar**:支持在Web应用程序中嵌入...

    jasperReports小例子

    通过这个小例子,你可以掌握jasperReports的基础用法,并以此为基础,进一步学习更高级的报表设计和数据展现技巧。在实际项目中,jasperReports可以为企业级应用提供强大的报表生成能力,提升数据可视化和分析的效率...

    Jasperreports6.3.1所依赖的Jar集合

    然而,为了减小下载包的体积和避免重复引入,JasperReports的基础下载包通常会省略某些特定的依赖项,如字体包、Spring框架、iText库、Ant构建工具等,这些需要开发者根据项目需求自行下载和管理。 1. **Groovy-all...

    jasperreports-1.3.3与iReport1.3.3初级使用

    jasperreports-1.3.3和iReport1.3.3是早期的报表设计和生成工具,尽管版本较旧,但对于初学者来说,它们仍然是学习报表设计基础的好起点。通过实践和学习,你可以掌握如何使用这些工具创建定制的、数据驱动的报表,...

    iReport-JasperReports报表开发指南+操作手册

    《iReport-JasperReports报表开发指南+操作手册》是一本专为初学者设计的教程,主要聚焦于使用iReport和JasperReports工具进行报表开发。这两个工具是Java领域内广泛使用的开源报表解决方案,尤其在企业级应用中颇受...

    JasperReports数据库查询父子报表模板

    1. **JasperReports基础** JasperReports允许开发者通过XML格式的模板(如`.jrxml`文件)来设计复杂的报表布局。这些模板可以包含文本、图像、图表以及各种数据字段,支持多种数据源,包括数据库连接、CSV文件、XML...

Global site tag (gtag.js) - Google Analytics