【问题标题】:Jasper Report Bands When No Data Source没有数据源时的 Jasper 报告条带
【发布时间】:2011-12-15 19:01:27
【问题描述】:

我的理解是,如果您不向 JasperFillManager 提供 JRDataSource,那么生成的 JasperReport 将不包含任何详细信息带。

出于此问题上下文之外的原因,我想在一个小/简单的 JasperReport 上放置一些组件(条形图和一个表格),并且我希望数据来自我将传入的 HashMap . 因此,我不需要 JRDataSource 实现,这也意味着我不会得到任何细节带。

所以我的问题是:那么我应该将组件添加到哪个波段? 详细信息波段是我通常会添加组件的位置,但如果我没有得到详细信息乐队,这些孤立的组件去哪里了?

编辑:这个问题的切线是显而易见的:然后我将如何计算这个带需要的大小(高度)?

【问题讨论】:

    标签: java jasper-reports


    【解决方案1】:

    您可以将JREmptyDatasource 传递给JasperFillManager。您甚至可以使用JREmptyDataSource#JREmptyDataSource(int count) 构造函数指定您想要多少个虚拟记录,即显示多少个详细波段。

    【讨论】:

      【解决方案2】:

      将它们放在标题或摘要带中。

      实际上,您的报告将没有数据。但是,由于您将 Map 作为带有“数据”的参数传递,因此您对这个无数据报告感到满意。确保报告设置为在没有数据时显示“所有部分,无详细信息”。

      使用图表,您只需根据需要设置图表高度和波段高度。表格组件将扩展......但这不是问题。它可以根据需要扩展标题或摘要带。

      【讨论】:

      • 我会避免将您的内容放入标题或摘要带,因为这会破坏这些带的语义。我更喜欢使用 Giorgos 传递 JREmptyDataSource(1) 的答案,这将为您提供一个详细的乐队。
      • 这是一个公平的观点......但我认为他的图表可能确实属于标题或语义摘要。详细信息带为数据集中的每条记录打印一次。他没有唱片,所以没有细节乐队是合理的。传递一个包含 1 条空记录的数据集并假装有一个数据集以便有一个详细信息带对我来说似乎并不令人满意。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多