3

レポートに問題があります。テキストとパラメーターを使用して出力を記述します。パラメータを入れると。結果には、テキストとパラメーターが表示されます。しかし、問題は、私がパラメーターにキーを入力していない場合、結果にはまだ出力のテキストフィールドが表示されることです。私はJavaでやっています。何が問題なのかわからない。

これは私のコードです:

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

私の式のどこが悪いのか誰でも知っています。

4

1 に答える 1

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>

isRemoveLineWhenBlankisBlankWhenNulltextField のプロパティを忘れないでください。

于 2012-04-25T11:13:31.927 に答える