ODOO 在字段上使用不可见属性 |条件:如果数字是0.0

ODOO Use invisible attrs on field | Condition: If the number is 0.0

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

我有一个 DISCOUNT 字段,我想在 INVOICE/QUOTATION 报告中显示,只有当其中一种产品的 DISCOUNT 值大于 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

如果有任何不清楚的地方,请告诉我。

#

非常感谢!

使用 t-if 指定字段何时可见。
将可见内容放在测试标签内,见下图:

<t t-if="l.total_discount != 0">
    <span t-field="l.total_discount" />
</t>

如果发票上根本没有折扣,要隐藏整个折扣列将定义一个功能字段来评估一个布尔值,它会告诉您发票中是否有一行具有折扣。如果只有一行,则布尔值将为 TRUE。如果 none 有折扣,则布尔值将为 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 是否是我上面提到的名称,您可能需要查找它们并在上面的代码中替换正确的字段名称.