csa*_*bee 4 double json jasper-reports number-formatting
我在Jaspersoft Studio中使用Jasper Reports 6.0.1.
我有一个包含子报告的报告.子报表正确地从主报表获取数据集,其值为: - string - double
我在报告中正确显示double值时遇到问题.所以Json包含的值如下:
'doubleValue':'0.431'
字段'doubleValue'在子报表中正确定义:
<field name="doubleValue" class="java.lang.Double">
<fieldDescription><![CDATA[doubleValue]]></fieldDescription>
</field>
Run Code Online (Sandbox Code Playgroud)
并且'doubleValue'似乎在报告中正确使用:
<textField pattern="#0.00">
<reportElement x="690" y="0" width="75" height="30" uuid="d265ebec-6fa7-421e-8d58-c7f2d32eea6b">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<box>
<topPen lineWidth="0.1"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textElement>
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$F{doubleValue}]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)
doubleValue似乎在输出中正确格式化:'3.00'
但是:字段值的来源是3.41.所以我深入检查了这些值,无论小数分隔符后面是什么,所有值都被格式化为'x.00'.
请帮帮我,我做错了什么?
我需要正确导出到XLSX数据(所以它知道有在单元格中的数字),而我使用这个以下选项:
<property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>
Run Code Online (Sandbox Code Playgroud)
当小数分隔符在本地化的基础上改变时,经常会出现这些问题..(点)是美国的小数点分隔符,但在意大利的小数点分隔符是,(逗号)
然而,jasper报告(第6版)应该没有问题处理,您的模式应该是美国格式,jasper报告将以Locale.getDefault()格式导出(也在excel中应用正确的模式).
所以你的jrxml应该没有问题.
但请注意,如果您有意大利语本地号码,JsonDataSource则会使用Locale.getDefault()格式Double.12.234将被解释为12234(因此为千).
在这种情况下,您需要将Local设置为JsonDataSourcees.
JsonDataSource ds = new JsonDataSource(new File("example.json"));
ds.setLocale(Locale.US);
Run Code Online (Sandbox Code Playgroud)
要正确解析您的号码.
| 归档时间: |
|
| 查看次数: |
864 次 |
| 最近记录: |