使用条件在ireport中打印值

时间:2014-09-22 11:27:20

标签: 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: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>

1 个答案:

答案 0 :(得分:0)

$F{TOP}.endsWith("NN")?null:$F{COP}这不应该出现在&#34; Print When Expression&#34;字段,对于这是一个布尔表达式字段:就像在表达式中打印一样,如果这个=那个。例如,如果我从不想看到那个字段,我会在表达式字段时将0==1放在print中。因此,当表达式字段时,从打印中删除该行。

您想将该行放在字段中。因此,右键单击字段TOP(我假设这是您想要更改的字段,如果它以NN结尾)并选择编辑表达式并将此行替换为$F{TOP}