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

本文详细介绍了如何在iReport中使用JavaBean作为数据源,包括创建JavaBean、实现JRDataSourceProvider接口、配置数据源以及在报表中使用自定义数据源的方法。
1万+

被折叠的 条评论
为什么被折叠?



