【问题标题】:Data redundant after adding report to report books向报表添加报表后数据冗余
【发布时间】:2016-06-17 15:41:18
【问题描述】:

当我在 jasperstudio 6.2.2 中添加我的主要 report.jasper 以报告书籍内容时,页面配置对话框打开并要求连接。我选择第一个 Use same JDBC ...

现在,当我在这一步单击预览时,我会收到 Document is Empty 消息。如果我为包含主报告的wave_Book.jrxml 编写查询,然后单击预览中的运行,它可以工作,但是来自该查询的数据字段将添加到来自主报告查询的数据字段,因此我将获得冗余数据.

我没有 JasperReports 服务器。是否需要有一个用于生成报告簿?我认为报告书采用了填充数据的编译报告,并在其中添加了目录、封面和封底。我按照 jasper 书第 19 章的步骤进行了操作。我在这里缺少什么?

我已经问过一个关于冗余数据的问题,但当时我认为问题是因为我的 JDBC 驱动程序或连接。源码可以看这里:Duplicate data in jasper

【问题讨论】:

  • 你的问题不清楚

标签: jasper-reports


【解决方案1】:

背景

Wave Book 是一种更灵活的方式,可以将多个其他报告添加到一个具有目录和其他特权的报告中。

您可以想象通常的结构是这样的。每个Wave Book 子部分都是一个报告。

Wave Book
    \---- Wave Book Cover (1 page)
    \---- Wave Book ToC (1 - n pages)
    \---- Wave Book Chapter One (1 - n pages)
    \---- Wave Book Chapter Two (1 - n pages)
    \---- Wave Book Backcover (1 page)

在根Wave Book可以建立数据库连接。此外,如果提供了参数,Wave Book 根会获取它们。

现在您可以在Wave Book 根中提供查询以选择特定数据。例如。将客户名称获取到参数CustomerID。现在,Wave Book Chapter OneWave Book Chapter Two 将得到相同的 $P{REPORT_CONNECTION},但将使用它们自己的 Data Source,即它们自己的 SELECT

因此可以将CustomerID 提供给Wave Book Chapter OneWave Book Chapter Two 以及相同的Report connection。所述报告现在可以使用参数CustomerID 完成自己的SELECT

结论

所以不,报告之前没有填充了数据。数据将始终为SELECTed(或您使用的任何其他数据源)并在报告中使用。 Wave Book 添加的唯一内容是可以在报告中添加相对简单的CoverToCBackcover

含义:每个“子报表”(例如Wave Book Chapter One)都应该能够独立运行(前提是您使用相同的数据源)。如果运行Wave Book root,从技术上讲,与直接调用子报表没有什么不同。只是你不需要运行,例如手动将 6 个子报表添加到一起。 Wave Book 会这样做。

【讨论】:

  • 嗨 tobi6 我创建了a room 来讨论和协作处理 jasper-reports 文档,如果你能加入并提出你的想法和建议,我会很高兴。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
相关资源
最近更新 更多