【发布时间】:2011-06-23 22:18:43
【问题描述】:
我需要在 DynamicJasper 中创建一个包含多个包含不同列的“子报表”的报表。列的数据存储在每个行对象的 HashMap 中。我没有在 DynamicJasper 中找到任何方法来指定列的值应该来自 HashMap 上的特定键。
我发现,如果我构建单个报表,我可以扩展 JRAbstractBeanDataSource 并创建我自己的数据源,该数据源知道如何根据我的字段名称格式正确获取数据。但是,当我使用 addConcatenatedReport 添加多个报告时,“子报告”使用 JRBeanCollectionDataSource 而不是我的自定义数据源。
到目前为止,我想出的唯一解决方案是拥有一个 POJO,它具有一堆属性,例如“column1value”和“column2value”,我预加载并用于动态列中的字段引用。我真的不想这样做...谁能想到其他选择?我有什么遗漏吗?
旁注:为什么不能将自定义数据源类型传递给 addConcatenatedReport 函数?技术问题,还是根本不需要?这似乎是对“动态”报告的普遍需求。
【问题讨论】:
标签: java dynamic-jasper