繁体   English   中英

如何在Jasper Report中创建树结构?

[英]How to create tree structure in Jasper Report?

我需要在报表中显示分层数据结构。

像这样

样品表

我的数据结构是:

class X
{
    List<Y> list;
}

class Y
{
   List<Z> list
}

在碧玉报告中如何实现?

通常,通过使用子报表(或列表/表组件)来实现具有所示数据结构的这种布局

结构为:

  1. 在所有x上进行迭代的主报告包括yzsubreport 1 ,并将List<Y> list作为数据源传递。

  2. 在所有y上进行迭代的子报告1包括zsubreport 2 ,该subreport 2List<Z> list作为数据源传递。

  3. 子报表2,对所有z进行迭代。

为了生成数据源, JRBeanCollectionDataSource可以很好地为您服务,例如new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{list})

为了实现这一行跨度使用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>组件,请参见示例

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM