JRBeanCollectionDataSource:如何从JavaBean显示java.util.List中的数据?

JRBeanCollectionDataSource:如何从JavaBean显示java.util.List中的数据?,java,jasper-reports,Java,Jasper Reports,我的JavaBean包含java.util.List Userinfo{ 私有字符串用户名; 私有字符串密码; 列表地址; } 如何在详细信息栏中显示此列表的数据?这是工作示例。 本示例的要点如下: 使用此表达式 在详细信息波段中使用列表(jr:List)组件 用于生成报告的代码片段: publicstaticvoidtestbuildpdf(){ 试一试{ Map params=新的HashMap(); JasperReport-JasperReport=JasperCompileMan

我的JavaBean包含java.util.List

Userinfo{
私有字符串用户名;
私有字符串密码;
列表地址;
}
如何在详细信息栏中显示此列表的数据?

这是工作示例。 本示例的要点如下:

  • 使用此表达式
  • 详细信息波段中使用列表(jr:List)组件
用于生成报告的代码片段:

publicstaticvoidtestbuildpdf(){
试一试{
Map params=新的HashMap();
JasperReport-JasperReport=JasperCompileManager.compileReport(reportSource);
JasperPrint JasperPrint=JasperFillManager.fillReport(jasperReport,params,getDataSource());
jaspeexportmanager.exportReportToPdfFile(jasperPrint,outputFileName);
}捕获(例外e){
e、 printStackTrace();
}
}
私有静态JRDataSource getDataSource(){
Collection coll=new ArrayList();
coll.add(新BeanWithList(Arrays.asList(“伦敦”、“巴黎”),1));
coll.add(新BeanWithList(Arrays.asList(“伦敦”、“马德里”、“莫斯科”),2);
coll.add(新BeanWithList(Arrays.asList(“罗马”),3));
返回新的JRBeanCollectionDataSource(coll);
}
JavaBean代码:

公共类BeanWithList{
//成员的名称可以是任何名称。JR引擎正在使用公共getter提取字段的值
私人名单城市;
私有整数id;
公共BeanWithList(列出城市,整数id){
这个。城市=城市;
this.id=id;
}
//getter应该是公开的
公共列表(城市){
把这个还给我,城市;
}
公共整数getId(){
返回此.id;
}
}
jrxml文件:


结果将是:



其他相关问题包括问题和问题。

您有城市列表,但在列表中,您选择了“城市”字段。它来自何处?请解释。@GirishK查看jrxml文件中的字段声明您使用了“cities”作为集合的字段名,尽管BeanWithList中的列表的实际名称是“m_cities”,但在“subDataset”元素中也没有对“cities”的引用。它实际上是如何工作的?@MichaelAssraf公共获取者是
public List getCities()
。这意味着你可以使用
cities
name我在上一次编辑中将其切换为这种语法,为了更清楚,如果你不喜欢,可以随意回滚。你能帮我吗?