【发布时间】:2015-10-02 23:48:19
【问题描述】:
我正在使用 iReport 创建一个 JasperReports 的报告。我有一个日期字段,其中一次实例是01-JAN-1900。我需要任何时候日期字段具有此值,然后打印null 值。我试过这个:
<textField pattern="dd-MMM-yyyy" isBlankWhenNull="true">
<reportElement uuid="4dd05795-8363-4cf3-ad30-239aac3a086f" x="3" y="0" width="63" height="15">
<printWhenExpression><![CDATA[$F{TRAN_DATE} != "01-JAN-1900"]]></printWhenExpression>
</reportElement>
<textElement>
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$F{TRAN_DATE}]]></textFieldExpression>
</textField>
但该值仍在打印中。我如何做到这一点?
【问题讨论】:
-
您可以更改 Java 类中提供值的 getter: return value.equals("01-JAN-1900") ?空:值;
-
它来自 sql select 语句,由于报告按日期排序,因此在将其放入报告之前我无法将其设为 null。
-
$F{TRAN_DATE} 的类型是什么?如果这是 java.util.Date 与 String 的比较将不起作用。也许您应该尝试将 intValue 与 0 ($F{TRAN_DATE}.intValue() != 0 ? ...) 进行比较?
标签: jasper-reports