Java 一次设计中的可重用数据源

Java 一次设计中的可重用数据源,java,jasper-reports,Java,Jasper Reports,我有两个componentstable和list,它们必须由同一个jrDataSource填充。我的两个组件都在章节标题中 这就是我访问jrdatasource的方式,在本例中,jrdatasource是net.sf.jasperreports.engine.data.JRMapCollectionDataSource的实例 每个组件都有这个部分 我的问题是: 为什么只有第一个组件由该数据源填充?无论是哪种情况,我都可以对它们进行重新排序,并且始终只对第一个元素I层次结构有效。我测试了这个场

我有两个componentstable和list,它们必须由同一个jrDataSource填充。我的两个组件都在章节标题中

这就是我访问jrdatasource的方式,在本例中,jrdatasource是net.sf.jasperreports.engine.data.JRMapCollectionDataSource的实例

每个组件都有这个部分

我的问题是:


为什么只有第一个组件由该数据源填充?无论是哪种情况,我都可以对它们进行重新排序,并且始终只对第一个元素I层次结构有效。

我测试了这个场景,发现列表和表都可以正常填充。如果将它们并排放置,也可以在标题栏中正确显示。然而,如果你把一个放在另一个上面,麻烦就开始了——只有最上面的一个才会显示出来。我猜Jasper不能在两个元素同时增长的情况下拉伸一条带,所以你必须重新设计你的报告。

我试图通过将我的列表和表格并排放置来确认你的答案,但仍然是同一个问题。你能分享你的代码吗?你去吧。此报表使用iReports示例数据库。当我从java呈现您的报表时,它仅呈现列表,表为空。您必须重新使用相同的dataset对象,一旦使用,其hasNext将返回false,随后,该表将永远不会填充。否,因为重置必须由Jasper在评估标题栏时自行完成。恐怕你得重新考虑一下你的报告。