【问题标题】:How to set value of list<String> in DynamicJasper如何在 DynamicJasper 中设置 list<String> 的值
【发布时间】:2011-05-20 10:39:57
【问题描述】:

我需要在我的报告中生成动态列数。所以我给我的 JasperPrint 设置了大量的 Object:

Object[] obj = new Object[selectedUsers.size()];
//fill the massive
JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), new JRBeanArrayDataSource(obj));

我的 obj 是一个类:

public class ResultsDTO {
    private String login;
    private Integer id;
    private List<String> list;
    private Object[] results;

    public Object[] getResults() {
        return results;
    }

    public void setResults(Object[] results) {
        this.results = results;
    }

    public ResultsDTO(){

    }

    public ResultsDTO(Integer id,String login) {
        super();
        this.login = login;
        this.id = id;
    }

    public ResultsDTO(String login, Integer id, List<String> list) {
        super();
        this.login = login;
        this.id = id;
        this.list = list;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }

    public void addToList(String day_result){
        this.list.add(day_result);
    }
}

然后我尝试创建列:

FastReportBuilder firstReport = new FastReportBuilder();
List<AbstractColumn> column_list = new ArrayList<AbstractColumn>();

AbstractColumn columnId = getColumn("id", Integer.class,"№", 30, headerStyle, detailStyle);
AbstractColumn columnLogin = getColumn("login", String.class,"ФИО", 150, headerStyle, detailStyle);

for (int i = 0; i < header.size(); i++){
    AbstractColumn column = getColumn("results", Object.class, header.get(i), 80, headerStyle, detailStyle);
    column_list.add(column);
}

最终我有一个例外:

net.sf.jasperreports.engine.design.JRValidationException:报告 设计无效: 1. 文本字段表达式不支持“java.lang.Object”类。

请帮忙!我不知道如何使用jasper和列表或数组

【问题讨论】:

    标签: list field dynamic-jasper


    【解决方案1】:

    Jasper Reports 不允许 Object 作为其元素的有效类型。我必须是以下之一:

    • 字符串
    • 数字(或其任何子类)
    • 日期
    • 布尔值

    您应该向表单中的每个元素询问其类并将适当的类传递给列构建器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2014-01-31
      相关资源
      最近更新 更多