在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)]}"
但我不知道这是否是上面的正确代码。
通常情况下,如果所有折扣表都等于零,则此代码应隐藏所有折扣表(如果折扣为零,则不会使用折扣块)
如果在某些方面有些不清楚,请告诉我。
非常感谢!
答案 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>