【问题标题】:Null checking in ireport空值检查 ireport
【发布时间】:2017-02-12 21:35:25
【问题描述】:

我的 Web 应用程序正在使用 I-REPORT 设计器来设计报告。 对于报表中使用的数据,我编写了一个查询,从不同的表中获取两个列值。这里列数据的数据类型是 real。在 ireport 中对应的数据类型是 Float.

在这里,如果其中一个数据有值,则其他数据没有值或为空。所以我必须在生成报告时使用文本字段显示一个不为空或为空的值。所以我已经实现了条件在文本字段中

( $F{permit_quantity}==null ?$F{fst_insp_qpqlml_quantity} : $F{permit_quantity} )

这里的字段$F{permit_quantity}, $F{fst_insp_qpqlml_quantity}对应查询返回的两列值。

但当 $F{permit_quantity} 为空或 null 时,上述条件不起作用。

我正在使用 postgresql 数据库

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

    如果条件本身不起作用,您可以尝试使用.equals() 方法。

    $F{permit_quantity}.equals(null) ? $F{fst_insp_qpqlml_quantity} : $F{permit_quantity}

    可能还有其他各种原因导致您的代码无法正常工作,但我无法从您的 sn-p 中看出。

    【讨论】:

    • 这肯定会更糟。如果您尝试在空引用上调用.equals(),则会抛出NullPointerException
    • 你说得对。请忽略此答案。不要使用.equals() 进行空值检查。
    【解决方案2】:
     $F{permit_quantity}.toString() == null ? $F{fst_insp_qpqlml_quantity} :  
     $F{permit_quantity} 
    

    这解决了你的问题。

    【讨论】:

      猜你喜欢
      • 2013-05-16
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-13
      • 2020-08-04
      • 2011-06-03
      • 1970-01-01
      相关资源
      最近更新 更多