You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo14 QWeb浮点数转整数失败求助:报表仅显示百分号

解决Odoo14 QWeb报表中浮点数转整数不显示的问题

问题分析

你遇到的核心问题是:当doc.total_mesin_jalan或doc.presentasi_total字段值为空(None)时,直接调用int()转换会触发静默错误,QWeb模板会跳过该元素的内容渲染,最终只显示后面的百分号。另外也需要先确认字段本身是否存在有效值。

解决方案

1. 处理空值情况(最常见原因)

在转换时添加默认值,避免空值转换报错:

<tr class="border-black">
    <td>
        <strong>Total Mesin Jalan</strong>
    </td>
    <td class="text-right">
        <span t-value="int(doc.total_mesin_jalan or 0)"/> %
    </td>
</tr>
<tr class="border-black">
    <td>
        <strong>Presentasi Total</strong>
    </td>
    <td class="text-right" style="background-color: #3498DB; color: #fff !important;">
        <span t-value="int(doc.presentasi_total or 0)"/> %
    </td>
</tr>

or 0会在字段为空时自动使用0作为默认值,确保int()转换能正常执行,同时保留非空值的转换逻辑。

2. 针对字符串类型的浮点数

如果字段存储的是字符串格式的浮点数(比如"15.7"),需要先转成float再转int:

<span t-value="int(float(doc.total_mesin_jalan or 0))"/> %

3. 使用Odoo内置格式化函数(推荐)

如果需要适配本地化数字格式,可以用formatLang函数:

<span t-value="formatLang(int(doc.total_mesin_jalan or 0), digits=0)"/> %

该函数会根据系统设置自动处理数字的显示格式,同时确保整数正确渲染。

4. 先验证字段值

如果上述方法仍无效,先确认字段本身是否有有效值,临时修改代码直接显示原始值排查:

<span t-value="doc.total_mesin_jalan"/>

如果这里也没有输出,说明模型中的字段未正确赋值或计算,需要检查对应模型的业务逻辑。

内容的提问来源于stack exchange,提问作者it uw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 07:00:32