我需要在报告中显示分层数据结构。如何在Jasper Report中创建树结构?
像这样的事情
我的数据结构为:
class X
{
List<Y> list;
}
class Y
{
List<Z> list
}
这是如何在碧玉报告实现的?
我需要在报告中显示分层数据结构。如何在Jasper Report中创建树结构?
像这样的事情
我的数据结构为:
class X
{
List<Y> list;
}
class Y
{
List<Z> list
}
这是如何在碧玉报告实现的?
实现那种布局与已显示通常由报表(或列表/表组件)所做的数据结构
的结构将是:
主要报告,迭代在所有x
包括subreport 1
为y
和z
通过List<Y> list
作为数据源。
子报表1,迭代在所有y
包括用于z
一个subreport 2
传递List<Z> list
作为数据源。
子报表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
我们在搜索了一段时间后发现了同样的问题,我们决定使用jasper-report html组件解决它。它所做的是,它允许我们在报告中添加html内容。所以,我们生成了html内容并将其存储在数据库中。并在jasper报告中插入了html数据。希望这可以帮助。
只要您的内容不需要跨越多个页面,HTML组件就可以工作。如果你忽略分页并总是以HTML导出为目标,你应该没问题。但是,只要我们谈论PDF或其他面向页面的格式,HTML组件就会开始显示其优点。我们实际上已经创建了这个组件来证明它在这些情况下的局限 –