`

jFreeChart 编译和生成报表

    博客分类:
  • java
阅读更多
    报表源文件(后缀名为.jrxml)在iReport的图形化界面中编辑和预览更方便。也可以在程序中通过代码来实现编译、填充和预览:

  流程:
  a. 首先检查编译后的文件是否存在,没有就编译并保存结果(后缀名为.jasper)到该目录(因为编译耗时较长,除非源文件改变,尽量减少编译次数)。
  b. 加载编译文件,填充报表数据,生成可打印的报表。
  c. 把该报表添加到窗体中预览。

import net.sf.jasperreports.engine.*;

public class Report {
    public void processReport(Object[] arrData) {
		// Encapsulate an array of report beans
		JRBeanArrayDataSource dataSource = new JRBeanArrayDataSource(arrData);
		// Additional data could be put into map
		Map map = new HashMap();
		map.put("title", "gorgeous");
		// Get the compiled report file
		String plainPath= "D:\xml";
		File compiledFile = new File(plainPath, "report1.jasper");
		// Check whether it exists, if not, compile the source and save the compiled result as a file
		checkAndCompileJRXML(compiledFile);
		// Likewise, check whether the sub reports invoked by the main report exists.
		checkAndCompileJRXML(plainPath, "report1_sub.jasper");
		// Load the report from the specified file
		JasperReport jasperReport = (JasperReport)JRLoader.loadObject(compiledFile);
		// Fill the report with the data of beans as well as additional info (map)
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, beanDataSource);
		// Add the JasperPrint object to a swing panel to show
		showReport(jasperPrint);
    }
	
	public void showReport(JasperPrint jasperPrint) {
		JRViewer viewer = new JRViewer(jasperPrint);
		JFrame frame = new JFrame();
		JPanel panel = new JPanel();
		LayoutManager layout = new BorderLayout();
		panel.setLayout(layout);
		JRViewer viewer = new JRViewer(jasperPrint);
		panel.add(viewer, BorderLayout.CENTER);
		frame.getContentPane().add(panel);
		frame.setVisible(true);
	}

	// Combine two report together if needed
	private JasperPrint combineReport(JasperPrint jasperPrint, JasperPrint jasperPrint2) {
		List pages = jasperPrint2.getPages();
		for (int i = 0; i < pages.size(); i++) {
			JRPrintPage page = (JRPrintPage)pages.get(i);
			jasperPrint.addPage(page);
		}
		return jasperPrint;
	}

	private void checkAndCompileJRXML(String path, String name) throws JRException {
		File file = new File(path.concat(name));
		checkAndCompileJRXML(file);
	}

	private void checkAndCompileJRXML(File file) throws JRException {
		if (!file.exists()) { // Compiled report file doesn't exist
			String compiledName = file.getPath();
			int idx = compiledName.lastIndexOf('.');
			// Get the source report file
			String sourceName = compiledName.substring(0, idx+1).concat("jrxml");
			file = new File(sourceName);
			// Compile the source file and save the compiled report
			JasperCompileManager.compileReportToFile(file.getPath());
		}
	}
}
分享到:
评论

相关推荐

    java报表jfreechart开发

    ### Java报表JFreeChart开发知识点总结 #### 1. 简介 ##### 1.1 什么是JFreeChart JFreeChart是一款免费且开源的Java图表库,它提供了多种类型的图表绘制功能,如饼图、条形图、折线图等。JFreeChart适用于各种Java...

    java生成报表所需的jar包

    在Java开发中,生成报表是一项常见的任务,尤其在企业级应用中,报表系统用于数据可视化、数据分析和决策支持。为了实现这一功能,开发者通常需要引入特定的库或框架,其中jar(Java Archive)包是Java类库的主要...

    jfreechart中文学习文档

    由于其开源性质,JFreeChart 成为了许多开发者和企业的首选图表生成解决方案。 **1.1.2 特点** - **灵活性与可扩展性**:JFreeChart 支持多种图表类型,并且可以轻松定制图表样式。 - **广泛的图表支持**:包括...

    JFreeChart 1.0.9 开发文档

    JFreeChart将继续发展和完善,未来将增加更多的图表类型和功能。 #### 3. 下载与安装JFreeChart **3.1 引言** 本章节介绍了如何下载并安装JFreeChart。 **3.2 下载** 用户可以从官方网站或其他可信源下载...

    JFreeChart使用大全

    JFreeChart由JFree公司维护,该公司提供了一系列基于Java的工具,包括报表生成工具JFreeReport、图表生成库JFreeChart、公共类库JCommon和报表设计工具JFreeDesigner。用户可从JFree的官方网站免费下载JFreeChart的...

    JFreeChart 1.0.9 开发者文档

    ### JFreeChart 1.0.9 开发者文档关键知识点概述 #### 一、引言:JFreeChart 是什么? JFreeChart是基于Java的一个开源图表库,它提供了丰富...无论是学术研究、企业报表还是Web应用,JFreeChart都能提供有力的支持。

    JFreeChartAPI+Jar包+用户开发指南中文版

    它广泛应用于数据可视化和报表制作,尤其是在需要在Java应用程序、Web应用或者服务器端生成高质量图表的场景中。JFreeChart API提供了一系列丰富的接口和类,使得开发者可以轻松地定制和控制图表的每一个细节。 本...

    java 生成图形报表

    总之,Java 生成图形报表涉及的关键技术有数据处理、图形库选择(如 JFreeChart)以及报表设计工具(如 JasperReports 和 iReport)。通过熟练掌握这些工具和技术,开发者可以轻松地在 Java 应用程序中实现美观且...

    报表设计基础及JasperReort,JFreeChart简明教程.doc

    JasperReport 是基于 Java 的报表生成库,它允许开发人员创建、编译和运行报表。JasperReport 提供了丰富的模板语言(JasperReports 报表语言,JRXML),用于描述报表的布局和样式。开发者可以使用 Ireport 这样的...

    jfreechart统计图

    4. 编译和运行报表,查看生成的带有JFreeChart图表的报表。 通过以上步骤,开发者可以在ireport报表中自由地利用JFreeChart的强大功能,创造出丰富多样的图表,以直观地展示和分析数据。 总结来说,JFreeChart是...

    jfreechart-1.0.0-install 精华说明 报表程序员必看

    总之,`jfreechart-1.0.0-install` 不仅是一款强大的图表库,而且还提供了一系列详尽的文档和支持资源,使得报表开发人员能够轻松地创建各种复杂的图表。无论是初学者还是经验丰富的开发者,都能够从中受益匪浅。

    JfreeChart包下载

    解压后,开发者需要将这些JAR文件添加到项目的类路径中,以便于编译和运行包含JFreeChart图表的代码。 创建图表的基本步骤如下: 1. **初始化图表**: 首先,你需要创建一个特定类型的图表对象,例如`JFreeChart ...

    jfreechart-1.0.0-pre2-install.pdf

    根据提供的文档信息,我们可以深入探讨JFreeChart的相关知识点,包括其...无论是简单的数据可视化还是复杂的业务报表,JFreeChart都能提供有效的解决方案。通过本篇介绍,相信读者已经对JFreeChart有了较为全面的认识。

    jfreechart-1.0.5-demo-all

    - 提供的 `jfreechart-1.0.5-demo.jar` 文件可以直接运行,无需编译源码,便于快速查看和理解 JFreeChart 能够生成的各种图表效果。 - 运行这个 JAR 文件,可以看到一个包含各种图表类型的示例窗口,通过这个窗口...

    jfreechart安装

    本文档旨在指导用户如何安装和配置 JFreeChart 1.0.9 版本,同时提供了一些基本示例和最佳实践建议。 **版本说明:** - **当前版本:** 1.0.9 - **发布日期:** 2008 年 1 月 4 日 - **作者:** David Gilbert **...

    struts2+mysql+jfreechart

    例如,可以创建一个报表系统,用户可以根据不同条件查询销售数据,系统返回以JFreeChart生成的柱状图或折线图,显示各个产品的销售趋势或对比。 总的来说,"struts2+mysql+jfreechart"的组合为开发数据驱动的Web...

    JasperReport+iReport报表工具

    JasperReport和iReport是Java平台下用于生成报表的工具,它们在企业应用开发中扮演着重要的角色,尤其是在报表的生成、展现和打印方面。JasperReport是一种报表引擎,它能够解析.jasper文件并将其呈现到用户界面中,...

    报表工具iReport

    8. 选择生成文件格式,编译、生成报表,iReport提供了多种输出格式,包括pdf、html等。 其他开源报表制作软件 除了iReport之外,还有其他开源报表制作软件,例如JFreeChart、ReportJet、Chart2D等。这些软件都可以...

    jfreechart-maven-plugin:Maven JFreeChart 插件。 在构建过程中从数据文件生成图表

    将JFreeChart Maven插件集成到构建流程中,开发者可以在编译、测试或打包阶段自动生成图表,确保每次构建时图表都基于最新的数据。这对于持续集成和自动化测试尤其有用,因为它提供了可视化的反馈,帮助快速理解代码...

Global site tag (gtag.js) - Google Analytics