在 Jasperreports 中,我想将默认值表达式作为查询字符串输入到参数中,以便能够动态地为用户提供正确的默认值,但不会强迫他选择它。
到底有没有?
我猜结果应该是这样的(即使它不起作用):
我将其用于具有单值选择方法的表单(用户可以编写他/她想要的任何数字,但我希望从数据库中选择默认值)。
在 Jasperreports 中,我想将默认值表达式作为查询字符串输入到参数中,以便能够动态地为用户提供正确的默认值,但不会强迫他选择它。
到底有没有?
我猜结果应该是这样的(即使它不起作用):
我将其用于具有单值选择方法的表单(用户可以编写他/她想要的任何数字,但我希望从数据库中选择默认值)。
以下是我的处理方式:
用户从输入控件中选择一个值(在我的示例中,我将其称为 $P{time_toggle})。然后,我有另一个参数 ($P{time_constraint}),它从 $P{time_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_toggle} 的默认值表达式设置为我想要的默认值。