条件和(变量)

发布于 2024-10-22 19:07:51 字数 290 浏览 2 评论 0原文

iReport (4.0.1) 中包含各种字段的报表包括:$F{value}(整数)和 $F{created_at}

我想计算给出的变量:

  1. $F{created_at} 在给定日期之前时 $F{value} 的总和
  2. $F{value}$F{created_at} 在给定日期之后时

知道如何做到这一点吗?

A report in iReport (4.0.1) with various fields includes: $F{value} (Integer) and $F{created_at}.

I'd like to calculate variables that would give:

  1. the sum of $F{value} when $F{created_at} is before a given date
  2. the sum of $F{value} when $F{created_at} is after a given date

Any idea how this could be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寂寞陪衬 2024-10-29 19:07:51

您将必须使用两个不同的变量来执行此操作。对于您的变量,请在“变量表达式”中使用类似的内容。 Date 类还有一个 after() 函数。如果表达式计算结果为 true,则添加 $F{value},否则添加 0。

$F{created_at}.before($P{givenDate}) ? $F{value} : 0

要使用变量求和,需要将计算类型更改为“Sum”。默认重置类型,报告将对整个报告的值进行求和。其他重置类型的工作方式与报表的不同部分(列、页面或组)相同。

以下是“之前”情况的 XML:



You will have to use two different variables to do this. For your variables, use something like this in the 'Variable Expression'. The Date class also has an after() function. If the expression evaluates to true $F{value} will be added, otherwise 0 will be added.

$F{created_at}.before($P{givenDate}) ? $F{value} : 0

To use a variable to sum, you need to change the calculation type to "Sum". The default reset type, report will sum values over the entire report. The other reset types work the same way just over different sections of the report (column, page or group).

Here is the XML for the "before" case:

<variable name="sumValueCreatedBefore" class="java.lang.Integer" calculation="Sum">
<variableExpression><![CDATA[F{created_at}.before($P{givenDate}) ? $F{value} : 0]]></variableExpression>
</variable>

梦过后 2024-10-29 19:07:51

还有另一种解决方案:在 select 语句中编写子查询,

例如

Select
(select sum(Fieldname) from tablename where dategiven date) 作为 aftersum

from tablename
哪里条件

there is another solution for that : write sub query in the select statment

like

Select
(select sum(Fieldname) from tablename where dategiven date) as aftersum

from tablename
where conditions

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文