odoo打印一般是在动作里面进行的
所以此方法可用自定义按钮进行打印
xml
<template id="report_sale_line_packing_template">
xxx
</template>
<template id="report_sale_line_packing">
<t t-call="web.basic_layout">
<t t-foreach="docs" t-as="o">
<div class="page">
<t t-call="sale_reports.report_sale_line_packing_template"/>
</div>
</t>
</t>
</template>
<record id="action_report_sale_line_list" model="ir.actions.report">
<field name="name">销售明细</field>
<field name="model">sale.order.line</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">sale_reports.report_sale_line_packing</field>
<field name="report_file">sale_reports.report_sale_line_packing</field>
<field name="print_report_name">'销售明细%s' %(object.name or '')</field>
<field name="binding_model_id" ref="model_sale_order_line"/>
<field name="binding_type">report</field>
</record>
python
def action_report_data(self):
url = '%s/report/pdf/sale_reports.report_sale_line_packing/%s' % (self.get_base_url(), self.id)
return {
'type': 'ir.actions.act_url',
'name': "销售明细报表",
'target': 'new',
'url': url,
'res_id': self.id,
}