输入控件在jasper服务器中不可见,groovy表达式可能是问题所在

输入控件在jasper服务器中不可见,groovy表达式可能是问题所在,groovy,jasper-reports,ireport,jasperserver,Groovy,Jasper Reports,Ireport,Jasperserver,上述代码根据“当前周”和“当前年”输入计算开始日期。问题是代码在ireport中计算startDate,而不是在jasper服务器中 当我在jasper服务器上运行报告时,显示模式弹出窗口显示为空白,没有任何输入控件 但是,当我更改上述代码以匹配您的一个日期计算时,相同的报告在jasper服务器上运行时没有任何问题,即显示模式弹出窗口显示定义的输入控件 如果您能让我知道我的日期计算表达式有什么问题,使输入控件无法出现在jasper服务器上,我将不胜感激。我找到了解决问题的方法,您需要将类java

上述代码根据“当前周”和“当前年”输入计算开始日期。问题是代码在ireport中计算startDate,而不是在jasper服务器中

当我在jasper服务器上运行报告时,显示模式弹出窗口显示为空白,没有任何输入控件

但是,当我更改上述代码以匹配您的一个日期计算时,相同的报告在jasper服务器上运行时没有任何问题,即显示模式弹出窗口显示定义的输入控件


如果您能让我知道我的日期计算表达式有什么问题,使输入控件无法出现在jasper服务器上,我将不胜感激。

我找到了解决问题的方法,您需要将类java.util.Calendar作为参数传递:


您的标题提到Groovy,但您的问题描述没有提到。如果将参数的默认值更改为使用Java,并将报表语言更改为Java,效果会更好吗?当我在ireport中将报表语言从groovy更改为Java时,报表会抛出一个错误,指出未为参数类型void、voidYes定义运算符| |,这不是有效的Java表达式。但是,如果您将参数的默认值更改为使用Java,会发生什么情况?能否请您在ireport“如何将参数的默认值更改为使用Java”中解释我?上述代码位于“startDate”参数的默认值表达式中。由于翻译很简单,答案也可以,所以我进行了编辑,然而,你只需要通过英语回答
(
$P{cal}.clear() ||
$P{cal}.set(Calendar.YEAR, $P{year_current})||
$P{cal}.set(Calendar.WEEK_OF_YEAR, $P{week_current}) ||
$P{cal}.setFirstDayOfWeek(Calendar.MONDAY) ||
$P{cal}.setMinimalDaysInFirstWeek(4)
)
? null : $P{formatter}.format($P{cal}.getTime())