用pojo对象作birt的数据源
·创建一个POJO对象:
package org.zsl.pojo;
/** * 定义一个简单的POJO类 * 里面随便定义了几个属性 */ public class User {
private String name; private String phone; private String address;
public User() {
} /** * 定义一个带参数的构造函数,方便在添加列表的时候操作相应的属性 * @param name * @param phone * @param address */ public User(String name,String phone,String address) { this.name = name; this.phone = phone; this.address = address; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
|
该User对象作为显示在报表中的数据对象
·创建一个UserFactory来获取User对象的列表
package org.zsl.pojo;
import java.util.ArrayList; import java.util.List;
public class UserFactory {
public List<User> listUsers() { List<User> result = new ArrayList<User>(); User u1 = new User("张三","123456","云南省"); User u2 = new User("李四","346540","北京市"); User u3 = new User("王五","098845","上海市"); User u4 = new User("钱六","014933","浙江省"); User u5 = new User("赵七","845941","江苏省"); result.add(u1); result.add(u2); result.add(u3); result.add(u4); result.add(u5); return result; } } |
在listUsers()方法写死了一个User的list,可以根据自己的需要从不同的地方获取相应的User列表。
·创建一个报表文件(这里名为:user.rptdesign)
1、选择左面的Data Explo选项卡,右击Data sources进行New Data Source并输入Data Source Name,这里为:pojoResource
2、再右击Data Explo选项卡下面的Data Sets,进行New Data Set,选择刚新建的Data Source,输入Data Set Name,这里为:pojoSet
3、点击Next之后为其添加三个输出字段(Output Columns)分别是User对象里的三个字段,Type(类型选择为Java Object),这里的输出字段是根据自己的需要来设置的。
4、设置完成之后,在该数据集(set)里的Script下面的Open方法内加入代码:
//定义一个变量,相当于记数器,没有类型 count = 0; //定义一个UserFactory的引用,在这里面定义都没有类型 uf = new Packages.org.zsl.pojo.UserFactory(); //把User的列表放在users里面 Users = uf.listUsers(); |
5、同时也在该数据集下的Script里的fetch方法里加下面代码:
if(count<users.size()) { //这里的name是在pojoSet里面定义的一个属性,下同 row["name"] = users.get(count).getName(); row["phone"] = users.get(count).getPhone(); row["address"] = users.get(count).getAddress(); count++; return true; } return false; |
6、选择user.rptdesign中的layout选项(用Rprot Design方式来打开),选择右面的palette选项卡,把能够放数据源的控件(如table)拖到user.rptdesign中去,设置为3列,确定后选择右面的Data Explo选项卡,把下面Data Sets下面的pojoSet下面的字段拖到table里的相应位置,如:
7、设置好之后,选择user.rptdesign下面的preview下预览一下吧:
相应的源代码及word在下面的附件中,图片显示不出来请下载附件!