我想打印一份报告,不应直接下载/保存到我的计算机,而是应打开一个打印对话框。假设我的报告类型是 HTML。这是 Odoo 社区版本 10。
最佳答案
首先,创建ir.values的记录
<record model="ir.values" id="ir_values_sale_order">
<field name="key2" eval="'client_print_multi'"/>
<field name="model" eval="'sale.order'"/>
<field name="name">Open Form</field>
<field name="value" eval="'ir.actions.act_window,%d'%action_report_wizard"/>
</record>
它将在顶部的打印选项上创建菜单项。
我在其中提到
<field name="model" eval="'sale.order'"/>
因此,它将在销售订单 ListView 上创建一个菜单。
也可以在关于记录中看到
<field name="value" eval="'ir.actions.act_window,%d'%action_report_wizard"/>
我们有我们想要在点击时打开的表单操作。
您可以在此处指定您自己的操作的外部 ID,而不是 action_report_wizard
我希望您在该表单 View 上有一些字段和按钮来打印报告。
例如。 操作和表单 View :<record id="action_report_wizard" model="ir.actions.act_window">
<field name="name">Report</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_report_wizard_form"/>
<field name="target">new</field>
</record>
<record id="view_report_wizard_form" model="ir.ui.view">
<field name="name">view.report.wizard.form</field>
<field name="model">sale.order</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Report">
<group cols="4" colspan="2">
<!-- Some fields may be for filter -->
</group>
<footer>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-apply" name="print_report" string="Print Report" type="object"/>
</footer>
</form>
</field>
</record>
单击“打印报告”时,它将调用 print_report 方法,您可以在其中返返回告,就像您所说的 html 报告一样。
@api.multi
def print_report(self):
# RETURN YOUR REPORT
希望这对您有帮助。
关于xml - 如何在 Odoo 10 中单击打印报告时打开打印对话框,而不是将其保存/下载到我们的计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971445/