Я следую примеру http://www.eclipse.org/birt/phoenix/project/notable4.3.php#jump_3 , и я не могу заставить его работать правильно. На шаге, где вы определяете новый DataSet (New Birt POJO Data Set), я не могу найти «Имя класса POJO Data Set». Виджет совпадающего элемента остается пустым. Я пробовал редактировать rptdesign с вкладкой source, используя все варианты (с/без имени пакета), ничего не делает. У кого-то был успех с этой новой особенностью BIRT?У вас возникли проблемы с BIRT 4.3 new POJO DataSource
1
A
ответ
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() {
}
}
Благодарим за отправку решения. Я думаю, что итератор должен быть закрытым и инициализироваться в «открытом» методе скорее в next(). – Dominique
@ Francois Lacoursiere В моем случае я не вижу имя класса источника данных в источнике данных. PLZ Если вы столкнулись с проблемой, то plz помогите мне. – Sheel
Я пытался вывести, и я это вывел. Вам нужен объект с методом public object next(). Он проходит через этот конвертер https://eclipse.googlesource.com/birt/org.eclipse.birt/+/f991893c494cfacc508f7dab9e1b6a7d2e00d5fc/data/org.eclipse.birt.data.oda.pojo/src/org/eclipse/birt/data /oda/pojo/impl/internal/PojoDataSetFromCustomClass.java –