2012-12-12 25 views
0

我想檢查當前月份的狀態如下。 所以我把TextField,編輯其模式MM &在表達式編輯器編輯下面的代碼條件表達式在表達式編輯器中不起作用

new java.util.Date()>=4 && new java.util.Date() <= 7 ? "Q1" : 
new java.util.Date()>=8 && new java.util.Date() <=11 ? "Q2" : "Q3" 

,但它給錯誤

Error filling print... Error evaluating expression :      Source text : new java.util.Date()>=4 && new java.util.Date() <= 7 ? "Q1" : new java.util.Date()>=8 && new java.util.Date() <=11  ? "Q2" : "Q3" 
Setting up the file resolver.. 

但是當我給喜歡

new java.util.Date()== 4 ? "Q1" : "Q2" 

表達它工作正常。

iReport無法解決多個條件嗎?或者我應該給不同的TextField單一條件?

回答

1

嘗試使用日曆代替。

(Calendar.getInstance()).get(Calendar.MONTH)>=3 && (Calendar.getInstance()).get(Calendar.MONTH)>=6 ? "Q1" : 
(Calendar.getInstance()).get(Calendar.MONTH)>=7 && (Calendar.getInstance()).get(Calendar.MONTH)>=10 ? "Q2" : "Q3" 
0

您可以使用多個條件這樣

new java.util.Date() >= 4 ? 
"Q1" : 
new java.util.Date() <= 7 ? 
"Q2" : 
new java.util.Date() >= 8 ? 
"Q3" : 
"Q4" 
1

可以請你嘗試把表達括號像

(新java.util.Date()> = 4 & &新java.util.Date()< = 7)? 「Q1」:( (新java.util.Date()> = 8 & &新java.util.Date()< = 11) 「Q2」: 「Q3」)

+0

我也試過,但給出錯誤 –

+0

你是否正好使用這個表達式「new java.util.Date()> = 4」。因爲我猜不會返回months.So它會有幫助,如果你可以粘貼確切的表達。 – cjava

2

你確定新的Java .util.Date()只是給你一個月。

試試這個,它會給你蛾
(新的SimpleDateFormat( 「M」))。格式(新java.util.Date())

也可以使用YYYY(年)或d (日期)檢查 和Integer.parse(...月...)或Date.parse(...月...)可能需要,如果你沒有你的Q作爲整數或日期。