QWeb pdf报告odoo 10

时间:2017-10-03 14:19:21

标签: pdf openerp report odoo-10 qweb

我是odoo的新手我希望向我的模型报告pdf,我已经尝试了所有tuto我在net youtube中找到,google但没有人为我工作请给我一个建议。 有我的模特:

# modelx.py file
from openerp import models, fields, api

class omega(models.Model):
    _name = 'omega.model'
    _description = 'No Description for now !!'

    @api.model
    def render_html(self, docids, data=None):
        report_obj = self.env['report']
        report = report_obj._get_report_from_name('report.external_layout')
        docargs = {
            'doc_ids': docids,
            'doc_model': report.model,
            'docs': self,
        }
        return report_obj.render('report.external_layout', docargs)


    state = fields.Selection([
        ('Nouveau', 'Nouveau'),
        ('valid', 'Validation Responsable'),
        ('Termine', 'Termine'),
    ],default='Nouveau')

    @api.one
    def confirmer(self):
        self.write({
            'state': 'valid',
        })

    employe = fields.Many2one(comodel_name="res.users", string="Employe", required=True, delegate=True)
    date = fields.Datetime(string="Date", required=True)
    date2 = fields.Date(string="Date2", required=True)
    day_number = fields.Integer(string="Nombre de jour", required=True)
    transport = fields.Selection(string="Transport", selection=[('1', 'Train'), ('2', 'Voiture de Service'), ('3', 'Avion')])
    sujet = fields.Char(string="Sujet", required=True)
    lieu = fields.Char(string="Lieu", required=False)

我还有这两个文件XML:

<!-- report.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<openerp>
    <data>
        <report
            id="action_report_omega"
            model="omega.model"
            string="Report"
            report_type="qweb-pdf"
            file="report.external_layout"
            name="report.external_layout"
        />
    </data>
</openerp>

和我在net和odoo文档中找到的模板视图文件

<!-- report_template.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<openerp>
    <data>
        <template id="report_omega_document">
            <t t-call="report.html_container">
            <t t-call="report.external_layout">
                <div class="page">
                <div class="oe_structure">
                <div class="row">
                    <H1>Hi there hello</H1>
                </div>
                </div>
                </div>
            </t>
            </t>
        </template>
        <template id="report_omega">
            <t t-call="report.html_container">
            <t t-call="report.external_layout">
                <t t-foreach="doc_ids" t-as="doc_id">
                    <div class="page">
                    <div class="oe_structure">
                    <div class="row">
                        <H3>Hi hello </H3>
                    </div>
                    </div>
                    </div>
                </t>
            </t>
            </t>
        </template>

    </data>
</openerp>

当我执行打印报告的程序时,我得到一个空文件,请给我任何建议

1 个答案:

答案 0 :(得分:6)

您需要更改报告标记的文件和名称属性。它始终代表 module_name.report_template_name

<report
    id="action_report_omega"
    model="omega.model"
    string="Report"
    report_type="qweb-pdf"
    file="your_module_name.report_omega"
    name="your_module_name.report_omega"
/>

然后,升级您的模块并尝试它。它应该工作正常。

有关详细信息,请参阅Qweb Reports - Odoo10 Document.