我想在pdf文档中打印一个表格。我需要使用两个javabean数据源来填充表中的数据。所以我使用两个子报告并行地映射数据。我面临的问题是我无法组织第一个子报表对应的第二个子报表内容。也就是说,如果第一个子报表中任何字段的宽度很大,那么第二个报告将无法正确对齐第一个子报告。下面的示例将对问题进行一个很好的了解
我的预期输出
SubReport1 SubReport2
S.No Value S.No Value
1 value from first 1 value from second bean
java bean value
bean
2 value from first bean 2 value from second bean
我得到的结果
SubReport1 SubReport2
S.No Value S.No Value
1 value from first 1 value from second bean
java bean value 2 value from second bean
bean
2 value from first bean
请帮助我解决这个问题。
答案 0 :(得分:1)
正如@Boris建议首先删除子报告。
由于您使用的是BeanDatasource
,因此您可以将所有业务和逻辑放在代码中,并为报告提供现成的列表。
创建一个新对象,我们称之为ReportRow
,当然不要使用该名称:)。
public class ReportRow{
int sNumber1;
int sNumber2:
String value1:
String value2:
//setters and getters
}
现在创建一个新的ArrayList<ReportRow>
并将其作为数据源传递。
HTH。
答案 1 :(得分:0)
子报表就像函数参数一样。它们在调用函数之前进行评估,并且彼此不了解。您的问题有两种解决方案: