打印覆盖弹出odoo

问题描述:

我重写仓库中的打印采摘按钮。但要求是它应该显示一个具有选择字段的弹出窗口。然后从用户那里获取该值并根据传递的值打印报告。下面是我尝试过的代码,但它不起作用。打印覆盖弹出odoo

的点击打印装箱单按钮重写功能:

def do_print_picking(self, cr, uid, ids, context=None): 
    return { 
     'name':'input sort report', 
     'view_type':'form', 
     'view_mode':'form', 
     'res_model':'my.report', 
     'type':'ir.actions.act_window', 
     'target':'new', 
     'context':None, 
    } 

这将打开一个空白页。如何达到以下要求。

然后,我想从弹出窗口获得排序值,并通过传递值打印报表。我能够在不弹出的情况下打印报告。只需要拦截显示弹出窗口并从用户那里获得输入。

更新:

弹出窗口中的字段未存储在数据库中。只需要一个用户选择的排序值来发送给报告

请帮助我。 谢谢,

+0

你能分享'my.report'的代码吗? – danidee

+0

您好,这种情况是我创建了自定义模块只用于打印报告。在这个模块中,我有一个stock_picking.py文件,它覆盖了选股模型函数(do_print_picking)。第二个文件是my.report模型,但是_auto = False,因此它不会创建表。现在当用户点击按钮时,这个函数就会调用显示弹出窗口来选择排序。然后用户选择排序。然后根据排序的值报告打印。所以基本上my.report。没有任何代码,只有使用_ auto = False的类声明。 – user280960

如果它没有id,Odoo无法显示表单视图。 您应该将res_id添加到您的返回字典中。

例如:

return { 
     'name':'input sort report', 
     'view_type':'form', 
     'view_mode':'form', 
     'res_model':'my.report', 
     'res_id : ids[0], 
     'type':'ir.actions.act_window', 
     'target':'new', 
     'context':None, 
    } 

此代码可能为你工作。如果没有,你应该找到一个方法来获得正确的ID。