我想检查当前月份到多个条件,如下所示。
所以我采用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
?
答案 0 :(得分:2)
你确定新的java.util.Date()只是给你一个月。
你也可以用yyyy(年)或d(日期)来检查 如果您没有将Qs作为整数或日期,则可能需要Integer.parse(... month ...)或Date.parse(... month ...)。
答案 1 :(得分: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"
答案 2 :(得分:1)
你可以试着把表达式放在括号中,如
(new java.util.Date()&gt; = 4&amp;&amp; new java.util.Date()&lt; = 7)? “Q1”:( (new java.util.Date()&gt; = 8&amp;&amp; new java.util.Date()&lt; = 11)? “Q2”:“Q3”)
答案 3 :(得分:0)
你可以使用像这样的多个条件
new java.util.Date() >= 4 ?
"Q1" :
new java.util.Date() <= 7 ?
"Q2" :
new java.util.Date() >= 8 ?
"Q3" :
"Q4"