gpt4 book ai didi

jasper-reports - Jasper报告中的空字段的默认值

转载 作者:行者123 更新时间:2023-12-04 06:43:18 26 4
gpt4 key购买 nike

背景

ResultSet具有许多Double值字段(具有类似"###0.000"的模式)。一些值可以是null

问题

我想用null替换"N/A"值,这是String,并且无法打印到Double字段。打印"0.00"以获取null值是 Not Acceptable 。

使用($F{value} != null) ? $F{value} : "N/A"的PrintWhenExpression值不起作用;不可能以这种方式使用模式。

主意

添加写“N/A”的隐藏的字段。仅当value为null时,才会打印这些字段。

问题

有没有更好的解决方案,如果有的话,那是什么?

谢谢你。

最佳答案

解决方案#1

您的解决方案:

  • 使用常规Double字段(doubleField)作为列值。
  • 在同一位置添加静态字符串文本字段。
  • 将Double字段更改为,当Null时为空白
  • 将“字符串”文本字段的 PrintWhenExpression 值设置为$F{doubleField} == null

  • 解决方案#2

    正如您所指出的,问题是Double和String是两种不同的数据类型。您可以使用适当的表达式将String变量分配给Double的值。然后使用String变量作为字段。该表达式可能类似于:
    ($F{doubleField} == null) ?
    "N/A" : new java.text.DecimalFormat("#.##").format($F{doubleField})

    (注意:我的偏好是使用 ==而不是 !=。请积极思考。)

    解决方案#3

    更改SQL语句以将Double预先格式化为文本字符串,然后在字符串中使用“N/A”(通过在查询中使用 CASEDECODE语句)。

    但是,请避免使用此解决方案,因为它无法维护。

    推荐

    不要在整个报告中对“N/A”字符串进行硬编码;将“N/A”文本放入常量或默认值为“N/A”的参数中。

    关于jasper-reports - Jasper报告中的空字段的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5221361/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com