iReport使用javabean做数据源需要四个步骤
一、建立一个javabean,这是一个普通的bean
java 代码
- /*
- * 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类:
java 代码
- 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