List 如何设置列表的值<;字符串>;在动态方面

List 如何设置列表的值<;字符串>;在动态方面,list,field,dynamic-jasper,List,Field,Dynamic Jasper,我需要在me报告中生成列的动态计数。因此,我将巨大的物体放在我的JasperPrint上: Object[] obj = new Object[selectedUsers.size()]; //fill the massive JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), new JRBeanArrayDataSource(obj)); 我的obj是一个类: pu

我需要在me报告中生成列的动态计数。因此,我将巨大的物体放在我的JasperPrint上:

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);
    }
}
公共类结果到{
私有字符串登录;
私有整数id;
私人名单;
私有对象[]结果;
公共对象[]getResults(){
返回结果;
}
公共void setResults(对象[]结果){
这个结果=结果;
}
公共结果dto(){
}
公共结果DTO(整数id,字符串登录){
超级();
this.login=登录;
this.id=id;
}
公共结果DTO(字符串登录、整数id、列表){
超级();
this.login=登录;
this.id=id;
this.list=列表;
}
公共字符串getLogin(){
返回登录;
}
公共void setLogin(字符串登录){
this.login=登录;
}
公共整数getId(){
返回id;
}
公共无效集合id(整数id){
this.id=id;
}
公共列表getList(){
退货清单;
}
公共无效集合列表(列表){
this.list=列表;
}
公共void addToList(字符串日结果){
此.list.add(第天结果);
}
}
然后我尝试创建列:

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);
}
FastReportBuilder firstReport=新的FastReportBuilder();
List column_List=new ArrayList();
AbstractColumnID=getColumn(“id”,Integer.class,”№", 30、头型、细节型);
AbstractColumn columnLogin=getColumn(“login”,String.class,“Фаа”,150,headerStyle,detailStyle);
对于(int i=0;i
最后我有一个例外:

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


请帮帮我!我不知道如何使用jasper和list或array,jasper Reports不允许对象作为其元素的有效类型。我必须是以下人员之一:

  • 编号(或其任何子类)
  • 日期
  • 布尔值
您应该向表单中的每个元素询问其类,并将适当的类传递给列生成器