2010年2月22日 星期一

ERP iReport使用javabean做数据源需要四个步骤

iReport使用javabean做数据源需要四个步骤

一、建立一个javabean,这是一个普通的bean:


/**//*
* PersonBean.java
*
* Created on 8 luglio 2004, 1.41
*/
package it.businesslogic.ireport.examples.beans;
/** *//**
*
* @author Administrator
*/
public class PersonBean ...{
private String firstName;
private String lastName;
private HobbyBean[] hobbies;
private AddressBean address;
/** *//** Creates a new instance of PersonBean */
public PersonBean() ...{
this(null);
}
public PersonBean(String name) ...{
this.setFirstName( name );
hobbies = new HobbyBean[0];
}
/** *//**
* Getter for property firstName.
* @return Value of property firstName.
*/
public java.lang.String getFirstName() ...{
return firstName;
}
/** *//**
* Setter for property firstName.
* @param firstName New value of property firstName.
*/
public void setFirstName(java.lang.String firstName) ...{
this.firstName = firstName;
}
/** *//**
* Getter for property lastName.
* @return Value of property lastName.
*/
public java.lang.String getLastName() ...{
return lastName;
}
/** *//**
* Setter for property lastName.
* @param lastName New value of property lastName.
*/
public void setLastName(java.lang.String lastName) ...{
this.lastName = lastName;
}
/** *//**
* Getter for property hobbies.
* @return Value of property hobbies.
*/
public it.businesslogic.ireport.examples.beans.HobbyBean[] getHobbies() ...{
return this.hobbies;
}
/** *//**
* Setter for property hobbies.
* @param hobbies New value of property hobbies.
*/
public void setHobbies(it.businesslogic.ireport.examples.beans.HobbyBean[] hobbies) ...{
this.hobbies = hobbies;
}
/** *//**
* Getter for property address.
* @return Value of property address.
*/
public it.businesslogic.ireport.examples.beans.AddressBean getAddress() ...{
return address;
}
/** *//**
* Setter for property address.
* @param address New value of property address.
*/
public void setAddress(it.businesslogic.ireport.examples.beans.AddressBean address) ...{
this.address = address;
}
}


二 实现JRDataSourceProvider接口
实现JRDataSourceProvider接口最好的办法是继承JRAbstractBeanDataSourceProvider类:


import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.*;
import it.businesslogic.ireport.examples.beans.*;
import java.util.*;
public class PersonBeansDataSource extends JRAbstractBeanDataSourceProvider ...{
public PersonBeansDataSource() ...{
super(PersonBean.class);
}
public JRDataSource create(JasperReport report) throws JRException ...{
ArrayList list = new ArrayList();
/**/
/*这里查询数据库或其他途经,把数据包装到bean中
*把bean压入list中
*
*/
return new JRBeanCollectionDataSource(list);
}
public void dispose(JRDataSource dataSource) throws JRException ...{
// nothing to do
}
}

三、打开ireport 5.0 ,选择资料来源——〉连接/资料来源——〉new——〉type of connection/datasource选项选择JRDataSourceProvider,——〉填入名称和class——〉save——〉完成



四、在报表中 点击 资料来源——〉报表查询——〉选择Use DataSource Provider选项卡——〉点击Get fields from datasource 得到bean中定义的属性为 field

沒有留言: