【问题标题】:How to calculate cumulative field values in report如何计算报表中的累积字段值
【发布时间】:2016-08-22 17:42:48
【问题描述】:

我是 JasperReportsiReport 的新手,我遇到了一个问题。在回答问题之前,请先看一下下图:

因此,主要问题在于累积列。据说,“累积账单”列应按顺序显示以下值:

6000.0、14000.0、23000.0、32800.0、42800.0 和 45800.0

我不知道如何做到这一点。我尝试创建一个新变量,但那里没有累积类型计算。请帮助我。

【问题讨论】:

  • 我对 Jasper Report 并不陌生,但我不知道如何存档(如果 Jasper 可以做到?)。但是,如果可能的话,我对答案很感兴趣;)

标签: jasper-reports


【解决方案1】:

使用计算 = Sum 和变量表达式 = $F{BillAmountField} 创建变量 $V{variableName},并将包含此变量的文本字段放入详细信息部分。

有这么难吗? :)

【讨论】:

  • 不,它不起作用。我以前已经试过了。如果我错了,下面是声明:<variable name="CUMULATIVE_BILL" class="java.lang.Double" resetType="None" calculation="Sum"> <variableExpression><![CDATA[$F{billAmount}]]></variableExpression> <initialValueExpression><![CDATA[0.0]]></initialValueExpression> </variable> 我将变量分配为详细信息带中的字段表达式。
  • 找到了解决方案!以下代码完美运行:<variable name="CUMULATIVE_BILL" class="java.lang.Double" resetType="Report" calculation="Sum"> <variableExpression><![CDATA[$F{billAmount}]]></variableExpression> <initialValueExpression><![CDATA[0.0]]></initialValueExpression> </variable>
  • 不客气。请将我的 aswer 标记为有用:) AFAIK initialValueExpression for double default = 0.0 但是 resetType="Report" 是正确的选择。
【解决方案2】:

可以在查询级别完成,这里是查询:-

SELECT m.bill_amount,
       @cbill:=@cbill+ifNull( m.bill_amount,0) cumulative_bill
FROM (
      SELECT @cbill:=0,
             bill_amount
       FROM 
      )m

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 2020-07-18
    • 2013-12-02
    相关资源
    最近更新 更多