Jasper reports 使用条件在ireport中打印值

Jasper reports 使用条件在ireport中打印值,jasper-reports,conditional-statements,Jasper Reports,Conditional Statements,我试图使用条件打印表中的值 我有三列A、B、C A is string B is integer C is integer 我的条件是A列==“用户” 然后在B列中打印值或使其为空 ($F{A}.equals("USER")?null:$F{B}) 这会导致类型转换错误 <jr:column width="15" uuid="733459e9-1ed8-4ce2-a74d-87dc078b1382"> <jr:

我试图使用条件打印表中的值

我有三列A、B、C

A is string
B is integer
C is integer
我的条件是A列==“用户”
然后在B列中打印值或使其为空

($F{A}.equals("USER")?null:$F{B})
这会导致类型转换错误

<jr:column width="15" uuid="733459e9-1ed8-4ce2-a74d-87dc078b1382">
                                <jr:tableFooter height="29" rowSpan="1"/>
                                <jr:columnFooter style="table 8_CH" height="30" rowSpan="1"/>
                                <jr:detailCell style="table 8_TD" height="20" rowSpan="1">
                                    <textField isBlankWhenNull="true">
                                        <reportElement x="0" y="0" width="15" height="20" uuid="bd3860a4-999a-4121-a701-3481a4fdf98e"/>
                                        <textElement textAlignment="Center" verticalAlignment="Middle">
                                            <font size="8"/>
                                        </textElement>
                                        <textFieldExpression><![CDATA[$F{TOP}]]></textFieldExpression>
                                    </textField>
                                </jr:detailCell>
                            </jr:column>
                            <jr:column width="15" uuid="2e7fa82c-7f28-4af6-a63d-ae468afeea32">
                                <jr:tableFooter height="29" rowSpan="1"/>
                                <jr:columnFooter style="table 8_CH" height="30" rowSpan="1"/>
                                <jr:detailCell style="table 8_TD" height="20" rowSpan="1">
                                    <textField isBlankWhenNull="true">
                                        <reportElement x="0" y="0" width="15" height="20" uuid="33707346-9121-4010-8c12-981eb9f4de77">
                                            <printWhenExpression><![CDATA[$F{TOP}.endsWith("NN")?null:$F{COP}]]></printWhenExpression>
                                        </reportElement>
                                        <textElement textAlignment="Center" verticalAlignment="Middle">
                                            <font size="8"/>
                                        </textElement>
                                        <textFieldExpression><![CDATA[$F{COP}]]></textFieldExpression>
                                    </textField>
                                </jr:detailCell>
                            </jr:column>

$F{TOP}.endsWith(“NN”)?null:$F{COP}
这不应该出现在“表达式打印时”字段中,因为这是一个布尔表达式字段:如果this=that,则与表达式打印时类似。例如,如果我不想看到该字段,我会在print when expression字段中放入
0==1
。因此,从“打印时间”表达式字段中删除该行


你要把线放在字段本身。因此,右键单击字段
TOP
(我假设这是您要更改的字段,如果它以NN结尾),然后选择Edit Expression并将此行替换为
$F{TOP}

,您使用的是哪个版本的iReport?你应该发布jrxml文件你能帮我查询一下吗?代码有三页长,特别是显示你的
($F{A}.equals(“USER”)?null:$F{B})
。我添加了一些代码错误填充打印。。。java.lang.String不能转换为java.lang.Boolean java.lang.ClassCastException:java.lang.String不能转换为java.lang.Boolean这是我得到的错误