2012-01-17 51 views
0

我在我的数据库中有一列,它是ColorCode列(字段名称$ F {COLORCODE}),其值为'B'和'R'和'G',我想要来分别计算它们的颜色数量。Jasper iReport变量char的表达条件

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

还我已成立了我的countBlue变量类java.lang.Integer中,计算作为计数和复位类型报告

P/S遗憾的英语不好

回答

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说:

计算计数
计数变量包括在数据源中的每一次迭代计数评估所述可变的主要表达后返回的非空 值,其中 。计数变量必须始终为数字类型的 。但是,由于引擎不关心 表达式类型,所以它们可以具有非数字表达式,因为它们的主要表达式是 ,但只计算返回的非空值 ,而不管它们的类型是
只有变量的初始值表达式 应该是数字型的并且与变量的类型兼容,因为当初始化 时,此 值将直接分配给计数变量。