2011-05-12 56 views
1

我有一個帶有子報告的報告,可以爲主報告添加徽標。在這個子報告中,我有2個細節帶來支持兩種不同大小的標識;一個長而另一個長約三分之一(寬)。有點像這樣...隱藏多個詳細的樂隊

 
........................... 
|---------logo------------| 
address 1, address 2 
........................... 
|__logo__| address 1 
|  | address 2 
........................... 

週期的第1和第2行之間是詳細信息1帶和第二和第三之間是詳細信息2帶。

我嘗試使用「打印時的表達式」來切換第一個或第二個細節帶,具體取決於$F{LogoName}的值。

細節1帶:

new Boolean($F{LogoName}=="acompanyname") 

細節2帶:

new Boolean($F{LogoName}!="acompanyname") 

,但它不工作。

也嘗試了這些:

(($F{LogoName}=="acompanyname")?Boolean.TRUE:Boolean.FALSE) 
(($F{LogoName}!="acompanyname")?Boolean.TRUE:Boolean.FALSE) 

$F{LogoName}是 「acompanyname」。

我每次只運行報告詳情2樂隊演出。我無法獲取詳細信息1以顯示,我沒有收到任何錯誤消息。

任何幫助,歡迎。

謝謝

回答

0

試試這個:

$F{LogoName}.equals("acompanyname") 

在Java中,等號(==),在對象上使用時,會檢查它們是否相同引用同一個對象。這一個能夠捕捉所有沒有很多Java編程經驗的報表開發人員。你可以寫:

$F{LogoName} == $F{LogoName} 

,將返回true,如您所願,因爲上等號運算符兩邊的兩個對象是相同的。考慮以下幾點:

public class T { 
    public static void main(String args[]) {          
    String s1 = "hello";               
    String s2 = (new StringBuilder(s1)).toString();       

    System.out.println(s1); 
    System.out.println(s2); 
    System.out.println(s1 == s2); 
    } 
} 

此打印:

hello 
hello 
false 

字符串對象的是相同的,但引用的字符串是不同的。等於操作比較參考值,而不是值。

+0

戴夫,謝謝你的迴應,併爲遲交的遺憾接受。我最終刪除了代碼,只爲一個徽標做了一個樂隊。我確實看到你對比較的參考資料有什麼意義,我將在這個文件中記住這一點。 – cjoki 2011-09-09 22:12:09

相關問題