如何使用Odoo 11中的向导生成qweb-xml报告?

时间:2019-04-28 05:35:19

标签: xml odoo-11 qweb

我正尝试在生成qweb-xml报告的过程中按照相同的步骤从wizard生成qweb-pdf报告。问题是,我无法发送向导的表单数据来报告文件。

这是我的wizard/wizard.py文件:

class XMLReportWizard(models.TransientModel):
    _name = 'wizard.mymodule.report'

    date_from = fields.Date(string = 'From', required = True)
    date_to = fields.Date(string = 'To', required = True)
    report_type = fields.Selection(string = 'Report Type', 
        selection=[('pdf', 'PDF'), ('xml', 'XML'), ('excel', 'Excel'), ('csv', 'CSV')], default='pdf')

def get_report(self):
    self.ensure_one()
    [data] = self.read()
    form_data = {'form': data}
    if data['report_type'] == 'pdf':
        return self.env.ref('mymodule.mv_wizard_report').report_action(self, data = form_data)
    elif data['report_type'] == 'xml':

       return self.env.ref('mymodule.mv_wizard_report_xml').report_action(self, data = form_data)
    else:
        raise UserError("Report type %s is currently not available." %data['report_type'])

report/report.py文件中:

class ReportXML(models.AbstractModel):
    _name = 'report.mymodule.mv_report_xml'

    @api.model
    def get_report_values(self, docids, data = None):
        if not data.get('form'):
            raise ValidationError("Form content is missing, this report cannot be printed.")

当我选择report_type作为pdf时,向导中的form_data包含date_fromdate_toreport_type,并被发送到get_report_values()我在单独的python文件中完成的方法。 但是,当我选择report_type作为xml时,不会发送整个form密钥。

当选择pdf时,

data包含以下数据:

{'report_type': 'qweb-pdf', 'context':'something', 'data': {'form':{'report_type': 'pdf', 'date_to': '2019-04-01', 'date_from': '2019-04-01',..}}}

但是当我选择xml作为report_type时,仅发送以下数据:

{'data': '["report/xml/mymodule.mv_report_xml/32","qweb-xml"]', 'token': '1556429333217'}

P.S:我已经安装了report_xml模块,该模块有助于生成xml格式的报告。

当我在打印xml报告时不包含向导中的data时,可以很好地生成xml报告。因此,主要问题是data字典在生成xml报告时不包含form键。

有人可以帮助我解决此问题吗? 预先感谢。

0 个答案:

没有答案
相关问题