我正在关注http://www.eclipse.org/birt/phoenix/project/notable4.3.php#jump_3上的示例, 但我似乎无法让它正常工作。在您定义新数据集(New Birt POJO 数据集)的步骤中,我似乎找不到“POJO 数据集类名称”。匹配的项目小部件保持为空。我尝试使用源选项卡编辑 rptdesign,尝试各种变体(带/不带包名称),但没有任何效果。有人在 BIRT 的这个新功能上取得了成功吗?
问问题
3363 次
1 回答
6
好吧,我的错。如果我们必须实现一个接口而不是试图推断 birt 如何读取自定义 pojo 数据集,那会更容易。
因此,在http://www.eclipse.org/birt/phoenix/project/notable4.3.php#jump_3上的示例中,除了 CustomerDataSet 类之外,所有内容都按描述工作。这是对我有用的类 CustomerDataSet 的实现。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class CustomerDataSet {
public Iterator<Customer> itr;
public List<Customer> getCustomers() {
List<Customer> customers = new ArrayList<Customer>();
Customer c = new Customer(103);
c.setCity("City1");
c.setCountry("Country1");
c.setCreditLimit(100);
c.setName("aName1");
c.setState("state1");
customers.add(c);
c = new Customer(104);
c.setCity("City2");
c.setCountry("Country2");
c.setCreditLimit(200);
c.setName("aName2");
c.setState("aStat2");
customers.add(c);
c = new Customer(105);
c.setCity("City3");
c.setCountry("Country3");
c.setCreditLimit(300);
c.setName("aName3");
c.setState("aStat3");
customers.add(c);
return customers;
}
public void open(Object obj, Map<String,Object> map) {
}
public Object next() {
if (itr == null)
itr = getCustomers().iterator();
if (itr.hasNext())
return itr.next();
return null;
}
public void close() {
}
}
于 2013-09-09T21:48:08.647 回答