2016-03-03 28 views

回答

1

实现那种布局与已显示通常由报表(或列表/表组件)所做的数据结构

的结构将是:

  1. 主要报告,迭代在所有x包括subreport 1yz通过List<Y> list作为数据源。

  2. 子报表1,迭代在所有y包括用于z一个subreport 2传递List<Z> list作为数据源。

  3. 子报表2,遍历所有z

要生成的数据源的JRBeanCollectionDataSource可以为您服务以及例如new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{list})

为了实现这一rowspan的使用stretchType属性上reportElement(RelativeToBandHeight或RelativeToTallestObject)

<textField> 
    <reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="100" height="20" uuid="bf6b550c-f37d-4e10-b8dd-1d91c4e6905a"/> 
    <textElement verticalAlignment="Middle"/> 
     <font size="12"/> 
    </textElement> 
    <textFieldExpression><![CDATA[$F{x}]]></textFieldExpression> 
</textField> 

您不喜欢子报表,可以使用<jr:list>组件,请参阅samples

0

我们在搜索了一段时间后发现了同样的问题,我们决定使用jasper-report html组件解决它。它所做的是,它允许我们在报告中添加html内容。所以,我们生成了html内容并将其存储在数据库中。并在jasper报告中插入了html数据。希望这可以帮助。

+1

只要您的内容不需要跨越多个页面,HTML组件就可以工作。如果你忽略分页并总是以HTML导出为目标,你应该没问题。但是,只要我们谈论PDF或其他面向页面的格式,HTML组件就会开始显示其优点。我们实际上已经创建了这个组件来证明它在这些情况下的局限 –