首先还是一样,新建个脚本数据源,然后新建脚本数据集,
设置数据集数据列,如下图:
(相关操作请查看我的前一个教程birt使用脚本数据集 birt使用脚本数据集),然后我们来设置我们的java对象吧。
新建User类,代码如下:
package com.report;
public class User {
private String id;
private String name;
public User(String id, String name){
this.id=id;
this.name=name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
再新建UserFactory类,代码如下:
package com.report;
import java.util.ArrayList;
import java.util.List;
public class UserFactory {
public List<User> getUserList() {
List<User> list = new ArrayList<User>();
for (int i = 1; i < 10; i++) {
User user = new User("id" + i, "name" + i);
list.add(user);
}
return list;
}
}
现在转到报表设计器里,在数据集的script open里写:
importPackage(Packages.com.report);
factory = new UserFactory();
userlist = factory.getUserList();
it = userlist.iterator( );
,在fetch方法里写:
if( it.hasNext( ))
{ var user = it.next( );
row["id"] = user.getId( ); //给数据列填入值
row.name = user.getName( );
return true;
}
else return false;
在close方法里写:
userlist = null;
iterator = null;
user = null;
代码也没什么难懂,就不说了。预览结果如下:
设置数据集数据列,如下图:

(相关操作请查看我的前一个教程birt使用脚本数据集 birt使用脚本数据集),然后我们来设置我们的java对象吧。
新建User类,代码如下:
package com.report;
public class User {
private String id;
private String name;
public User(String id, String name){
this.id=id;
this.name=name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
再新建UserFactory类,代码如下:
package com.report;
import java.util.ArrayList;
import java.util.List;
public class UserFactory {
public List<User> getUserList() {
List<User> list = new ArrayList<User>();
for (int i = 1; i < 10; i++) {
User user = new User("id" + i, "name" + i);
list.add(user);
}
return list;
}
}
现在转到报表设计器里,在数据集的script open里写:
importPackage(Packages.com.report);
factory = new UserFactory();
userlist = factory.getUserList();
it = userlist.iterator( );
,在fetch方法里写:
if( it.hasNext( ))
{ var user = it.next( );
row["id"] = user.getId( ); //给数据列填入值
row.name = user.getName( );
return true;
}
else return false;
在close方法里写:
userlist = null;
iterator = null;
user = null;
代码也没什么难懂,就不说了。预览结果如下:

更多内容请查看
birt家园