在参数中使用'if'条件

时间:2013-10-08 13:19:52

标签: jasper-reports ireport jasperserver

我正在使用 iReport 创建 JasperReports服务器报告。我有一个有4列的表。用户需要通过参数选择,这将是第一列。根据他选择的内容,决定其他列。

例如如果用户在输入控件中选择第2列,则第2列将成为最左侧的列,第1列将取代第2列。

最好的方法是什么?我可以在参数中使用“if”条件吗?

3 个答案:

答案 0 :(得分:1)

解决方案的安排非常罕见。无论如何,你可以通过使用带变量的表达式来实现。

只需右键单击该字段,然后单击“编辑表达式”

PFirst is a reports parameter

字段表达式可以是

$Pfirst.equals("fieldOne")?fieldOne:"" + $Pfirst.equals("fieldTwo")?fieldTwo:"" + $Pfirst.equals("fieldThree")?fieldThree:""

答案 1 :(得分:0)

使用if语句在默认值表达式中添加另一个参数(取消选中用作提示)。 我假设整个sql语句可以在这个参数中,但只测试了部分sql语句。在报表查询中将此新参数设置为$ P!{paramname}。 应该工作。

答案 2 :(得分:0)

你可以试试这个: -

如果第一列的文本字段的条件,p_column是一个默认值为“col1”的参数

 $P{p_column}.equals("col1") ? $F{col1} : $F{col2}

如果第二栏的第二个文本的条件: -

$P{p_column}.equals( "col1" ) ? $F{col2} : $F{col1}