从向导打印

时间:2019-06-17 10:00:45

标签: odoo-11

我想从向导打印报告。在此向导中,我恢复所选的订单,并使用所选的订单调用report_action函数。

问题是我不知道如何将订单发送到此功能。这是代码:

def _get_default_orders(self): 
  return self.env['sale.order'].browse(self.env.context.get('active_ids')) 

order_ids = fields.Many2many('sale.order', string='Orders', default=_get_default_orders) 

@api.multi 
def processed_orders(self): 
  list = [] 
  for orders in self: 
  if orders.order_ids: 
       list.append(orders) 

  datas = { 
    'ids': list, 
    'model': 'sale.order', 
  } 

  return self.env.ref('aloha_reports_templates.custom_report_sale_order').sudo().report_action(self, data=datas)

Odoo生成错误,因为我没有正确地将参数发送给report_action。

有人可以帮我吗?

谢谢

2 个答案:

答案 0 :(得分:0)

首先按照您的示例,在您的系统中,该报表必须有aloha_reports_templates.custom_report_sale_order操作。

让我为您展示odoo 11社区代码中的示例 文件: account / models / account_invoice.py 方法( invoice_print

url("/zpi-frontend/assets/fileName")

根据odoo 11社区中的上述代码,已经按以下方式创建了account_invoices报告操作( account / views / account_report.xml )。

@api.multi
def invoice_print(self):
    """ Print the invoice and mark it as sent, so that we can see more
        easily the next step of the workflow
    """
    self.ensure_one()
    self.sent = True
    if self.user_has_groups('account.group_account_invoice'):
        return self.env.ref('account.account_invoices').report_action(self)
    else:
        return self.env.ref('account.account_invoices_without_payment').report_action(self)

希望这会有所帮助!

答案 1 :(得分:0)

是的。我有一个名为aloha_reports_templates.custom_report_sale_order的报告。

我知道这个例子,但有几个区别

1.-我想从向导中调用报告,所以我必须恢复选定的订单,然后,将此信息发送到报告中。

2.-我无法将自己发送到报告,因为我在向导中,而在订单树页面中则没有。

我需要收集选定的订单,然后将其发送到报告。这就是我尝试使用report_action函数的原因。但是我的问题是该函数使用的参数。

谢谢