ODOO 在现场使用隐形属性 |条件:如果数字是0.0

问题描述 投票:0回答:2

在 Odoo 中,当您有 xpath 时,您可以在满足条件时将“attrs”添加到不可见的字段中。这很好用。

我有一个字段“折扣”,仅当其中一种产品的折扣值大于 0.0 时(即该产品有折扣),我才想在发票/报价报告中显示该字段“折扣”。

代码:

<td style="border: 0.5px solid black;background-color:#E6E6E6;"> <span t-field="l.total_discount" /> </td>

我想补充:

attrs="{'invisible': [('total_discount','=',0.0)]}"

但我不知道上面的代码是否正确。

通常,此代码应隐藏所有折扣表(如果它们全部为零)(如果折扣为零,则放置折扣块是没有用的)

报告-XML

INVOICE_VIEW

如果在任何方面有些不清楚,请告诉我。

#

非常感谢。!

xml odoo invisible
2个回答
1
投票
如果发票上根本没有折扣,要隐藏整个折扣列,需要定义一个计算布尔值的功能字段,它会告诉您发票中是否有一行有折扣。如果只有一行,则布尔值将为 TRUE。如果没有折扣,则布尔值为 FALSE。这是有关如何执行此操作的示例代码。

在模型上定义一个新字段:

display_discount_col = fields.Boolean(compute="_display_discount_col") @api.one def _display_discount_col(self) if line.discount > 0: self.display_discount_col = True break

QWEB代码:

<t t-if="o.display_discount_col"> <th>Discount</th> </t> <t t-if="o.display_discount_col"> <td style="border: 0.5px solid black;background-color:#E6E6E6;"> <span t-field="l.total_discount" /> </td> </t>

我不确定

discount

 字段或 
invoice_line
 是否被称为我上面提到的,您可能需要查找它们并在上面的代码中替换正确的字段名称。


1
投票
使用

t-if

 指定字段何时可见。
将可见内容放入测试标签内,如下所示:

<t t-if="l.total_discount"> <span t-field="l.total_discount" /> </t>
    
© www.soinside.com 2019 - 2024. All rights reserved.