首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个报表中的多个部分

一个报表中的多个部分
EN

Stack Overflow用户
提问于 2012-03-14 07:56:09
回答 2查看 2.7K关注 0票数 2

为了学习如何使用Jasper报告,我掉了很多头发。实际上,我有大约五个java.util.List对象,每个对象都有不同的数据类型来表示我的数据:

代码语言:javascript
复制
public class Person { 

    private int id;

    private String firstName;

    private String lastName;

    private int age;

    // accessors/mutators omitted for brevity
}

public class Place {

    private int id;

    private String name;

    private String type;

    private String state;

    // accessors/mutators omitted for brevity
}

public class Thing {

    private int id;

    private String name;

    private int rating;

    // accessors/mutators omitted for brevity
}  

我只是想在表中显示我的数据,有点像这样:

不幸的是,Jasper Reports似乎真的只设计用来处理一个数据源。我试图弄清楚这个问题已经有一段时间了,但我遇到了困难。如何在Jasper报表*.jrxml文件中拥有多个数据源和表示上述数据源的表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-14 08:36:08

你能做的是使用子报表。创建具有所需标题节的主报表。在主报表中,您将创建三个参数,分别为JRDatasources,每个子报表一个。然后,为所需的每个表创建每个子报表。

然后你把每一个都作为一个子报表添加到主报表中,你可能不得不使用它,但我认为最好的位置可能是摘要。使用ireport时,它将提示您选择将参数作为子报表的数据源进行传递。

理想情况下,有一种方法可以将参数绑定到细节部分,因为在iReport中,您现在可以拥有多个细节部分。不幸的是,我还没有找到一种方法,如果有人知道一种方法,请投下一票并添加一个答案。

虽然还有另一种选择,您可以在单个报表中创建自己的自定义数据源和多个详细信息部分。从本质上讲,你最终会创建一个新的对象,将它们组合成一个……别管这是个可怕的想法。

票数 2
EN

Stack Overflow用户

发布于 2013-01-14 22:08:44

我使用jasper报表的list元素实现了这一点,并将数据源作为参数传递给报表。确保将列表放在可以增长的范围内,否则您的内容可能会被截断。

代码语言:javascript
复制
            <componentElement>
                <reportElement x="0" y="321" width="442" height="13" isRemoveLineWhenBlank="true"/>
                <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
                    <datasetRun subDataset="produkt">
                        <dataSourceExpression><![CDATA[$P{produkteDataSource}]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="13" width="442">
                        <!-- Content goes here -->
                    </jr:listContents>
                </jr:list>
            </componentElement>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9694015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档