我无法弄清楚如何将Groovy表达式转换为Java表达式。 我是Java中的一个完整的菜鸟,所以无法转换它。
我有一个JasperReports服务器自定义报告模板,我想在从AdHoc视图创建报告时使用它。由于客户的要求,我创建了几个变量,以计算该模板上的上周五日期。它是用Groovy编写的。但是,当列上有度量时,它会失败。在挖掘了Jasper论坛后,我发现当前Crosstab AdHoc不支持Groovy表达式,唯一的方法是将我的Groovy表达式转换为Java,这应该排序问题。
但正如我所说,我在Java中完全没有,因此,需要一些帮助,或者至少,任何人都可以给我一些指导方向吗?
这是我想要转换为Java的Groovy表达式:
($V{Calendar}.set($V{Today}.getYear()+1900,
$V{Today}.getMonth(), $V{Today}.getDate()) ||
$V{Calendar}.add(Calendar.DAY_OF_MONTH,
IF ($V{Calendar}.get(Calendar.DAY_OF_WEEK)==Calendar.FRIDAY, -7,
IF($V{Calendar}.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY, -1, -7 + (Calendar.FRIDAY - $V{Calendar}.get(Calendar.DAY_OF_WEEK))))))? null : $V{Calendar}.getTime()