【问题标题】:How to sum values based on different conditions in iReportiReport中如何根据不同条件对值求和
【发布时间】:2013-03-26 23:14:40
【问题描述】:

我有 3 列,如下所示。

Bucket      Amt     Fixed Amount
1           10       100
2           20       200
3           30       300
4+          40       400

我想将存储桶 2 到 4+ 以及存储桶 3 到 4+ 的值相加,即我的最终表格应如下所示

Bucket      Amt     Fixed Amount
1           10       100
2           20       200
3           30       300
4+          40       400
2-4+        90       900
3-4+        70       700

我创建了 2 个变量“2-4+”和“3-4+”。 将计算分配给“总和” 但是我该如何编写一个表达式,它将基于存储桶的 amt 和固定金额的值相加?我可以使用条件语句吗? 即,对于第一个变量 2-4+,将 amt 的值和 2 到 4+ 之间的桶的固定金额相加。对于第二个变量也是如此。

任何建议将不胜感激。 谢谢!!

【问题讨论】:

    标签: jasper-reports ireport


    【解决方案1】:

    如果每个存储桶都是查询中的一个输出行,并且您知道您需要执行的唯一计算是“2-4+”和“3-4+”,您可能需要考虑将计算构建到您的查询输出。

    或者——你可以尝试在桶上分组。像往常一样在您的详细信息带中显示存储桶 1、2、3、4+。创建三个变量来保存存储桶 2、3、4+ 的结果(计算 = 无,重置类型 = 组,重置组 = 存储桶,值表达式 = $F{bucket})。然后再创建两个变量来保存“2-4+”和“3-4+”的结果(计算 = 无,值表达式 = $V{bucket_2}-$V{bucket_4} 和 $V{bucket_3}-$ V{bucket_4})。确保保存存储桶结果的变量在计算变量之前声明。在组页脚中显示计算变量的输出。

    【讨论】:

      【解决方案2】:

      对于 2-4+,创建一个新变量并将其变量表达式设置为:

      $V{REPORT_COUNT} > 1 ? $F{Amt} : 0
      

      对于 3-4+,创建一个新变量并将其变量表达式设置为:

      $V{REPORT_COUNT} > 2 ? $F{Amt} : 0
      

      【讨论】:

        猜你喜欢
        • 2021-05-12
        • 1970-01-01
        • 2021-10-12
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 2012-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多