基于 JavaBean 的报告通常涉及显示 Java 列表中包含的数据。本文探讨如何使用 JRBeanCollectionDataSource 来实现此目的。
public class Userinfo { private String username; private String password; private List<Address> listAddress; }
private static JRDataSource getDataSource() { Collection<BeanWithList> coll = new ArrayList<BeanWithList>(); coll.add(new BeanWithList(Arrays.asList("London", "Paris"), 1)); coll.add(new BeanWithList(Arrays.asList("London", "Madrid", "Moscow"), 2)); coll.add(new BeanWithList(Arrays.asList("Rome"), 3)); return new JRBeanCollectionDataSource(coll); }
在报告中,为列表创建一个子数据集,并在详细信息带中创建一个组件元素(jr:list)。
<subDataset name="dataset1"> <field name="city" class="java.lang.String"> <fieldDescription><![CDATA[_THIS]]></fieldDescription> </field> </subDataset> ... <detail> <componentElement> <jr:list printOrder="Vertical"> <datasetRun subDataset="dataset1"> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{cities})]]></dataSourceExpression> </datasetRun> </jr:list> </componentElement> </detail>
以上是如何使用 JRBeanCollectionDataSource 在 JavaBean 中显示 Java 列表中的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!