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); }
レポートで、リストのサブデータセットと Detail バンドのコンポーネント要素 (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 中国語 Web サイトの他の関連記事を参照してください。