输出为空时如何隐藏文本字段?

时间:2012-04-25 10:17:46

标签: jasper-reports

我的报告有问题。我用文本和参数编写输出。当我把参数。结果将显示文本和参数。但问题是当我不是参数的关键时,结果仍然显示输出的文本字段。我在用java做。我不知道是什么问题。

这是我的代码:

(($P{daterangefrom} != null) && ($P{daterangeto}!=null) ) ? 
" From ( " + $P{daterangefrom} + " - " + $P{daterangeto} + " )"
 : null

任何人都知道我的公式有什么问题。

1 个答案:

答案 0 :(得分:5)

您必须确保参数的值不为空。

例如,您可以在Guava库的帮助下进行检查。

样本:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ..>
    <import value="com.google.common.base.*"/>
    <parameter name="daterangefrom" class="java.lang.String"/>
    <parameter name="daterangeto" class="java.lang.String"/>

    <title>
        <band height="79" splitType="Stretch">
            <textField isBlankWhenNull="true">
                <reportElement x="185" y="12" width="100" height="20"  isRemoveLineWhenBlank="true"/>
                <textElement/>
                <textFieldExpression><![CDATA[(!Strings.isNullOrEmpty($P{daterangefrom}) &&
    !Strings.isNullOrEmpty($P{daterangeto})) ?
" From ( " + $P{daterangefrom} + " - " + $P{daterangeto} + " )"
 : null]]></textFieldExpression>
            </textField>
        </band>
    </title>
</jasperReport>

不要忘记 isRemoveLineWhenBlank isBlankWhenNull textField的属性。