【问题标题】:Multiple Groups in jasper reportsjasper 报告中的多个组
【发布时间】:2020-04-23 04:20:14
【问题描述】:

我想在 ireport 中创建多个组,并且数据应该以组的方式显示。例如: 首先应该完整打印 Group1 数据,然后,


组 1:


模块数据 在此之后我想完全打印 Group2 数据

组2:


分类数据

我正在使用结果集数据源。

有人可以帮助我吗?

【问题讨论】:

    标签: jasper-reports report ireport


    【解决方案1】:

    只要您的查询结果正确排序,Jasper 报告就会完全以这种方式工作。

    例如,假设您按名为“MY_GROUP”的字段进行分组,并且该字段具有值“GROUP A”和“GROUP B”。在您的报告中,您将为字段“MY_GROUP”创建一个组。在您的查询中,确保将 MY_GROUP 作为 ORDER BY 子句中的第一个字段。您还可以在 iReports 中通过将“MY_GROUP”字段添加为报表查询的“排序选项”部分中的第一个字段来完成此操作。

    现在您已经添加了您的组并正确排序,您的结果将如下所示:

    标题 - A 组 细节 - A组 页脚 - A 组 标题 - B 组 细节 - B组 页脚 - GROUP B

    完全如你所愿。我的猜测是您没有正确排序查询结果。这可能会导致 GROUP A、GROUP B 等的多个分组都穿插在一起。

    【讨论】:

      【解决方案2】:

      如果 iReport 中的组没有将所有数据放在一起,请使用子报表。当 Jasper 进入子报表时,它会运行整个子报表并将整个内容放入报表中。你可以有类似的东西:

      子报表 1 - 组 1 第一组第一记录 组 1 秒记录 第 1 组第三记录 ... 第 1 组最后记录 子报表 2 - 第 2 组 第 2 组第一记录 组 2 秒记录 第 2 组第三记录 ... 第2组第三条记录

      【讨论】:

        【解决方案3】:

        正如汤姆所说。 Jasper Reports Groups 不会对从查询中检索到的数据进行排序,他们只是按照它来的顺序来排序。

        为了以分组方式显示信息,您必须在查询中添加 ORDER BY,以便报表接收到的行已经排序。

        【讨论】:

          【解决方案4】:

          因此,当您使用多个组标题时会出现问题。第一个标题的行为与预期的一样,仅在唯一值上按列值 A 排序。使用列值 B 的第二个标题将打印在每一行上,尽管它是非唯一值。

          1. 理论上您应该能够使用 ORDER BY
          ORDER BY ValueA, ValueB
          

          假设您正在使用 sql、plsql 等来正确显示报告...但是,在我的情况下,这并没有发生,尽管对于其他人来说它似乎有效。

          1. 使用子报告通过独特的报告附加细微差异。您创建一个包含空详细信息的根报告。然后您创建独特的报告作为子报告。最后,您使用子报表元素将值链接到根报表。虽然这是一项很好的工作,并且可能会导致重复代码。
          2. 我使用的一个 hacky 方式是:将“Print When Expressions”与具有 2 个组标题和一个列标题的逻辑布尔表达式相结合。 布尔表达式:
          $F{QUERY}.equals(Query1) && ($P{P_Typequery}.equalsIgnoreCase("QueryA") && $P{P_parameter} == null) 
          

          $F{QUERY}.equals(Query1) && ($P{P_Typequery}.equalsIgnoreCase("P_QueryA") && $P{P_parameter} != null) 
          

          具有两个组标题和一个列标题。列标题不会为每一行重复,因此您将其中一个布尔表达式分配给它的“打印时间”,因此它并不总是打印。第一个组标题不会对每一行重复并且有效。第二组标题用于您希望它为每个唯一值重复的时间,因为它总是为每一行打印,并且您在它的“打印时间”上使用另一个布尔值。希望对你有帮助

          【讨论】:

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