我正在使用iReport创建JasperReports Server报告。我有一张有 4 列的表。用户需要通过参数选择第一列。根据他选择的内容,决定其他列。
例如,如果用户在输入控件中选择第 2 列,第 2 列将成为最左边的列,第 1 列将代替第 2 列。
最好的方法是什么?我可以在参数中使用“if”条件吗?
我正在使用iReport创建JasperReports Server报告。我有一张有 4 列的表。用户需要通过参数选择第一列。根据他选择的内容,决定其他列。
例如,如果用户在输入控件中选择第 2 列,第 2 列将成为最左边的列,第 1 列将代替第 2 列。
最好的方法是什么?我可以在参数中使用“if”条件吗?
解决方案的安排非常罕见。无论如何,您可以通过使用带有变量的表达式来实现。
只需右键单击该字段,然后单击“编辑表达式”
PFirst is a reports parameter
字段表达式可以是
$Pfirst.equals("fieldOne")?fieldOne:"" + $Pfirst.equals("fieldTwo")?fieldTwo:"" + $Pfirst.equals("fieldThree")?fieldThree:""
你可以试试这个: -
如果条件为第一列的文本字段,p_column 是默认值“col1”的参数
$P{p_column}.equals("col1") ? $F{col1} : $F{col2}
如果第二列的第二个文本字段的条件:-
$P{p_column}.equals( "col1" ) ? $F{col2} : $F{col1}
在默认值表达式中使用 if 语句添加另一个参数(取消选中用作提示)。我假设整个 sql 语句都可以在这个参数中,但只用部分 sql 语句进行了测试。在报告查询中,将此新参数设置为 $P!{paramname}。应该管用。