如何在iReport中将句点替换为逗号



首先,iReport需要这个问题。我必须用逗号代替点号。我的问题是,我们数据库中的字段类型是BigDecimal,因此不存在任何替换方法。所以我把类型改为String,但后来我得到了这样的消息:

it.businesslogic.ireport.gui.logpane.ProblemItem@820dc5 The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files

我的代码看起来像:

new String($F{gewicht}.toString()).replace(".",",")

我能做什么?

尝试输入以下文本表达式:

$F{gewicht}.toString().replace(".",",")

如果这不起作用,一个替代方案是处理Java层中的格式化,例如

BigDecimal bd = new BigDecimal(1.2345);
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
DecimalFormat df = (DecimalFormat)nf;
String gewicht = df.format(bd);

在这里,我使用了欧洲-德国语言环境,其中小数点和逗号将角色与美国和其他一些地方的角色颠倒。您可能希望同时处理逗号和小数点。

您可以使用文本字段模式:

<textField pattern="#,##0.00 €">

这将为您提供德语格式。在这种情况下,这是针对€值的,但如果需要,您可以跳过€并添加更多的descimals:

<textField pattern="#,####0.0000">

另一种方法可能是:

new DecimalFormat("#,##0.00 €", new DecimalFormatSymbols(Locale.GERMANY)). format(Double.parseDouble($F{gewicht}))

绕过问题:无法解析类型java.lang.CharSequence。它是从必需的.class文件中间接引用的

您可以设置一个新的DecimalFormat,如:new DecimalFormat("#,##0.00€",new DecimalFormatSymbols(Locale.GERMANY)).format(Double.parseDouble($F{gewicht}))

感谢@hering

相关内容

  • 没有找到相关文章

最新更新