首页 文章

Qweb报告模板Odoo 10

提问于
浏览
0

如果从会计打印报表,如何在从销售处打印发票时显示字段并隐藏它?有没有办法从qweb模板访问活动模块?类似于以下代码的东西:

<template id="report_invoice_document" inherit_id="account.report_invoice_document">
    <xpath expr="//div[@class='page']" position="replace">
        <div t-if="o.active_module == account" class="page">
                <!-- Hide Here -->
        </div>
        <div t-else="" class="page">
                <!-- Show Here -->
        </div>
    </xpath>
</template>

1 回答

  • 0

    您可以使用自定义报告创建自定义报告或覆盖现有报告 . 在python代码中评估活动模型,并将参数传递给报告以进行qweb评估 . 您可以像您建议的那样将参数传递给qweb,然后使用您在建议的代码中使用的完全相同的逻辑 .

    import logging
    _logger = logging.getLogger(__name__)
    
    class YourReport(models.AbstractModel):
        _name = 'report.your_addon.report_template_id'
    
        @api.multi
        def render_html(self, data=None):
            _logger.info("RUNNING REPORT")
            report_obj = self.env['report']
            report = report_obj._get_report_from_name('your_addon.report_template_id')
            docs = self.env.context.get('active_ids')   
            docargs = {
                'doc_model': report.model,
                'active_model': self.env.context.get('active_model'),
                'docs': docs,
            }
            return report_obj.render('your_addon.report_template_id', docargs)
    

相关问题