【问题标题】:jasper report count occurrencies of certain categoriesjasper 报告计数某些类别的出现次数
【发布时间】:2012-11-23 02:03:20
【问题描述】:

我已经尝试计算行所属的某些类别的出现次数(请参阅SQL count occurrences of certain categories that rows belong to

但是现在我想知道,如果不做 sql 的事情,jasper 报告是否能够做到这一切?自己做摘要而不给数据库服务器额外的工作(这实际上发生在我身上)?

例如,这可能是我的报告:

name | color | flavor
--------------------------
n1   | green | lemon
n2   | blue  | strawberry
n3   | red   | lemon
n4   | green | lemon
n5   | green | mango
n6   | red   | chocolate
n7   | white | lemon
n8   | blue  | mango
n9   | green | chocolate

这将是我想要得到的总结:

colors | occurrences         flavor    | occurences
--------------------         ----------------------
green  |   4                 lemon     |   4
blue   |   2                 strawberry|   1
red    |   6                 mango     |   2
white  |   1                 chocolate |   2

【问题讨论】:

    标签: count jasper-reports ireport summary


    【解决方案1】:

    您有 3 个选项:

    1. 有 2 个子报告,每个订单按颜色和风味选择。并在每个子报告摘要中将它们作为主总结的一部分。当 SQL 数据排序时,您可以在 iReport 中为每个列创建组,并以变量计数每个组。缺点是您为每个子报告去数据库 2 次。

    2. 拥有自己的数据源java实现。这就像一个不进行任何数据转换的数据代理。只有 HashMap 计算颜色和味道的出现。然后作为带有报告评估“报告”的附加字段从数据源获取此字段并将它们放在报告中。你只去 DB 一次。

    3. 结合 print if 表达式和定义的组(颜色、风味)和 print if 表达式可以帮助联合所有选择语句:

      选择 a,b,c 'print_to_detail' 作为 print_if_field,' ' 作为 dummy_field
      联合所有
      选择 a,b,c 'print_to_group1_summary' 作为 print_if_field,颜色作为 dummy_field 按颜色排序
      联合所有
      选择 a,b,c 'print_to_group2_summary' 作为 print_if_field,按颜色排序为 dummy_field

    也许这有助于作为概念性想法。

    【讨论】:

    • 1.这正是我使用额外的 SQL 查询来生成摘要所面临的问题。由于我必须额外查询数据库两次,因此我使用了大量的 DBserver 负载,而这正是我试图通过将费用交给 jasper 来减少的......
    • 2.我无法使用 dbserver 的相同原因也适用于此,我无法使用应用程序服务器,而且我也无法创建自己的 java 数据源。这只是一个服务器,可以让我上传带有预定义 SQL 查询的 .jasper 报告,但不能上传其他任何东西。我正在尝试找到一种方法(如果存在的话)让 jasper 完全控制我假装在报告中生成的摘要......
    • 那么也许结合 print if 表达式和定义的组(颜色、风味)和 print if 表达式可以帮助联合所有选择语句:
    • 添加了编号为 #3 的段落。作为对 cme​​ts 的回答。
    • 解决方案#3 是否意味着 3 个查询只是联合起来?我猜性能和 DBServer 负载会受到很大影响,就像子报表解决方案一样,UNION 不就是这样做的吗?
    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多