1

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

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

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

4

3 回答 3

1

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

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

PFirst is a reports parameter

字段表达式可以是

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

于 2013-10-08T20:00:50.043 回答
0

你可以试试这个: -

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

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

如果第二列的第二个文本字段的条件:-

$P{p_column}.equals( "col1" ) ? $F{col2} : $F{col1}
于 2013-10-09T05:37:03.387 回答
0

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

于 2013-10-08T14:53:57.200 回答