DynamicJasper:如何填充在bean中具有List的报表?

时间:2013-06-10 11:58:38

标签: java jasper-reports dynamic-jasper

这是我的数据对象

public class CandidateExcelModel {
    private int id;
    private String name;    //varchar(50)
    private String email; //   varchar(100)
    private Date dob; //    date  
    private List<String> skill = new ArrayList<String>();
}

我的动态报告:

   for (Iterator<SkillDO> it = job.getSkills().iterator(); it.hasNext();) {
        SkillDO skills = it.next();
        columns.add(ColumnBuilder.getNew().setColumnProperty(skills.getName(), String.class.getName())
                .setTitle(skills.getName()).setWidth(new Integer(90))
                .addConditionalStyles(conditionalStyles)
                .build());
    }

    drb.addColumn("Id", "id", Integer.class.getName(), 10)
            .addColumn("Name", "name", String.class.getName(), 100)
            .addColumn("E-mail", "email", String.class.getName(), 100)
            .addColumn("dob", "dob", Date.class.getName(), 50)
            .addColumn("Phone Number ", "phoneNumber", String.class.getName(), 25)
            .addColumn("Alternate Number", "alternateNumber", String.class.getName(), 25)
            .addColumn("Address Line", "addressLine", String.class.getName(), 100)
            .setPrintColumnNames(true)
            .setIgnorePagination(true)
            .setMargins(0, 0, 0, 0)
            .setTitle("Sales Report")
            .setUseFullPageWidth(true);
    for (AbstractColumn column : columns) {
        drb.addColumn(column);
    }

如何使用DynamicJasper填充此数据以进行报告?因为它包含列表但它应该没有列表。 skill只能出现在列表中,因为它可以是变量

1 个答案:

答案 0 :(得分:0)

请说明您希望该列表在报告中显示的方式(即逗号分隔?)。 您可以将该字段声明为对象(.addField(“skill”,Object.class)),然后添加一个CustomExpressionColumn或一个带有ValueFormatter的列,您可以将“技能”向下转换为List,并使用列表执行任何操作返回一个字符串值