【发布时间】:2016-07-19 17:42:33
【问题描述】:
有没有办法为报表中的字段设置默认值?我在报告中有很多字符串字段,并且希望它们在为空时显示“0,00”。
【问题讨论】:
-
如果您对答案不满意,请在您的问题中添加更多详细信息
-
我认为您还应该将文本值更改为数值并设置模式,然后最终设置 0 而不是“0,00”,因为它不是数字的全局格式。
标签: jasper-reports
有没有办法为报表中的字段设置默认值?我在报告中有很多字符串字段,并且希望它们在为空时显示“0,00”。
【问题讨论】:
标签: jasper-reports
假设字段名是“值”,在“文本字段表达式”中,写:
($F{value} != null) ? $F{value} : "0.00"
【讨论】:
如果需要,您还可以在文本字段的属性中选择“空时为空”。其他选项更灵活,但这样做非常简单快捷。
【讨论】:
medopal 的回答不错,但补充两点:
1) 你可以让语法更短:
($F{field_name}) ? $F{field_name} : "0.00"
2) 确保您的“else”数据与字段的值属于同一类,否则当它尝试将数字强制转换为字符串等时会出错。这就是我刚开始的时候,我搞混了。
【讨论】:
Type mismatch: cannot convert from String to boolean。
您是否尝试在文本字段中设置模式?
如果您使用的是 iReport,可以在 Text Field Properties 部分的文本字段的属性中找到它。
尝试使用类似###0.00 的方法来表示 1234.56,即使它为空,它也会始终显示 0.00。
【讨论】:
这是最简单的方法是在数据源查询中使用数据库的Coalesce() or NVL() 函数来限制报表中的空数据。
但这取决于您是否被允许更改数据源查询。如果没有,那么您可以寻求以前答案中提供的其他解决方案。
【讨论】: