xml - 如何在 Odoo 10 中单击打印报告时打开打印对话框,而不是将其保存/下载到我们的计算机

标签 xml python-2.7 odoo report

我想打印一份报告,不应直接下载/保存到我的计算机,而是应打开一个打印对话框。假设我的报告类型是 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/

相关文章:

javascript - 如何在 JQuery 中查找和替换 xml 节点值

c++ - Python ctypes 调用简单的 c++ dll

xml - 电子邮件模板 openerp 中的当前日期?

python - 如何在 one2many 弹出表单中加载另一个表的列表以将其添加到 odoo 12 中的主表单?

java - EditText 在开始时具有永久缩进

java - 如何显示在新 Activity 中拍摄的图像

android - 解析 XML 时出错 : not well-formed (invalid token) andElement type "LinearLayout" must be followed by either attribute specifications, ">"或 "/>"

Python通过字符串名称导入子模块?

javascript - UnicodeDecodeError : 'ascii' codec. .. 尝试为 JavaScript 编码结构时

python - odoo 在 CentOS 6.7 上安装失败(命令 "pip install pyopenssl")