Jasper reports 在默认值表达式中输入查询

Jasper reports 在默认值表达式中输入查询,jasper-reports,ireport,Jasper Reports,Ireport,在Jasperreports中,我希望在参数中输入一个默认值表达式作为查询字符串,以便能够动态地为用户提供正确的默认值,但不强迫用户选择它 还有吗 我想结果应该是这样的(即使它不起作用): 我将其用于具有单值选择方法的表单(用户可以写入他/她想要的任何数字,但我希望从数据库中选择默认值)。以下是我处理此问题的方法: 用户从输入控件中选择一个值(在我的示例中,我将其称为$p{time_toggle})。然后,我有另一个参数($P{time\u constraint}),它从$P{time\u t

在Jasperreports中,我希望在参数中输入一个默认值表达式作为查询字符串,以便能够动态地为用户提供正确的默认值,但不强迫用户选择它

还有吗

我想结果应该是这样的(即使它不起作用):


我将其用于具有单值选择方法的表单(用户可以写入他/她想要的任何数字,但我希望从数据库中选择默认值)。

以下是我处理此问题的方法:

用户从输入控件中选择一个值(在我的示例中,我将其称为$p{time_toggle})。然后,我有另一个参数($P{time\u constraint}),它从$P{time\u toggle}获取用户输入,并根据该参数决定将哪个SQL字符串注入到主查询中。$P{time_constraint}的默认值表达式如下所示:

      $P{time_toggle} == "rolling_quarter" ? "..." : (
           $P{time_toggle} == "rolling_30_days" ? "..." : (...
           )
      )
然后,在我的主报告查询中,我引用$p{time_constraint}:

     SELECT * FROM tblTable WHERE $P!{time_constraint}

为了设置默认时间段,我将$p{time\u toggle}的默认值表达式设置为所需的默认值

我也在做同样的事情,但是保持表达式结果为null。你验证过这种方法真的有效吗?事实上,当我在页面上显示表达式时,结果是正确的,但是当嵌入到像$P这样的sql中时!{MyExpression},我不断收到指向关键字“null”附近不正确语法的sql错误。