我正在使用java和iReport(来自jasper)创建一个简单的报告程序,它应该创建一个pdf格式的报告,显示具有IP地址的个人电脑,他们的位置,目前是否闲置(由另一个系统)以及它目前附属的项目列表(也在别处管理)。如何打印iReport中另一个列表中包含的字符串列表?
我使用iReport的这件事情,并创建了一个虚拟的收集产生类别如下:
public class PCReports {
public static java.util.Collection PC_collection;
public static java.util.Collection generateCollection() {
PC_collection = new ArrayList<PCLineDTO>();
PCLineDTO line = new PCLineDTO();
line.setIP("192.168.1.1");
line.setLab("location");
line.setActive(true);
line.addProjectName("project1");
line.addProjectName("project2");
line.addProjectName("project3");
PC_collection.add(line);
line = new PCLineDTO();
line.setIp("192.168.1.2");
line.setLab("location2");
line.setActive(false);
line.addProjectName("project1");
line.addProjectName("project2");
PC_collection.add(line);
return PC_collection;
}
}
在这种情况下,作为实体类:
public class PCLineDTO {
private String ip;
private String lab;
private Boolean active;
private ArrayList<String> projects;
}
经过一番摸索互联网,我发现a way to do something similar,使用子报表。
问题是,我不知道如何打印作为dataSource传递给此子报表的字符串集合。
在这些例子中我在网上查到,对于主集合中的每个项目,子报告获得通过对象集合-with自己的getter方法为每个属性 - 而不是字符串的集合作为在这里就是这种情况。在这些情况下,他们访问他们需要经由iReport的语法,这是我无法使用,例如使用的值:
$F{project}
由于iReport的查找包含它接收到的对象中的一个getProject的方法,但在这种情况下,它是一个简单的String对象(没有getProject方法,因为它是)。
您使用的是JasperReport/iReport版本? – medopal 2009-11-23 15:36:55
@medopal:谢天谢地,最新的(当时这篇文章:3.6.1)。 – 2009-11-23 15:51:26