我正在使用 iReport 创建 JasperReports服务器报告。我有一个有4列的表。用户需要通过参数选择,这将是第一列。根据他选择的内容,决定其他列。
例如如果用户在输入控件中选择第2列,则第2列将成为最左侧的列,第1列将取代第2列。
最好的方法是什么?我可以在参数中使用“if”条件吗?
答案 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}