python - Odoo 报告字段数据在预期时为 "Undefined"False

标签 python sql report odoo odoo-10

我修改了crm_opportunity_report :

  • 添加了一个 bool 字段is_customer = fields.Boolean('Is customer', readonly=True)

  • 在 View 中添加了一个字段

    CREATE VIEW crm_opportunity_report AS (
        SELECT
            <...>omitted<...>
            rp.customer as is_customer
        FROM
            "crm_lead" c                        
            LEFT JOIN "res_partner" rp ON rp.id = c.partner_id
            <...>omitted<...>                
        GROUP BY c.id, stage.name, is_customer
    

在报告中,当我单击“+”并选择“是客户”时,有时值 Undefined 会显示为它的值。

试过这个: COALESCE(rp.customer, FALSE) as is_customer(在 Group by 中也是如此)但是“未定义”仍然存在。

我如何在 Odoo 报告中使 Undefined 表示 False 以便当它为“Undefined”时显示为“False”?

注意: 在使用 Firefox 进行调试时,我可以观察到来自服务器的 (jsonrpc) 数据在报告项上带有“is_customer: false”或“is_customer: true”。但不知何故,那些在报 TableView 中具有“is_customer: false”的项目显示好像“is_customer: Undefined”。

更新

我偶然发现了这个 line

if (value === false) return _t("Undefined");

此逻辑背后的原因可能是什么:“如果值为假,则返回“未定义””

有趣的部分,我可以添加 if (value === true) return _t("Whatever"); :)

最佳答案

这并不理想,但您可以在 res.partner 上创建一种计算复制/虚拟字段存储 Char Boolean 的版本 field 。

以此为例,计算方法只是检查字段是否为 True 并存储为 't''f'取决于那个。

is_customer_string = fields.Char('Is a Customer? (text)', compute='_compute_is_customer_string', store=True)

@api.multi
@api.depends('is_customer')
def _compute_is_customer_string(self):
    for partner in self:
        partner.is_customer_string = 't' if partner.is_customer else 'f'

Documentation on computed fields

注:store=True可能是可选的,但如果您存储该字段,则必须使用一些 depends字段作为重新计算的触发器。如果你不store计算字段,然后是 depends应该离开。

关于python - Odoo 报告字段数据在预期时为 "Undefined"False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49974551/

相关文章:

mysql - 根据时间从多个表中获取最接近数据的最快方法

mysql - 从连接表中按 MAX(日期) 选择

Python 不在

javascript - Splinter:如何将参数传递给execute_script?

python - 仅获取Django中相关对象的某些字段

android - 开发人员的错误报告提供的信息较少,用户/电话可以进行大量预览

c# - RDLC vs Crystal Reports vs Anything Else 免费 : I'm running Informix and using C# 4. 0

python - 使用 Numpy 进行大数据集多项式拟合

mySQL:如何选择每周休息人数较多的日子

mysql - 将报告查询保存到数据库