【问题标题】:Subtract two field from previous field in dynamic report从动态报告中的前一个字段中减去两个字段
【发布时间】:2018-06-15 19:09:30
【问题描述】:

在 jasper-report 中:我试图将第一个(余额)字段与第二个(金额)字段相加,然后从第二个(余额)字段中减去结果。 谁能帮帮我?

喜欢图片:

我怎样才能每次都获得上一个(余额)字段

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

    经过一些研究,我发现:Getting a previous record's value (for calculation in variables, etc)

    引用那篇文章:

    变量按照声明的顺序递增,因此您可以利用此顺序来跟踪“以前的”记录值。 您需要两个报表变量:一个保存当前值,另一个保存前一个值。诀窍是在“当前值”变量之前声明“前一个值”变量,并使第一个复制第二个的值,如下所示:

    <variable name="INITIAL" class="java.math.BigDecimal" resetType="Report" calculation="Nothing">
        <variableExpression><![CDATA[$V{AAA}]]></variableExpression>
        <initialValueExpression><![CDATA[new BigDecimal(0)]]></initialValueExpression>
    </variable>
    
    <variable name="AAA" class="java.lang.Integer" resetType="Report" calculation="Nothing">
        <variableExpression><![CDATA[$F{FieldA}]]></variableExpression>
    </variable>
    

    当然,如果您要创建比较计算,那么您需要第三个变量来计算两者之间的差异:

    <variable name="DELTA" class="java.lang.Integer" resetType="Report" calculation="Nothing">
        <variableExpression><![CDATA[$V{AAA}-$V{INITIAL}]]></variableExpression>
    </variable>
    

    据我了解,您想要做的是:something = balance2 - (balance1 + amount2)。

    以下内容应该适合您:

    <variable name="PREVIOUS" class="java.math.BigDecimal" resetType="Report" calculation="Nothing">
        <variableExpression><![CDATA[$V{CURRENT}]]></variableExpression>
        <initialValueExpression><![CDATA[new BigDecimal(0)]]></initialValueExpression>
    </variable>
    
    <variable name="CURRENT" class="java.lang.Integer" resetType="Report" calculation="Nothing">
        <variableExpression><![CDATA[$F{BALANCE}]]></variableExpression>
    </variable>
    
    <variable name="SOMETHING" class="java.lang.Integer" resetType="Report" calculation="Nothing">
        <variableExpression><![CDATA[$F{BALANCE}-($V{PREVIOUS}+$F{AMOUNT})]]></variableExpression>
    </variable>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 2015-02-14
      相关资源
      最近更新 更多