`
javaliujie
  • 浏览: 59415 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jasperreport学习 之 javabean封装成list作为数据源

阅读更多

jasperreport学习之javabean封装成list作为数据源

              原创 by javaliujie  http://javaliujie.iteye.com/blog/278936

 

1.思想

 javabean
    ↓
    ↓封装
    ↓
Collection
    ↓
    ↓作为数据源
    ↓
JRDataSource

 

2.代码部分

CustomBean.java

 

 

package cn.com.jr;

public class CustomBean
{
	private String city = null;
	private Integer id = null;
	private String name = null;
	private String street = null;

	public CustomBean(String pcity,Integer pid,String pname,String pstreet)
	{
		city = pcity;
		id = pid;
		name = pname;
		street = pstreet;
	}
	public CustomBean getMe()
	{
		return this;
	}
	public String getCity()
	{
		return city;
	}
	public Integer getId()
	{
		return id;
	}
	public String getName()
	{
		return name;
	}
	public String getStreet()
	{
		return street;
	}
}

  

 

 

 

 

CustomBeanFactory.java

 

package cn.com.jr;

import java.util.Arrays;
import java.util.Collection;

public class CustomBeanFactory
{
	private static CustomBean[] data =
		{
			new CustomBean("Berne", new Integer(9), "James Schneider", "277 Seventh Av."),
			new CustomBean("Berne", new Integer(22), "Bill Ott", "250 - 20th Ave."),
			new CustomBean("Boston", new Integer(23), "Julia Heiniger", "358 College Av."),
			new CustomBean("Boston", new Integer(32), "Michael Ott", "339 College Av."),
			new CustomBean("Chicago", new Integer(39), "Mary Karsen", "202 College Av."),
			new CustomBean("Chicago", new Integer(35), "George Karsen", "412 College Av."),
			new CustomBean("Chicago", new Integer(11), "Julia White", "412 Upland Pl."),
			new CustomBean("Dallas", new Integer(47), "Janet Fuller", "445 Upland Pl."),
			new CustomBean("Dallas", new Integer(43), "Susanne Smith", "2 Upland Pl."),
			new CustomBean("Dallas", new Integer(40), "Susanne Miller", "440 - 20th Ave."),
			new CustomBean("Dallas", new Integer(36), "John Steel", "276 Upland Pl."),
			new CustomBean("Dallas", new Integer(37), "Michael Clancy", "19 Seventh Av."),
			new CustomBean("Dallas", new Integer(19), "Susanne Heiniger", "86 - 20th Ave."),
			new CustomBean("Dallas", new Integer(10), "Anne Fuller", "135 Upland Pl."),
			new CustomBean("Dallas", new Integer(4), "Sylvia Ringer", "365 College Av."),
			new CustomBean("Dallas", new Integer(0), "Laura Steel", "429 Seventh Av."),
			new CustomBean("Lyon", new Integer(38), "Andrew Heiniger", "347 College Av."),
			new CustomBean("Lyon", new Integer(28), "Susanne White", "74 - 20th Ave."),
			new CustomBean("Lyon", new Integer(17), "Laura Ott", "443 Seventh Av."),
			new CustomBean("Lyon", new Integer(2), "Anne Miller", "20 Upland Pl."),
			new CustomBean("New York", new Integer(46), "Andrew May", "172 Seventh Av."),
			new CustomBean("New York", new Integer(44), "Sylvia Ott", "361 College Av."),
			new CustomBean("New York", new Integer(41), "Bill King", "546 College Av."),
			new CustomBean("Oslo", new Integer(45), "Janet May", "396 Seventh Av."),
			new CustomBean("Oslo", new Integer(42), "Robert Ott", "503 Seventh Av."),
			new CustomBean("Paris", new Integer(25), "Sylvia Steel", "269 College Av."),
			new CustomBean("Paris", new Integer(18), "Sylvia Fuller", "158 - 20th Ave."),
			new CustomBean("Paris", new Integer(5), "Laura Miller", "294 Seventh Av."),
			new CustomBean("San Francisco", new Integer(48), "Robert White", "549 Seventh Av."),
			new CustomBean("San Francisco", new Integer(7), "James Peterson", "231 Upland Pl.")
		};  
	public static Object[] getBeanArray()
	{
		return data;
	}
	public static Collection getBeanCollection()
	{
		return Arrays.asList(data);
	}


}

 

 

 

 

 

 

 

 

3.iReport设置

  a.设置环境变量

 

 

 

 

 

 

 

 

  b.查询获得变量

 

 

c.iReport页面

 

 

 

  d.iReport最终效果图

 

 

 

 

4.与程序结合代码

 

CustomDataSource.java

package cn.com.jr;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;

public class CustomDataSource implements JRDataSource
{
	private Object[][] data =
		{
			{"Berne", new Integer(22), "Bill Ott", "250 - 20th Ave."},
			{"Berne", new Integer(9), "James Schneider", "277 Seventh Av."},
			{"Boston", new Integer(32), "Michael Ott", "339 College Av."},
			{"Boston", new Integer(23), "Julia Heiniger", "358 College Av."},
			{"Chicago", new Integer(39), "Mary Karsen", "202 College Av."},
			{"Chicago", new Integer(35), "George Karsen", "412 College Av."},
			{"Chicago", new Integer(11), "Julia White", "412 Upland Pl."},
			{"Dallas", new Integer(47), "Janet Fuller", "445 Upland Pl."},
			{"Dallas", new Integer(43), "Susanne Smith", "2 Upland Pl."},
			{"Dallas", new Integer(40), "Susanne Miller", "440 - 20th Ave."},
			{"Dallas", new Integer(36), "John Steel", "276 Upland Pl."},
			{"Dallas", new Integer(37), "Michael Clancy", "19 Seventh Av."},
			{"Dallas", new Integer(19), "Susanne Heiniger", "86 - 20th Ave."},
			{"Dallas", new Integer(10), "Anne Fuller", "135 Upland Pl."},
			{"Dallas", new Integer(4), "Sylvia Ringer", "365 College Av."},
			{"Dallas", new Integer(0), "Laura Steel", "429 Seventh Av."},
			{"Lyon", new Integer(38), "Andrew Heiniger", "347 College Av."},
			{"Lyon", new Integer(28), "Susanne White", "74 - 20th Ave."},
			{"Lyon", new Integer(17), "Laura Ott", "443 Seventh Av."},
			{"Lyon", new Integer(2), "Anne Miller", "20 Upland Pl."},
			{"New York", new Integer(46), "Andrew May", "172 Seventh Av."},
			{"New York", new Integer(44), "Sylvia Ott", "361 College Av."},
			{"New York", new Integer(41), "Bill King", "546 College Av."},
			{"Oslo", new Integer(45), "Janet May", "396 Seventh Av."},
			{"Oslo", new Integer(42), "Robert Ott", "503 Seventh Av."},
			{"Paris", new Integer(25), "Sylvia Steel", "269 College Av."},
			{"Paris", new Integer(18), "Sylvia Fuller", "158 - 20th Ave."},
			{"Paris", new Integer(5), "Laura Miller", "294 Seventh Av."},
			{"San Francisco", new Integer(48), "Robert White", "549 Seventh Av."},
			{"San Francisco", new Integer(7), "James Peterson", "231 Upland Pl."}
		};

	private int index = -1;
	public CustomDataSource()
	{
	}
	public boolean next() throws JRException
	{
		index++;
		return (index < data.length);
	}

	public Object getFieldValue(JRField field) throws JRException
	{
		Object value = null;
		
		String fieldName = field.getName();
		
		if ("the_city".equals(fieldName))
		{
			value = data[index][0];
		}
		else if ("id".equals(fieldName))
		{
			value = data[index][1];
		}
		else if ("name".equals(fieldName))
		{
			value = data[index][2];
		}
		else if ("street".equals(fieldName))
		{
			value = data[index][3];
		}
		return value;
	}
}

 

 

 

TestPDF.java

public class TestPdf { 

    public static void main(String args[]) {
          File reportFile = new File("javabeantest.jasper");
          CustomDataSource cds = new CustomDataSource() ;
          try {
			JasperRunManager.runReportToPdfFile(reportFile.getPath(), "c:\\javabeantest.pdf", new HashMap(), cds) ;
		} catch (JRException e) {
			e.printStackTrace();
		}
    } 
}

原创 by javaliujie  http://javaliujie.iteye.com/blog/278936

 

分享到:
评论
9 楼 reny0oo 2016-05-31  
你好,生成pdf依赖的jar能不能给我发一下,邮箱:137735058@qq.com
8 楼 cry615 2012-06-28  
文章不错,简单易懂
7 楼 ArronHoo 2011-08-23  
SpringJava 写道
我的在3.iReport设置 a.设置环境变量处的classpath,怎么在测试链接的时候连接提示notFoundClass:check you classpath...

希望这位朋友多多指教!谢谢!

6 楼 SpringJava 2009-09-21  
还有那个javabeanset.jar是怎么弄的谢谢。希望得到答复...........
5 楼 SpringJava 2009-09-21  
我的在3.iReport设置 a.设置环境变量处的classpath,怎么在测试链接的时候连接提示notFoundClass:check you classpath...

希望这位朋友多多指教!谢谢!
4 楼 javaliujie 2008-12-19  
ch3212 写道

为什么我显示出来只有一行数据?没有进行循环

页面设置大小问题
3 楼 ch3212 2008-12-17  
为什么我显示出来只有一行数据?没有进行循环
2 楼 javaliujie 2008-12-08  
limeng530_1987 写道
为什么执行后. 数据中只是显示 name和street,id呢?
而city不显示 city为null. why? 请指教``

如果没有改动程序,那就是java bean source中没有把此字段读进来。
1 楼 limeng530_1987 2008-12-08  
为什么执行后. 数据中只是显示 name和street,id呢?
而city不显示 city为null. why? 请指教``

相关推荐

    jasperreport学习 之 javabean封装成list作为数据源.pdf

    总而言之,JasperReport学习之JavaBean封装成List作为数据源的教程,不仅提供了一套完整的实现流程,还强调了在实际开发中实践和应用的重要性。通过本文档的学习,开发者将能够快速掌握如何将复杂的业务数据封装为...

    jasperReport自定义javabean数据源实例

    在实际开发中,我们经常会遇到需要自定义数据源的情况,这时JasperReport提供了使用JavaBean作为数据源的功能。本实例将详细介绍如何通过自定义JavaBean数据源来生成报表。 首先,理解JavaBean是一种符合特定规范的...

    jasperreport+ireport创建javaBean多数据源报表

    将JavaBean用作数据源时,jasperreport会遍历JavaBean的属性并将其显示在报表上。这使得开发者能够灵活地利用业务对象的数据生成报表。 **多数据源支持** jasperreport允许使用多个数据源,这对于处理复杂报表场景...

    jasperreports 使用教程资料

    最后,《jasperreport学习之javabean封装成list作为数据源.pdf》这份资料专门探讨了如何将 JavaBean 数据封装到 List 中用于报表。在实际项目中,JavaBean 往往是数据模型的代表,这篇教程可能包含如何创建 JavaBean...

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

    ### JasperReport中使用多个数据源的方法详解 #### 场景背景 在报表开发过程中,有时我们需要在一个报表中展示不同来源的数据。例如,在同一份报告中同时呈现交叉表和饼状图,而这两部分数据可能源自不同的数据库表...

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

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

    使用JavaBean构造JasperReport子报表

    2. **JavaBean作为数据源**:在JasperReport中,JavaBean可以用作数据模型,将业务数据封装在其中。通过getter和setter方法,JasperReport可以从JavaBean对象中获取数据并填充到报告模板中。 3. **子报表...

    JasperReport 后台 代码 封装,采用JRDataSource方式

    总的来说,通过使用JRDataSource,我们可以灵活地在后台代码中封装JasperReport,将各种数据源的数据填充到报表中。这种方式允许我们在不改变报表设计的情况下,轻松地更换数据源或调整数据结构,极大地提高了报表...

    ireportjasperreport开源报表中使用javabean作为数据源的详细实.docx

    ### 使用JavaBean作为数据源在iReport+JasperReport中的详细实践 #### 一、简介 iReport 和 JasperReport 是一款强大的开源报表工具,广泛应用于Web应用开发中,支持多种数据源(如数据库、JavaBean等)以及多种...

    ireport中table使用javaBean数据源

    本知识点主要探讨的是如何在iReport中使用JavaBean作为数据源来填充表格(Table)组件。我们将深入理解这个过程,并结合提供的资源进行详细阐述。 1. **JavaBean数据源的原理** JavaBean是一种符合特定规范的Java...

    JasperReport 学习之路

    4. **DataSource**:讲解如何在报表中使用多种数据源,包括bean数组、bean集合或自定义数据源(只需实现`JRDataSource`接口)。 5. **Fonts**:展示不同字体的应用方法。 6. **Horizontal**:演示水平分栏报表的...

    图示ireport中使用javabean作数据源开发基于jasperreports报表过程

    在这个阶段,你可能需要设置数据源的连接参数,比如数据库连接信息,或者指向包含`JavaBean`对象的集合(如List或ArrayList)的引用。 6. **编译和运行报表**: 完成设计后,编译报表模板(`.jrxml`文件),`iReport...

    Jasperreport+iReport简单示例

    在JasperReport中,JavaBean可以作为一种数据源,用于填充报表的数据。JavaBean是一种符合JavaBeans规范的类,它封装了数据并提供了访问这些数据的方法。将JavaBean用作数据源,意味着报表中的每个字段都可以绑定到...

    jasperReport学习资料

    - **JRXML文件**:JasperReport的设计是基于XML的,JRXML文件是报表模板的定义文件,包含了报表的布局、样式和数据源等信息。 - **JasperDesign**:在内存中表示JRXML的类,用于程序中动态创建和修改报表。 - **...

    jasperReport学习文档资料.rar

    JasperReports支持多种数据源类型,包括JDBC、JavaBean、CSV等,通过灵活的数据绑定和查询设计,可以实现动态数据的展现。 "jaspersoft+iReport+Designer+4.5.0免费教程.doc"介绍了Jaspersoft Studio(iReport的...

    JasperReport 后台 代码 封装

    采用JDBCConnection 方式调用 java文件: BaseExcelExport.java HtmlExport.java PDFExport.java XlsJExcelExport.java XlsPOIExport.java JasperPrintWithDataSource.java JDBCConnection.java

    JasperReport学习之路

    JasperReport学习之路 网上摘录

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

    3. **添加数据源**:连接到 MySQL 数据库,选择之前创建的表格作为数据来源。 4. **设计报表布局**:在 detail band 中添加字段,调整样式和布局。 5. **预览和调试**:使用 iReport 内置的预览功能检查报表的外观...

Global site tag (gtag.js) - Google Analytics