java - 无法让 BIRT 与 POJO 一起工作

标签 java birt pojo

我是 java 和报告工具 BIRT 的新手,我正在尝试使用 Birt 中的 Pojo 创建一个简单的报告,但我无法让它工作我在其他项目中创建了我的 java 类并生成了一个 jar 文件,然后我使用它创建了一个数据源,但是当我尝试创建一个数据集时它不起作用,我无法选择类来继续

enter image description here

    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/

相关文章:

java - Embedded Jetty 为什么要使用 join

java - 在 javafx 中保存最后一个窗口属性/内容

java - 如何让我的时间戳变量显示正确的日期?

java - 关于生成报告时自定义 "BIRT chart Rendering"

java - 我需要将 JsonObject 转换为 HashMap ,但 JSON 的结构有点不同

java - Spring Boot应用程序无法在Eclipse Oxygen中启动

java - 运行 Web 项目时出现服务器错误

javascript - Birt 报告引擎。评估 Javascript 表达式时出错

java - 如何在 play 框架中使用 Json.toJson() 将 pojo 转换为 Json 时从 Json 中删除空值字符串?

java - 如何遍历对象列表并分配 child ?