【问题标题】:subreport using iReport tool使用 iReport 工具的子报表
【发布时间】:2014-09-17 20:51:47
【问题描述】:

我有一份主报告,需要在下一页显示 4 个不同的部分。因此,对于这 4 种不同的详细信息,我在主报告的详细信息带中创建了 4 个子报告。现在,如果第一个和第三个子报表在运行时没有得到,现在这 4 个报表将显示为 4*4 矩阵(例如第一个和第二个子报表并排显示,第三个和第四个报表在第一个和第二个下方,再次并排)显示(可能是因为填充在其中的数据不存在)所以它们占用的空间现在是空的,即它们是矩阵左侧的空间,但显示在右侧的第 2 和第 4 个子报表。现在这是我的查询:我怎样才能将第二个和第四个子报表移动到左侧的空白区域?

如果不存在第二个子报告,我将如何将第四个报告向上移动,即在第二个子报告位置。

所以基本上我无法在顶部或左侧移动子报表,这些子报表是空的,没有数据。

请帮忙,因为我从 1 周开始就被困在这里了。

【问题讨论】:

  • 谁能帮我解决上述 jasper 报告的问题,因为我仍然没有通过它/无法找到任何解决方法。

标签: subreport


【解决方案1】:

我认为不可能在水平面上动态移动子报表。
但是,您可以使用子报表的Position Type 元素的Float 值。这将在子报表 1 的位置显示子报表 3,其中 1 为空或不显示,而 4 在 2 的位置。

但是,有一种复杂的方法可以使报表看起来像您希望它的行为方式一样。它需要您的主报告来检测其中一个子报告是否为空。因此,如果您可以检测到这一点(即您的主报告知道您的一个子报告何时为空,例如基于某些值或参数或查询的结果),您可以在不同的详细信息带中添加子报告的所有可能组合和定位并使用Print When Expression 来确定应该显示哪些。

示例:
细节1,当“所有sureports都填满”时打印
S1 | S2
S3 | S4

详情2,“子报表1未填写”时打印
S2 |
S3 | S4

详细信息 X,当“子报表 2 已填充且子报表 4 已填充”时打印
S2
S4
...或任何你喜欢的安排。

但我不建议这样做。维护报告会让人头疼,而且执行时间会急剧增加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多