我正在关注http://www.eclipse.org/birt/phoenix/project/notable4.3.php#jump_3的示例 我似乎无法让它正常工作。在您定义新DataSet(New Birt POJO数据集)的步骤中,我似乎找不到'POJO数据集类名'。匹配项窗口小部件仍为空。我尝试使用源选项卡编辑rptdesign尝试所有类型的变体(有/没有包名称),没有任何东西。 BIRT的这个新功能有没有成功?
答案 0 :(得分:5)
好的,我的坏。如果我们必须实现一个接口而不是试图推断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() {
}
}