jir*_*iya 6 jasper-reports ireport textfield
ResultSet有许多Double值字段(具有类似的模式"###0.000").有些值可以null.
我想替换null值"N/A",这是一个String,不能打印到Double字段.打印"0.00"为null值是不可接受的.
使用PrintWhenExpression值($F{value} != null) ? $F{value} : "N/A"不起作用; 不可能以这种方式使用模式.
添加写入"N/A"的隐藏字段.仅当值为时,才会打印这些字段null.
是否有更好的解决方案,如果有,它是什么?
谢谢.
Dav*_*vis 10
你的解决方案
doubleField)作为列值.$F{doubleField} == null.正如您所指出的,问题是Double和String是两种不同的数据类型.您可以使用适当的表达式将String变量分配给Double的值.然后使用String变量作为字段.表达式可能类似于:
($F{doubleField} == null) ?
"N/A" : new java.text.DecimalFormat("#.##").format($F{doubleField})
Run Code Online (Sandbox Code Playgroud)
(注意:我的偏好是使用==而不是!=.积极思考.)
更改SQL语句以将Double预格式化为文本字符串,并在字符串中使用"N/A"(通过在查询中使用CASEor DECODE语句).
但是,请避免使用此解决方案,因为它无法维护.
不要在整个报告中硬编码"N/A"字符串; 将"N/A"文本放在常量或默认值为"N/A"的参数中.
| 归档时间: |
|
| 查看次数: |
21784 次 |
| 最近记录: |