打印覆盖弹出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,
}
这将打开一个空白页。如何达到以下要求。
然后,我想从弹出窗口获得排序值,并通过传递值打印报表。我能够在不弹出的情况下打印报告。只需要拦截显示弹出窗口并从用户那里获得输入。
更新:
弹出窗口中的字段未存储在数据库中。只需要一个用户选择的排序值来发送给报告
请帮助我。 谢谢,
答
如果它没有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。
你能分享'my.report'的代码吗? – danidee
您好,这种情况是我创建了自定义模块只用于打印报告。在这个模块中,我有一个stock_picking.py文件,它覆盖了选股模型函数(do_print_picking)。第二个文件是my.report模型,但是_auto = False,因此它不会创建表。现在当用户点击按钮时,这个函数就会调用显示弹出窗口来选择排序。然后用户选择排序。然后根据排序的值报告打印。所以基本上my.report。没有任何代码,只有使用_ auto = False的类声明。 – user280960