ODOO在场上使用隐形attrs |条件:如果数字是0.0

时间:2016-08-30 14:40:44

标签: xml openerp invisible

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

我有一个字段DISCOUNT,我想在INVOICE / QUOTATION报告中显示,只有当其中一个产品的DISCOUNT值超过0.0时(即该产品给予折扣

CODE:

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

我想补充一下:

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

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

通常情况下,如果所有折扣表都等于零,则此代码应隐藏所有折扣表(如果折扣为零,则不会使用折扣块)

REPORT-XML enter image description here

INVOICE_VIEW enter image description here

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

非常感谢!

2 个答案:

答案 0 :(得分:1)

使用t-if指定字段何时可见 将可见内容放在测试标记内,如下所示:

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

答案 1 :(得分: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是否被称为上面提到的字段,您可能需要查找它们并在上面的代码中替换正确的字段名称。< / p>