異なる列を含む複数の「サブレポート」を持つレポートをDynamicJasperで作成する必要があります。列のデータは、各行オブジェクトのHashMapに格納されます。DynamicJasperで、列の値がHashMapの特定のキーから取得されるように指定する方法が見つかりませんでした。
単一のレポートを作成すると、JRAbstractBeanDataSourceを拡張して、フィールド名のフォーマット方法に基づいてデータを正しく取得する方法を知っている独自のデータソースを作成できることがわかりました。ただし、addConcatenatedReportを使用して複数のレポートを追加すると、「サブレポート」はカスタムデータソースの代わりにJRBeanCollectionDataSourceを使用します。
私がこれまでに思いついた唯一の解決策は、動的列のフィールド参照にプリロードして使用する「column1value」や「column2value」などの一連のプロパティを持つPOJOを用意することです。私は本当にこれをしたくありません...誰か他のオプションを考えることができますか?足りないものはありますか?
補足:カスタムデータソースタイプをaddConcatenatedReport関数に渡せない理由はありますか?技術的な問題、またはそれは単に必要ではなかったのですか?このようなことは、「動的」レポートの一般的なニーズであるように思われます。