JasperReports:封面

我有一个JasperReport,我想为这个报告创建一个封面。 封面页必须包含来自数据库的一些信息,如公司名称等。我试图使用子报表执行此操作,但我没有成功。 我创建了一个主报告,首先包含封面页作为子报表,然后将整个报表作为第二个子报表。 我得到一份空报告。

我的第二次尝试是将封面页面作为子报告放在主报告中,但这不起作用。

有什么提示怎么做?

非常感谢提前。

目录话语

使用Jasper Reports设置子报表并非易事。 至少有两种方法可以告诉主报告在哪里查找子报告。

  1. SUBREPORT_DIR参数提供值。
  2. 将子报表放在CLASSPATH中。

对于解决方案1,请在运行时确定主报表位置的绝对目录。 然后,将子报表放在主报表下的相对目录中。 最后,告诉master报告包含子报告的子目录的绝对路径。

我没有用过解决方案2。

参数化大师

请考虑参数化主报表,而不是创建子报表。

  1. 向报告添加参数列表。
  2. 将参数拖到报表标题上。

如果您只有一个报告,但想要使用不同的徽标(以及公司名称,样式等),则使用参数配置外观。

子报告使用情况

我发现当数据查​​询几乎相同时创建子报表很有用,但需要以稍微不同的方式对数据进行分组。 主报告包含所有常见内容(显示输入参数 – 以便可以重新创建报告,标题,公司名称,用户名,时间戳,页码等),子报告关注差异。 通常,子报表将重叠并且仅根据输入参数的值执行。

将它们添加到摘要带中,您甚至可以选择将其放在不同的页面上。 比你刚刚添加的那个子报道,在他的摘要乐队你可以放另一个,在他的另一个,所以你去。 您可以将无限报告绑定在一起。

我在标题乐队的末尾增加了一个rest时间。

  <band> <break></break> </band>  

这具有分页function。

我可能误解了这个问题,因为接受的答案是关于阻止子报告,这是封面的完美解决方案(只是把它放在TITLE乐队中)。 子报告实际上是JR的杀手级function。 确实它们并不简单,但它们可以在没有任何调整或弯曲可用工具集的情况下实现。 当数据集查询差别很大时,我会完全使用它们……