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在单一条件下给出不同的?

4

4 回答 4

2

你确定 new java.util.Date() 只是给你一个月。

试试这个它会给你飞蛾
(new SimpleDateFormat("M")).format(new java.util.Date())

您也可以使用 yyyy(year) 或 d(date) 检查 Integer.parse(...month...) 或 Date.parse(...month...) 可能需要,如果你没有您的 Qs 作为整数或日期。

于 2013-02-28T09:51:00.950 回答
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"
于 2012-12-12T09:11:22.417 回答
1

你能试着把表达式放在括号里吗

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

于 2012-12-12T16:38:01.147 回答
0

您可以像这样使用多个条件

new java.util.Date() >= 4  ?
 "Q1" :
new java.util.Date() <= 7  ?
 "Q2" :  
new java.util.Date() >= 8  ?
 "Q3" :
 "Q4"
于 2012-12-12T10:51:13.977 回答