在 Odoo qweb 报告中添加 xpath
Add xpath in Odoo qweb report
如何在原始报告的最后一段后继承 qweb 添加新元素:
<p t-if="o.comment">
<strong>Comment:</strong>
<span t-field="o.comment"/>
</p>
//add after <p t-if="o.comment">
<xpath expr="??" position="after">
<p>new</p>
</xpath>
您可以像这样使用 xpath 找到报告中的最后一个 p 元素:
<xpath expr="(//p)[position()=last()]" position="after">
(//p)
部分查找所有 p 元素,过滤器 [position()=last()]
选择其中的最后一个。
我假设 p 元素在您的基础报告中,而 xpath 部分在您继承的报告中。
请记住,只有当您的模型在评论字段中有数据时,p 元素才会存在。 xpath不知道最后一个是不是注释。它只是盲目地从报告中获取最后一个,在您的示例中,如果 t-if="o.comment"
不正确,它不会出现在报告中。
希望对您有所帮助。
Br,
维科
确保如下所示继承模板 ID,然后添加 xpath。希望对你有帮助。
<template id="report_saleorder_inherit" inherit_id="report.external_layout_footer">
<xpath expr="//p[@t-if='o.comment']" position="after">
<p>new</p>
</xpath>
</template>
如何在原始报告的最后一段后继承 qweb 添加新元素:
<p t-if="o.comment">
<strong>Comment:</strong>
<span t-field="o.comment"/>
</p>
//add after <p t-if="o.comment">
<xpath expr="??" position="after">
<p>new</p>
</xpath>
您可以像这样使用 xpath 找到报告中的最后一个 p 元素:
<xpath expr="(//p)[position()=last()]" position="after">
(//p)
部分查找所有 p 元素,过滤器 [position()=last()]
选择其中的最后一个。
我假设 p 元素在您的基础报告中,而 xpath 部分在您继承的报告中。
请记住,只有当您的模型在评论字段中有数据时,p 元素才会存在。 xpath不知道最后一个是不是注释。它只是盲目地从报告中获取最后一个,在您的示例中,如果 t-if="o.comment"
不正确,它不会出现在报告中。
希望对您有所帮助。
Br,
维科
确保如下所示继承模板 ID,然后添加 xpath。希望对你有帮助。
<template id="report_saleorder_inherit" inherit_id="report.external_layout_footer">
<xpath expr="//p[@t-if='o.comment']" position="after">
<p>new</p>
</xpath>
</template>