Reputation: 1758
I want to check current month to many condition as below.
so I take TextField
,edit its pattern to MM
& in expression editor edit below code
new java.util.Date()>=4 && new java.util.Date() <= 7 ? "Q1" :
new java.util.Date()>=8 && new java.util.Date() <=11 ? "Q2" : "Q3"
but it gives error
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..
but when I give expression like
new java.util.Date()== 4 ? "Q1" : "Q2"
It works fine.
Does iReport not able to resolve multiple conditions ? or should I give different TextField
with single condition ?
Upvotes: 0
Views: 1672
Reputation: 2710
are you sure new java.util.Date() is just give you the month.
try this it will give you the moth
(new SimpleDateFormat("M")).format(new java.util.Date())
also you can use yyyy(year) or d(date) to check and Integer.parse(...month...) or Date.parse(...month...) maybe needed, if you don't have your Qs as integer or date.
Upvotes: 2
Reputation: 658
can you please try putting the expression in brackets like
(new java.util.Date()>=4 && new java.util.Date() <= 7 )? "Q1" : ( (new java.util.Date()>=8 && new java.util.Date() <=11 ) ? "Q2" : "Q3")
Upvotes: 1
Reputation: 3548
You can use multiple condition like this
new java.util.Date() >= 4 ?
"Q1" :
new java.util.Date() <= 7 ?
"Q2" :
new java.util.Date() >= 8 ?
"Q3" :
"Q4"
Upvotes: 0
Reputation: 315
Try using calendar instead.
(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"
Upvotes: 1