首页 > 解决方案 > 使用 ArrayList 创建子报表,其中包含 ArrayLists 作为 DataSource(JasperReports 社区)

问题描述

我正在尝试创建一个以 ArrayList 作为数据源的子报表,其中包含其他 ArrayList,要明确这是 ArrayList:

  public List<List<Detail>> detail = new ArrayList<List<Detail>>();

收到的内容示例:

  [
    [Detail[code=1,name="Duck"], Detail[code=1,name="Jacky"]], 
    [Detail[code=2,name="Morgan"], Detail[code=2,name="Jackson"]]
  ]

然后我将它作为 JavaBean 发送到 JasperReports 并像这样接收它

    <field name="detail" class="java.util.ArrayList">
        <fieldDescription><![CDATA[detail]]></fieldDescription>
    </field>

收到它后,我将它作为数据源表达式发送到这样的子报表

   new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{detail})

问题是......我不知道如何检索每个位置的元素,因为它们没有区分它们的键

在子报告中如何访问每个位置的内容?当尝试接收 ArrayList 作为名称详细信息时,我在 java servlet 中收到此错误,因为每个位置都有对象它我无法创建具有内容名称的字段,创建它作为类的名称给了我这个错误

Caused by: java.lang.NoSuchMethodException: Unknown property 'detail' on class 'class java.util.ArrayList'

标签: jasper-reports

解决方案


推荐阅读