我是 java 和报告工具 BIRT 的新手,我正在尝试使用 Birt 中的 Pojo 创建一个简单的报告,但我无法让它工作我在其他项目中创建了我的 java 类并生成了一个 jar 文件,然后我使用它创建了一个数据源,但是当我尝试创建一个数据集时它不起作用,我无法选择类来继续
package com.test.pojoproject;
import java.io.Serializable;
public class Person implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int id;
private String name;
private String address;
public Person(){
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
}
package com.test.pojoproject;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class Main implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private static List<Person> list = new ArrayList<Person>();
public static void main(String[] args) {
Main.generateData();
Main.getList();
// display created list
//list.forEach(person -> System.out.println(person.getName()));
}
public static void generateData(){
List<Person> list = new ArrayList<Person>();
for (int i = 0; i < 30; i++) {
Person person = new Person();
person.setId(i+1);
person.setName("person " + (i+1));
person.setAddress("address " + (i+1));
list.add(person);
}
Main.list = list;
}
public static List<Person> getList(){
return Main.list;
}
}
最佳答案
我找到了一个解决方案 BIRT 需要使用一个带有 open、next 和 close 方法的类,我将在下面发布我的数据集类
package com.test.pojoproject;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class PersonDataSet {
public Iterator<Person> itr;
public List<Person> getPersons() {
List<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 30; i++) {
Person person = new Person();
person.setId(i+1);
person.setName("person " + (i+1));
person.setAddress("address " + (i+1));
persons.add(person);
}
return persons;
}
public void open(Object obj, Map<String,Object> map) {
}
public Object next() {
if (itr == null)
itr = getPersons().iterator();
if (itr.hasNext())
return itr.next();
return null;
}
public void close() {
}
}
关于java - 无法让 BIRT 与 POJO 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48993603/