在 jasper 子报表和主报表中使用不同的 JSON 数据源

Use a different JSON datasource in a jasper subreport and master report

嗨,在我解释我的问题之前,我会告诉你我正在尝试解决什么问题。

我正在尝试创建一个显示用户不同收入的子报表。 用户可以收到多笔捐款、已售出多笔 house/properties、赢得比赛等。所有这些行为都包含有关他们收到多少钱、缴纳的税款等的更多详细信息,...

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

最终布局如下所示:

用户信息

捐赠信息
捐赠信息

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

彩票信息
彩票信息
彩票信息

页脚

提前致谢!

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

如果您的 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")