图示ireport中使用javabean作数据源开发基于jasperreports报表过程
时间:2008-09-01 07:21:20 类别:数据 作者:forxinly
图示ireport中使用javabean 作数据源开发 基于 jasperreports 报表 过程
——学习笔记系列之ireport起步
xmlin
本文不讲原理,因为网上的资源很多,本文以一个简单的日销售报表为例,记录在ireport中使用javabean作数据源开发基于jasperreports报表过程.
一. 准备工作
1.正确安装jdk
2.到http://ireport.sourceforge.net/ 去下载ireport,本文使用1.3.1版本,解压iReport在任意目录,解压后的文件里面有一个iReport.bat,通过双击运行。
3.到http://jasperreports.sourceforge.net/index.html 下载jasperreport,本文使用的是1.3.1版本,解压到任意目录,开发中需要使用其中的jasperreports-1.3.1.jar,commons-logging-1.0.2.jar,commons-collections-2.1.jar.
二.创建javabean
1.创建DailySales.java,一个简单VO bean。
import java.io.Serializable;
public class DailySales implements Serializable
{
private static final long serialVersionUID = 1L;
private String productNo;
private String productName;
private int number;
private int money;
private int id;
public DailySales(String productNo, String productName, int number, int money)
{
this .productNo= productNo;
this .productName= productName;
this .number= number;
this .money= money;
}
public String getProductNo()
{
return productNo;
}
public void setProductNo(String productNo)
{
this .productNo= productNo;
}
public String getProductName()
{
return productName;
}
public void setProductName(String productName)
{
this .productName= productName;
}
public int getNumber()
{
return number;
}
public void setNumber(int number)
{
this .number= number;
}
public int getMoney()
{
return money;
}
public void setMoney(int money)
{
this .money= money;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this .id= id;
}
}
2.创建DailySalesDataSource.java,这是报表的数据源。这个类实现了jasperreports中提供的数据源接口JRDataSource,实现其中的两个方法:next()和getFieldValue(JRField field)。
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
public class DailySalesDataSource implements JRDataSource
{
/**
*测试数据,实际项目中是动态获取,也不一定是数组,可以是其它的数据类型.
*/
private Object[][] data=
{
{"货号1", "物品1", 1,1000},
{"货号2", "物品2", 2,2000},
{"货号3", "物品3", 3,3000},
{"货号4", "物品4", 4,4000},
{"货号5", "物品5", 5,5000},
{"货号6", "物品6", 6,6000},
{"货号7", "物品7", 7,7000},
{"货号8", "物品8", 8,8000},
{"货号9", "物品9", 9,9000},
{"货号10", "物品10", 10,10000}
};
private int index= -1;
public DailySalesDataSource()
{
}
/**
*实现了JRDataSource中的方法.判断是否还有下一个.
*/
public boolean next() throws JRException
{
index++;
return (index<data.length);
}
/**
*实现了JRDataSource中的方法.
*@param field是对应报表中的要填充的字段的名称.
*/
public Object getFieldValue(JRField field ) throws JRException
{
Object value = null ;
String fieldName = field .getName();
if ("id".equals(fieldName))
{
value = index+1;
}
else if ("productNo".equals(fieldName))
{
value = data[index][0];
}
——学习笔记系列之ireport起步
xmlin
本文不讲原理,因为网上的资源很多,本文以一个简单的日销售报表为例,记录在ireport中使用javabean作数据源开发基于jasperreports报表过程.
一. 准备工作
1.正确安装jdk
2.到http://ireport.sourceforge.net/ 去下载ireport,本文使用1.3.1版本,解压iReport在任意目录,解压后的文件里面有一个iReport.bat,通过双击运行。
3.到http://jasperreports.sourceforge.net/index.html 下载jasperreport,本文使用的是1.3.1版本,解压到任意目录,开发中需要使用其中的jasperreports-1.3.1.jar,commons-logging-1.0.2.jar,commons-collections-2.1.jar.
二.创建javabean
1.创建DailySales.java,一个简单VO bean。
import java.io.Serializable;
public class DailySales implements Serializable
{
private static final long serialVersionUID = 1L;
private String productNo;
private String productName;
private int number;
private int money;
private int id;
public DailySales(String productNo, String productName, int number, int money)
{
this .productNo= productNo;
this .productName= productName;
this .number= number;
this .money= money;
}
public String getProductNo()
{
return productNo;
}
public void setProductNo(String productNo)
{
this .productNo= productNo;
}
public String getProductName()
{
return productName;
}
public void setProductName(String productName)
{
this .productName= productName;
}
public int getNumber()
{
return number;
}
public void setNumber(int number)
{
this .number= number;
}
public int getMoney()
{
return money;
}
public void setMoney(int money)
{
this .money= money;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this .id= id;
}
}
2.创建DailySalesDataSource.java,这是报表的数据源。这个类实现了jasperreports中提供的数据源接口JRDataSource,实现其中的两个方法:next()和getFieldValue(JRField field)。
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
public class DailySalesDataSource implements JRDataSource
{
/**
*测试数据,实际项目中是动态获取,也不一定是数组,可以是其它的数据类型.
*/
private Object[][] data=
{
{"货号1", "物品1", 1,1000},
{"货号2", "物品2", 2,2000},
{"货号3", "物品3", 3,3000},
{"货号4", "物品4", 4,4000},
{"货号5", "物品5", 5,5000},
{"货号6", "物品6", 6,6000},
{"货号7", "物品7", 7,7000},
{"货号8", "物品8", 8,8000},
{"货号9", "物品9", 9,9000},
{"货号10", "物品10", 10,10000}
};
private int index= -1;
public DailySalesDataSource()
{
}
/**
*实现了JRDataSource中的方法.判断是否还有下一个.
*/
public boolean next() throws JRException
{
index++;
return (index<data.length);
}
/**
*实现了JRDataSource中的方法.
*@param field是对应报表中的要填充的字段的名称.
*/
public Object getFieldValue(JRField field ) throws JRException
{
Object value = null ;
String fieldName = field .getName();
if ("id".equals(fieldName))
{
value = index+1;
}
else if ("productNo".equals(fieldName))
{
value = data[index][0];
}