Jasper iReport变量char的表达条件

时间:2012-01-17 03:19:07

标签: variables jasper-reports ireport

我的数据库中有一个列,它是ColorCode列(字段名$ F {COLORCODE}),其值为'B','R'和'G',我想分别计算它们的数量他们的颜色。

所以我有变量叫做countBlue,变量表达式是$ F {COLORCODE} =='B'并把它放在列页脚中但是报告计算了包含该列中R和G的所有内容,我做了比较吗?说错了吗?

我也将我的countBlue变量类设置为java.lang.Integer,计算为Count并重置类型为Report

p / s抱歉英语不好

1 个答案:

答案 0 :(得分:2)

您可以使用此表达式(计算计数; 重置类型报告; 增量输入):

<variable name="countBlue" class="java.lang.Integer" calculation="Count">
    <variableExpression><![CDATA[$F{COLORCODE}.equals("B") ? "SomeNotNull" : null]]></variableExpression>
    <initialValueExpression><![CDATA[Integer.valueOf(0)]]></initialValueExpression>
</variable>

或此(计算没什么; 重置类型报告; 增量类型):

<variable name="countBlue" class="java.lang.Integer">
    <variableExpression><![CDATA[$F{COLORCODE}.equals("B") ? $V{countBlue} + 1 : $V{countBlue}]]></variableExpression>
    <initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>

您可以阅读变量here

JasperReports Ultimate Guide说:

  

计算次数
  计数变量在计数中包括非空   在评估变量的主表达式后返回的值   数据源中的每次迭代。计数变量必须始终为   数字类型。但是,它们可以使用非数字表达式   他们的主要表现因为引擎并不关心   表达式类型,但仅计算返回的非空值,   无论他们的类型
  只有变量的初始值表达式   应该是数字并且与变量的类型兼容,因为这   值将直接分配给count变量   初始化。