【问题标题】:How to hide textfield when output is null?输出为空时如何隐藏文本字段?
【发布时间】:2012-04-25 19:13:31
【问题描述】:

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

这是我的代码:

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

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

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

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

    例如,您可以借助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>
    

    不要忘记 isRemoveLineWhenBlankisBlankWhenNull 文本字段的属性。

    【讨论】:

    • 非常感谢。你很有帮助。谢谢你的回答。:)
    • 我还有一个问题,我尝试将输入日期设置为第一次输入参数时的日期和日期。当我将数据放在两个参数上时。即日期和日期,显示数据。但问题是当我输入两个参数的一个数据时。数据也会显示。当我只放一个参数时如何给出错误消息。数据只在两个参数匹配时显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 2013-10-02
    • 1970-01-01
    相关资源
    最近更新 更多