帐户发票报告

时间:2017-07-11 14:10:18

标签: openerp odoo-8 odoo-9

<openerp>
<data>

    <template id="report_invoice_document" inherit_id="account.report_invoice_document">

        <xpath expr="//span[@t-field='t.amount']" position="after">
            <span t-field="t.note"/>
        </xpath>
        </template>
    </data>
</openerp>

我在税表中添加了发票报表字段。但是,如果有注释字段,我怎样才能使税表可见;如果注释为空则如何隐藏。

我尝试使用t-if,但我的目标是显示税表,以便在注释字段不真实时隐藏它。有什么样的t-ifnot?

<xpath expr="//span[@t-field='t.amount']/../../../../thead/tr" position="replace">
                <th t-if="o.notes"

            </xpath>

2 个答案:

答案 0 :(得分:2)

是。我们可以通过以下示例实现它:

<t t-if="o.notes">
    <!-- Fields visible if Notes has value-->
</t>

<t t-if="not o.notes">
    <!-- Fields visible if Notes has no value-->
</t>

修改

以一种条件设计你的桌子。

<t t-if="o.notes">
    <table style="border:1px solid; width:100%">
        <thead>
            <tr>
                <th></th>
                <th></th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </tbody>
    </table>
</t>

答案 1 :(得分:0)

Hello An ..,

最佳学习指南

如果您想使用任何类型的条件,QWeb提供了许多类型的内置功能。更多信息请阅读以下链接,
1)https://www.odoo.com/documentation/8.0/reference/qweb.html

解决方案

帐户发票基数/ odoo表位于下方,

<div class="row" t-if="len(o.tax_line_ids) > 0">
    <div class="col-xs-6">
        <table class="table table-condensed">
        <thead>
            <tr>
                <th>Tax</th>
                <th class="text-right">Base</th>
                <th class="text-right">Amount</th>
            </tr>
        </thead>
        <tbody>
            <tr t-foreach="o.tax_line_ids" t-as="t">
                <td><span t-field="t.tax_id.description"/></td>
                <td class="text-right">
                    <span t-field="t.base" t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
                </td>
                <td class="text-right">
                    <span t-field="t.amount" t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
                </td>
            </tr>
        </tbody>
        </table>
    </div>
</div>

现在你想在t.note字段不为空时显示表,所以odoo XML提供了条件来检查任何内容。

现在尝试以下代码解决您的问题,

<openerp>
    <data>
        <template id="report_invoice_document" inherit_id="account.report_invoice_document">
        <xpath expr="//span[@t-field='t.amount']" position="after">
            <t t-if="t.note">           
                <span t-field="t.note"/>
                <!-- For example i add one new table -->
                <table class="table table-condensed">
                    <thead>
                        <tr>
                        <th>Tax</th>
                        <th class="text-right">Base</th>
                        <th class="text-right">Amount</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr t-foreach="o.tax_line_ids" t-as="t">
                        <td><span t-field="t.name"/></td>
                        <td class="text-right">
                            <span t-field="t.base"
                            t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/>
                        </td>
                        <td class="text-right">
                            <span t-field="t.amount"
                            t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/>
                        </td>
                        </tr>
                    </tbody>
                </table>

            </t>
            <t t-if="not t.note">           
                <!-- If empty t.note so not show tax table -->
            </t>
        </xpath>
        </template>
    </data>
</openerp>

我希望我的回答很有帮助 如果有任何疑问请评论。