2014-03-07 51 views
0

我正在使用JasperReports進行報告,它連接到具有整數字段「LEVEL」的數據庫表。 這個級別將存儲一些數字... 1,2,3,並繼續。 在報告中,我想創建一個帶有下劃線數字的字符串,這意味着如果等級爲4,則生成的字符串將是「__」。 我知道我可以在java中這樣的事情與做:用動態範圍的單個字符創建一個字符串

int i = 3; 
char[] vect = new char[i]; 
Arrays.fill(vect, '_'); 
System.out.println(vect); 

但在JasperReports的我不能叫命令,我可以當Arrays.fill將返回數組本身,而不是無效的。 還有別的辦法嗎?

回答

0

你可以使用for循環來附加一個字符串。 林不知道,如果我知道你的意思到底是什麼,但也許這樣的事情

int i = 3; 
String s; 
for(int k = 0; k < i; i++){ 
    s = s + "_"; 
} 
System.out.print(s); 

沒有測試過,但看起來不錯

+0

問題是,在JasperReports中,您不能在文本字段表達式中運行一批命令,只能執行一個返回指定類文本字段的對象的命令。 –

0

如果LEVEL的數量並不多人數較多,那麼你可以有條件地將其與寫如果其他如下圖所示:

$F{level}.equals("1")?"_": 
       $F{level}.equals("2")?"__": 
         $F{level}.equals("3")?"___":____ <---- last one is 4 

如此下去......

這不會是一個很好的解決方案,但你不能在JAS另一種選擇每個這樣的操作。 :)

+0

數字從0變爲無限,所以不可能做到這一點。 –

+0

哦......那麼碧玉根本就不可能。 – Parth

相關問題