在jasper子报表和主报表

时间:2015-04-22 12:47:34

标签: json jasper-reports

大家,在我解释我的问题之前,我会告诉你我想要解释的是什么。

我正在尝试创建一个显示用户不同收入的子报表。 用户可以收到多个捐款,已售出多个房屋/房产,赢得竞赛等。所有这些行动都有更多关于他们收到多少钱,缴纳税款的细节......

现在我试图在一个细节中显示用户的详细信息(姓名,姓氏,...;)。这有效。 下一个细节乐队将是捐款。我创建了一个子报表,我在其中指定了此部分的布局。但是,此子报表所需的数据源与主报表中的数据源不同。有没有办法将新数据源(JSON)传递给我的子报表或传递从我的原始数据源中提取的列表对象,以便只重复我的捐赠细节带? 另一个数据源(或来自我的主报告数据源的列表)为每个选项重复销售细节带等等。

最终布局看起来像这样:

用户信息

捐赠信息
捐赠信息

销售信息
销售信息
销售信息
销售信息

LOTTERY INFO
LOTTERY INFO
LOTTERY INFO

FOOTER

提前致谢!

1 个答案:

答案 0 :(得分:3)

答案可能会迟到,但我认为这对某人有帮助,

如果您的JSON包含完整数据,并且您想将一组特定数据传递给子报告,则可以通过以下方式传递,

例如: 你的JSON,

 {
  "User": {
    "PersonalInfo": {
      "Name": "Jef",
      "Country": "US"
    },
    "Donation": {
      "JustinWelfare": "10000",
      "DonationToWife": "50000"
    },
    "Sales": { "Some1": "some1" },
    "Lottery": { "Lot1": "lot1" }
  }
}

您可以将捐款json传递给下面的子报告,

((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("Donation")