我正尝试在生成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_from
,date_to
和report_type
,并被发送到get_report_values()
我在单独的python文件中完成的方法。
但是,当我选择report_type
作为xml
时,不会发送整个form
密钥。
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
键。
有人可以帮助我解决此问题吗? 预先感谢。