我想在我的表中显示不同的列标题文本,并且在此标题中也有不同的值。标题文本和值取决于一个参数值。此参数在报表的“参数”部分中定义为String,我也在“预览”视图中看到它,我也在那里给它一个值。
我的问题是,它不起作用(此列始终为空:没有标题文本,没有详细值):)如何正确使用任何IF语句?这是我的表头代码:
($P{first_column} == "first_column") ? "First Column" : ($P{first_column} == "second_column" ? "Second Column" : ($P{first_column} == "third_column" ? "Third Column" : ""))
我做错了什么?谢谢!
编辑:
这是从“源”视图复制的TextField表达式:
<textField>
<reportElement mode="Opaque" x="0" y="0" width="58" height="30" backcolor="#CFCFCF" uuid="96edf250-4a1c-4448-8995-3753c76f4a1e"/>
<textElement verticalAlignment="Middle">
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[($P{first_column}.equals("first_column") ? "First Column" : ($P{first_column}.equals("second_column") ? "Second Column" : ""))]]></textFieldExpression>
</textField>
答案 0 :(得分:0)
Java中的字符串比较是通过equals()
方法完成的。 This post解释了它。
假设你有基于java.lang.String
的参数,你可以这样做:
($P{first_column}.equals("second_column") ? "Second Column" : ($P{first_column}.equals("third_column") ? "Third Column" : ""))