Java 如何在Jasper报告中创建树结构?
我需要在报告中显示分层数据结构 像这样的 我的数据结构是:Java 如何在Jasper报告中创建树结构?,java,jasper-reports,Java,Jasper Reports,我需要在报告中显示分层数据结构 像这样的 我的数据结构是: class X { List<Y> list; } class Y { List<Z> list } X类 { 名单; } Y类 { 列表 } 这是如何在jasper report中实现的?我们遇到了同样的问题,在搜索了一段时间后,我们决定使用jasper report html组件解决它。它所做的是,它允许我们在报告中添加html内容。所以,我们生成html内容并将其存储在数据库中。并在j
class X
{
List<Y> list;
}
class Y
{
List<Z> list
}
X类
{
名单;
}
Y类
{
列表
}
这是如何在jasper report中实现的?我们遇到了同样的问题,在搜索了一段时间后,我们决定使用jasper report html组件解决它。它所做的是,它允许我们在报告中添加html内容。所以,我们生成html内容并将其存储在数据库中。并在jasper报告中插入html数据。希望这有帮助 通常通过使用子报表(或列表/表格组件)来使用您显示的数据结构实现这种布局 结构将是:
x
上迭代,包括y
的子报告1
和z
将列表作为数据源传递
y
上迭代,包括z
的子报告2
,将列表作为数据源传递
z
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{list})
要实现该行span,请使用reportElement
上的stretchType
属性(相对带宽高度或相对高度对象)
范例
<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>
您不喜欢子报表,对于一级结构,可以使用
组件,请参见只要内容不需要跨多个页面,HTML组件就可以工作。如果您忽略分页并始终以HTML导出为目标,则应该可以。但是,当我们一谈到PDF或其他面向页面的格式时,HTML组件就开始露出牙齿。实际上,我们创建该组件是为了证明它在这些情况下的局限性。