2012-04-25 45 views
2

我的報告有問題。我用文本和參數編寫我的輸出。當我把參數。結果將顯示文本和參數。但問題是,當我沒有鍵入參數時,結果仍顯示輸出的文本字段。我在用java做。我不知道有什麼問題。如何在輸出爲空時隱藏文本字段?

這是我的代碼:

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

任何人都知道錯了我的公式。

回答

4

您必須確保該參數的值不爲空。例如,您可以在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文本框的屬性。

+0

非常感謝。你很有幫助。謝謝你的回答。:) – 2012-04-25 12:46:26

+0

@Amin歡迎:) – 2012-04-25 12:49:07

+0

我還有一個問題,我試着把輸入日期和第一次輸入參數時的日期。當我把數據放在兩個參數上。這是數據顯示的日期和日期。但問題是當我把兩個參數的數據。數據也顯示。當我只輸入一個參數時如何給出錯誤信息。當兩個參數匹配時數據只顯示。 – 2012-05-02 08:44:09