Jasper reports 使用';如果';参数中的条件

Jasper reports 使用';如果';参数中的条件,jasper-reports,ireport,jasperserver,Jasper Reports,Ireport,Jasperserver,我正在使用iReport创建JasperReports服务器报告。我有一个4列的表。用户需要选择贯穿参数,该参数将作为第一列。根据他选择的内容,其他列将被决定 例如,如果用户在输入控件中选择第2列,第2列将成为最左边的列,第1列将取代第2列 最好的方法是什么?我可以在参数中使用“if”条件吗?在默认值表达式中的if语句中添加另一个参数(取消选中“用作提示”)。 我假设整个sql语句都可以在这个参数中,但只使用sql语句的一部分进行测试。在报告查询中,将此新参数设置为$P!{paramname}。

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

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

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

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

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

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

只需在字段上单击鼠标右键,然后单击“编辑表达式”

字段表达式可以是


$Pfirst.equals(“fieldOne”)?fieldOne:+$Pfirst.equals(“fieldTwo”)?fieldTwo:+$Pfirst.equals(“fieldTwo”)?fieldTwo:“

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

只需在字段上单击鼠标右键,然后单击“编辑表达式”

字段表达式可以是


$Pfirst.equals(“fieldOne”)?fieldOne:+$Pfirst.equals(“fieldTwo”)?fieldTwo:+$Pfirst.equals(“fieldTwo”)?fieldTwo:“

您可以尝试以下方法:-

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

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

$P{p_column}.equals( "col1" ) ? $F{col2} : $F{col1}
您可以尝试以下方法:-

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

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

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

你能用一个条件发布你的jrxml文件吗?你能用一个条件发布你的jrxml文件吗?
$P{p_column}.equals( "col1" ) ? $F{col2} : $F{col1}