`
namezhou
  • 浏览: 158619 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ireport和jasperReport生成统计报表的helloworld

阅读更多

本文只涉及到简单的动态数据传递

首先使用ireport创建模板

 

关于 变量 $p{}格式的,是parameter类型的,可以通过Map传递给JasperReport

Field 可以设置一些可以动态从数据库获取的数据,但是这种类型需要传递给一JasperReport一个Connection类型的对象

 

关于JasperReport的几种文件格式 jrxml是资源文件 其实就是一个xml文件,使用ireport编辑的就是这种文件

jasperReport可以根据jrxml文件编译生成jasper文件,应该就是一种字节码文件

jasper文件就是一种模板,是没有数据的,把数据交给jasper文件之后还可以生成一种jprint文件

通过jprint可以利用JasperReport生成各种格式的输出,如pdf excel html xml

 

代码:

纯静态的一个:

public static void main(String[] args) throws Exception{
		String filename = "src/jasper/report/test/hello.jrxml";
		long startTime = System.currentTimeMillis();
		//编译源文件
		String jasperfile = JasperCompileManager.compileReportToFile(filename);
		//填充数据,这里填充的是空数据
		String jrprintfile = JasperFillManager.fillReportToFile(jasperfile,null,new JREmptyDataSource());
		//输出html文件
		JasperExportManager.exportReportToHtmlFile(jrprintfile);
		//输入pdf文件,需要itext类库
		JasperExportManager.exportReportToPdfFile(jrprintfile);
		//输出xml文件,扩展名是jrpxml
		JasperExportManager.exportReportToXmlFile(jrprintfile,false);
		//下面的代码是输出excel文件的
		File sourceFile = new File(jrprintfile);
		System.out.println(sourceFile.getAbsolutePath());
		JasperPrint printer = (JasperPrint) JRLoader.loadObject(sourceFile);
		
		File destFile = new File(sourceFile.getParent(),printer.getName()+".xls");
		
		JRXlsExporter exporter = new JRXlsExporter();
		
		exporter.setParameter(JRExporterParameter.JASPER_PRINT, printer);
		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,destFile.toString());
		exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,true);
		
		exporter.exportReport();
		
		long endTime = System.currentTimeMillis();
		
		long time = (endTime-startTime);
		
		System.out.println("done in " + time + " ms ...");
	}

 

动态传递数据的:

jrxml文件 2002.jrxml

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="2002" pageWidth="835" pageHeight="842" columnWidth="795" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
	<parameter name="startTime" class="java.lang.String"/>
	<parameter name="endTime" class="java.lang.String"/>
	<parameter name="titleName" class="java.lang.String"/>
	<background>
		<band/>
	</background>
	<title>
		<band height="476">
			<staticText>
				<reportElement x="568" y="33" width="75" height="20"/>
				<textElement textAlignment="Center" verticalAlignment="Middle">
					<font fontName="宋体" size="12" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
				</textElement>
				<text><![CDATA[结束时间:]]></text>
			</staticText>
			<textField isBlankWhenNull="true">
				<reportElement x="643" y="33" width="150" height="20"/>
				<textElement textAlignment="Center" verticalAlignment="Middle">
					<font fontName="宋体" size="12" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA[$P{endTime}]]></textFieldExpression>
			</textField>
			<staticText>
				<reportElement x="0" y="33" width="75" height="20"/>
				<textElement textAlignment="Center" verticalAlignment="Middle">
					<font fontName="宋体" size="12" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
				</textElement>
				<text><![CDATA[开始时间:]]></text>
			</staticText>
			<textField isBlankWhenNull="true">
				<reportElement x="75" y="33" width="150" height="20"/>
				<textElement textAlignment="Center" verticalAlignment="Middle">
					<font fontName="宋体" size="12" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA[$P{startTime}]]></textFieldExpression>
			</textField>
			<line>
				<reportElement x="140" y="59" width="653" height="1"/>
			</line>
			<staticText>
				<reportElement x="40" y="53" width="100" height="20"/>
				<textElement textAlignment="Center" verticalAlignment="Middle">
					<font fontName="宋体" size="12" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
				</textElement>
				<text><![CDATA[图表]]></text>
			</staticText>
			<line>
				<reportElement x="0" y="60" width="40" height="1"/>
			</line>
			<textField isStretchWithOverflow="true" isBlankWhenNull="true">
				<reportElement x="0" y="0" width="795" height="33"/>
				<textElement textAlignment="Center" verticalAlignment="Middle">
					<font fontName="宋体" size="14" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA[$P{titleName}]]></textFieldExpression>
			</textField>
		</band>
	</title>
	<pageHeader>
		<band/>
	</pageHeader>
	<columnHeader>
		<band/>
	</columnHeader>
	<detail>
		<band/>
	</detail>
	<columnFooter>
		<band/>
	</columnFooter>
	<pageFooter>
		<band/>
	</pageFooter>
	<summary>
		<band/>
	</summary>
</jasperReport>

 

Java程序:

package jasper.report.test;

import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JREmptyDataSource;
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.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;

public class TestUseDynamicParameter {


	public static void main(String[] args) throws Exception{
		
		final String conf = "src/jasper/report/test/2002.jrxml";
		
		///////////////////////////////////////
		Map<String,String> map = new HashMap<String,String>();
		map.put("endTime", new Date().toString());
		map.put("startTime", new Date().toString());
		
		map.put("titleName", "thisisthetitlename");
		///////////////////////////////////////
		
		long startTime = System.currentTimeMillis();
		//编译源文件
		String jasperfile = JasperCompileManager.compileReportToFile(conf);
		//填充数据,这里填充的是空数据
		String jrprintfile = JasperFillManager.fillReportToFile(jasperfile, map,new JREmptyDataSource());
		//输出html文件
		JasperExportManager.exportReportToHtmlFile(jrprintfile);
		//输入pdf文件,需要itext类库
		JasperExportManager.exportReportToPdfFile(jrprintfile);
		//输出xml文件,扩展名是jrpxml
		JasperExportManager.exportReportToXmlFile(jrprintfile,false);
//		//下面的代码是输出excel文件的
		File sourceFile = new File(jrprintfile);
		System.out.println(sourceFile.getAbsolutePath());
		JasperPrint printer = (JasperPrint) JRLoader.loadObject(sourceFile);
		
		File destFile = new File(sourceFile.getParent(),printer.getName()+".xls");
		
		JRXlsExporter exporter = new JRXlsExporter();
		
		exporter.setParameter(JRExporterParameter.JASPER_PRINT, printer);
		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,destFile.toString());
		exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,true);
		
		exporter.exportReport();
		
		long endTime = System.currentTimeMillis();
		
		long time = (endTime-startTime);
		
		System.out.println("done in " + time + " ms ...");
	}

}

 

 

1
0
分享到:
评论

相关推荐

    iReport 和 Jasperreport整合开发web报表向导2.doc

    iReport 提供了 "Element properties" 和 "Element browser" 功能,用于查看和编辑报表中所有元素的属性,便于精细控制报表的外观和行为。 10. **Bands 和 Report Groups**: Bands 是报表的各个部分,如页面头部...

    iReport+JasperReport柱状图

    作者分享了自己的实践经验,遇到的困难和解决方法,旨在帮助读者更好地理解和掌握iReport和JasperReport的使用。 一、确定数据源类型 在开发柱状图时,首先需要确定数据源类型。作者选择了JRDataSourceProvider...

    iReport与JasperReport简介

    在IT领域,报告生成是数据分析和业务处理的重要环节,而iReport和JasperReport正是在这方面发挥重要作用的工具。本文将深入探讨这两个工具的使用和概念,帮助读者理解它们的功能、特点以及如何在实际项目中应用。 *...

    iReport 和 Jasperreport整合开发web报表向导

    结合提供的文档资源"iReport 和 Jasperreport整合开发web报表向导1.doc"、"iReport 和 Jasperreport整合开发web报表向导2.doc"以及"iReport 和 Jasperreport整合开发web报表向导3.doc",你将能更深入地了解这一过程...

    CSDN技术中心 iReport 和 Jasperreport整合开发web报表向导.pdf

    随着技术的发展,各种报表生成工具应运而生,其中iReport与JasperReport因其功能强大、易于集成的特点,在Java Web开发领域占据了重要位置。本文将详细介绍如何利用iReport和JasperReport进行Web报表的开发,并分享...

    iReport 和 Jasperreport整合开发web报表向1.doc

    iReport 是一个基于GUI的报表设计工具,它专门用于设计Jasperreport的模板,而Jasperreport则是一个强大的报表引擎,能够处理各种复杂的报表逻辑并生成多种格式的报表输出,如PDF、HTML、XML、XLS和CSV等。...

    ireport+jasperreport API

    1. JasperReport API:学习如何创建和填充jasperReport模板,理解JRDesign对象和JRFillDataset的概念,它们是报表生成的核心。 2. 动态表头:通过使用Group和HeaderFooter元素,可以实现根据数据变化的表头,提供更...

    iReport-JasperReport 报表开发指南

    《iReport-JasperReport 报表开发指南》是一本针对初学者的专业教程,旨在帮助读者掌握使用iReport和JasperReport进行报表开发的核心技术。iReport是一款强大的设计工具,而JasperReport则是一个流行的Java报表库,...

    struts2+Ireport+Jasperreport实现报表导出

    Struts2、iReport与JasperReport是Java开发中用于构建高效、动态Web应用程序和报表生成的工具。在这个项目中,这些技术结合在一起,提供了一种强大的报表导出解决方案。以下是对这些关键技术及其在项目中的应用的...

    ireport和jasperreport的简单使用

    【ireport和jasperreport简介...总结来说,ireport和jasperreport提供了一套完整的报表设计和展示解决方案,适用于各种Java Web应用中,通过简单的配置和代码调用,即可实现动态生成和展示报表,极大地提高了开发效率。

    iReport和Jasperreport整合开发web报表向导.pdf

    六、报表生成 在iReport中,用户可以生成报表,包括静态报表和动态报表。静态报表不需要数据库连接,而动态报表需要连接数据库。用户可以点击左边的按钮生成静态报表,或者点击右边的按钮生成动态报表。 七、报表...

    ireport+jasperreport联合开发java报表(PDF).rar

    《ireport+jasperreport联合开发Java报表》是针对Java开发者的一款强大的报表生成工具,它能够帮助程序员高效地创建、设计和导出各种复杂的业务报表,尤其是PDF格式的报表。本资料详细介绍了如何利用ireport和...

    iReport+JasperReport教材两本以及demo

    iReport和JasperReport是两个在Java开发领域中广泛使用的报表工具,主要用于设计和生成复杂的业务报告。这两个工具是开源的,因此深受开发者喜爱。在本资料包中,你将获得两本关于iReport和JasperReport的教材,以及...

    iReport 和 Jasperreport整合开发web报表.rar

    `iReport`和`JasperReport`是两个在Java领域广泛使用的开源报表工具,它们在Web应用程序中尤其常见。本资料包"iReport 和 Jasperreport整合开发web报表.rar"提供了一个关于如何将两者整合到Web项目中的教程或示例。 ...

    struts2+ireport+jasperreport报表设计简单示例

    使用ireport和struts2进行报表设计的简单示例,生成普通报表和饼图、柱状图。java工程的lib里包含丰富的jar包,且很多都是从各个网站下载的最新版本,文件夹内还包含一些ireport和jasperreport文档,适合刚入门学习...

    原创:iReport&JasperReport开发手记(一) List报表开发与发布

    - **JasperReport 3.7.3**:报表生成库。 2. **引入必要的JAR包**:在 MyEclipse 的项目属性中,将 JasperReport dist 文件夹下的所有 JAR 包添加到 Java Build Path 中。此外,还需引入以下外部依赖: - **...

    ireport-5.6.0 Jasperreport 报表工具 jar包大全

    由于其灵活性和可定制性,它们也适合在任何需要自定义报表生成的场景中使用。 **总结:** 这个压缩包提供了iReport 5.6.0版本和JasperReport的相关jar文件,以及一份使用说明,是Java开发者创建和管理报表的强大...

    iReport 和 Jasperreport整合开发web报表向3.doc

    总结来说,iReport和JasperReport结合使用,提供了强大的报表设计和生成能力,涵盖了从数据库连接、查询设计、样式定制到最终报表的集成。用户可以根据需求灵活设计复杂报表,并将其无缝地融入到各种应用程序中。

    ireport+jasperReport+Swing总结.doc

    - **运行代码**:运行 Java 应用程序,检查报表生成情况。 - **调试问题**:根据运行结果调整代码或报表模板。 **5. 完成** - **最终输出**:完成报表的设计与生成工作。 #### 五、报表组件详解 - **Title (报表...

Global site tag (gtag.js) - Google Analytics