`
234390216
  • 浏览: 10238946 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462906
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1776005
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398757
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395161
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:680178
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:531162
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1185047
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:468841
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151496
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68352
社区版块
存档分类
最新评论

JasperReport(4)——使用一个BeanCollectionDataSource

阅读更多

查看JasperReport的api可以知道,JasperReport给我们提供了丰富的数据源,其中BeanCollectionDataSource是一个比较常用的数据源。正如其名,BeanCollectionDataSource是把一个装满Bean对象的Collection作为数据源,在JasperReport的模版中定义的每一个Filed就相当于Bean对象的一个Filed。

 

下面是一个模版的定义,取名为report4.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="report4" language="groovy" columnCount="2" pageWidth="800" pageHeight="842" columnWidth="380" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
	<property name="ireport.zoom" value="1.0"/>
	<property name="ireport.x" value="0"/>
	<property name="ireport.y" value="0"/>
	<parameter name="title" class="java.lang.String"/>
	<field name="id" class="java.lang.Integer"/>
	<field name="name" class="java.lang.String"/>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="79" splitType="Stretch">
			<textField>
				<reportElement x="62" y="19" width="630" height="29"/>
				<textElement textAlignment="Center" verticalAlignment="Middle">
					<font size="16"/>
				</textElement>
				<textFieldExpression><![CDATA[$P{title}]]></textFieldExpression>
			</textField>
		</band>
	</title>
	<columnHeader>
		<band height="24" splitType="Stretch">
			<staticText>
				<reportElement x="226" y="2" width="100" height="20"/>
				<textElement textAlignment="Center">
					<font size="12" isBold="true"/>
				</textElement>
				<text><![CDATA[序号]]></text>
			</staticText>
			<staticText>
				<reportElement x="434" y="2" width="100" height="20"/>
				<textElement textAlignment="Center">
					<font size="12" isBold="true"/>
				</textElement>
				<text><![CDATA[名称]]></text>
			</staticText>
		</band>
	</columnHeader>
	<detail>
		<band height="37" splitType="Stretch">
			<textField>
				<reportElement x="226" y="11" width="100" height="20"/>
				<textElement textAlignment="Center" verticalAlignment="Middle"/>
				<textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="434" y="11" width="100" height="20"/>
				<textElement textAlignment="Center" verticalAlignment="Middle"/>
				<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
			</textField>
		</band>
	</detail>
</jasperReport>

 

下面是进行测试的主程序:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
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.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

public class Test3 {

	public static void main(String args[]) throws JRException {
		
		//用于传递参数的Map
		Map<String, Object> parameters = new HashMap<String, Object>();
		parameters.put("title", "JasperReport使用BeanCollectionDataSource示例");
		
		//用于建立BeanCollection数据源的Collection
		List<Product> beanCollection = new ArrayList<Product>();
		for (int i=0; i<10; ) {
			Product p = new Product();
			p.setId(++i);
			p.setName("商品_" + i);
			beanCollection.add(p);
		}
		JRDataSource dataSource = new JRBeanCollectionDataSource(beanCollection);
		//编译jrxml文件
		JasperReport jasperReport = JasperCompileManager.compileReport("src/report4.jrxml");
		//填充数据
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
		//导出为html文件
		JasperExportManager.exportReportToHtmlFile(jasperPrint, "test3_beanCollectionDataSource.html");
		System.out.println(".........................");
	}
	
}

 

Product.class

public class Product {
	
	private int id; 
	
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}
4
0
分享到:
评论
1 楼 zhuyong123455 2014-11-12  
你好,请问你ireport中设计报表时数据源是怎么设置的?

相关推荐

    jasperreport中文资料——梧桦椰枫(收集).zip

    **JasperReport** 是一个强大的开源报告生成工具,主要用于Java应用程序,可以生成各种类型的静态和交互式报告。它使用XML或Java代码来定义报告布局,并支持多种数据源,包括数据库连接、CSV文件、XML数据等。...

    JasperReport中使用多个数据源的方法

    本文将详细介绍如何在JasperReports中直接在一个报表中使用多个数据源,从而避免了子报表带来的问题,并提高了开发效率。 ### 1. 多数据源的概念及应用场景 - **概念**:多数据源是指在一个报表设计中同时使用多个...

    jasperReport5.6.1编码以及使用

    jasperReport5.6.1编码以及使用 JasperReport是一款功能强大的报表生成工具,广泛应用于各种Java应用程序中。下面是关于JasperReport5.6.1编码以及使用的详细知识点。 JasperReport编码 JasperReport编码是指在...

    使用JasperReport输出image图像

    接着,开发者转向了`JRGraphics2DExporter`类,这是一个专门用于将JasperReport报表导出到`Graphics2D`对象的导出器。`JRGraphics2DExporter`的优势在于它能够精确地将报表渲染到`Graphics2D`实例,而不是近似模拟。...

    jasperreport模板一个

    例如,以下是一个简单的Java代码片段,展示了如何使用jasperreport模板生成报表: ```java JasperDesign jasperDesign = JRXmlLoader.load("path/to/groupOpenReport.jrxml"); JasperReport jasperReport = ...

    jasperreport一个子报表的例子

    JasperReport是一个强大的Java报告库,它允许开发者创建复杂、美观的报表,广泛应用于企业级应用中。在JasperReport中,子报表是用于在主报表内部嵌套其他报表的一个功能,可以用来组织和展示更复杂的结构化数据。...

    jasperReport +spring 的使用

    jasperReport通过一个XML文件定义报表布局,并通过Java API来填充数据并生成最终的报表文档。这一过程通常涉及到多个步骤:设计报表模板、填充数据以及导出报表。 在集成Spring框架的情况下,jasperReport能够更好...

    webwork下jasperreport的subreport使用套打

    WebWork是一个轻量级的MVC框架,它与JasperReport结合,可以为开发者提供灵活的报表设计和展示能力。本文将深入探讨在WebWork环境下,如何使用JasperReport的子报告(subreport)功能进行套打,并以javabean作为数据...

    使用jasperReport实现动态表头.pdf

    在本文中,我们将深入探讨如何使用JasperReport来实现动态表头,这是一个在报表生成过程中非常重要的特性,尤其是在处理如服装行业中需要灵活调整的尺码组数据时。JasperReport是一个开源的报表工具,具有良好的可...

    JasperReport与iReport的配置与使用.docx

    首先,需要创建一个数据库连接,然后添加一个数据源,最后使用SQL查询语句来获取数据。 ### 如何设置数据库连接 设置数据库连接需要使用iReport的数据库连接向导。首先,需要选择数据库类型,然后输入数据库连接...

    jasperReport客户端打印。

    JRXML文件可以使用iReport这样的可视化编辑器来创建,iReport是JasperReport的一个配套工具,提供了一个友好的图形化界面。 客户端打印是指在用户的计算机上直接完成打印操作,而不是通过服务器。在JasperReport中...

    jasperreport

    总的来说,JasperReport是一个功能强大的报表工具,它提供了丰富的设计元素和灵活的数据处理方式,使得即使复杂的业务报表也能轻松创建。在实际开发中,开发者可以根据需求自由组合这些元素,打造出满足业务需求的...

    jasperReport测试例子

    它提供了一个灵活的报表设计工具——iReport,用户可以通过拖放操作创建复杂的报表布局。此外,jasperReport还支持参数化报表,允许在运行时传递参数来定制报表内容。 在描述中提到的"所有相关学习资料"可能包括...

    jasperReport 亚洲语言包

    总的来说,jasperReport的亚洲语言包通过iTextAsianCmaps.jar、iTextAsian.jar和一个较旧版本的iText库,提供了对中文和其他亚洲语言的全面支持,确保了在PDF报告中正确地呈现复杂的文本和字符。这在处理多语言报告...

    使用JasperReport+iReport进行WEB开发

    iReport则是JasperReport的官方设计工具,它提供了一个图形化界面,使得非程序员也能创建和编辑报表模板。用户可以通过拖放操作来设计表格、图表、文本框等元素,同时可以预览报表效果,极大地提高了报表开发的效率...

    Jasperreport资料

    总结来说,JasperReport是一个强大且灵活的报表工具,通过其丰富的功能和广泛的社区支持,可以帮助开发者快速创建专业级别的报表。无论是在企业级应用还是个人项目中,JasperReport都是值得信赖的报表解决方案。通过...

    jasperReport 动态合并单元格示例

    一个jasperReport由设计文件(.jrxml)和编译后的字节码文件(.jasper)组成。设计文件使用XML语法定义了报告的布局,包括字段、变量、样式、图像、文本框等元素。要实现动态合并单元格,我们需要在设计文件中设置...

    jasperreport创建多个List数据源报表 通多个detail实现多个table效果

    jasperreport创建多个List数据源报表 通多个detail实现多个table效果,简单 快捷

    Jreport—jasperreport的一个实例demo

    JasperReport的设计工具——iReport(现在已合并到Jaspersoft Studio)提供了一个直观的图形用户界面,使得非技术人员也能设计报表。JasperReport与Spring、Hibernate等Java框架兼容良好,可以方便地集成到现有的...

    jasperReport详细教程及例子

    - **子报表(Subreport)**: 在主报表中嵌入另一个报表,用于分组或显示详细信息。 - **图表(Chart)**: 可以根据数据生成各种图表,如柱状图、饼图、线图等。 ### 3. 开发流程 1. **设计报表**: 使用iReport或...

Global site tag (gtag.js) - Google Analytics