2016-02-29 2 views
1

У меня есть вид формы в модели sale.order. Я добавил кнопку, чтобы распечатать отчет для каждого продукта независимо в форме.Как распечатать отчет для каждого продукта самостоятельно?

Возможно ли это?

следующее изображение объясняет это выше.

Изображение: http://es.zimagez.com/zimage/formview.php

То, что я хочу, что при нажатии на кнопку, чтобы напечатать продукт, он печатает доклад этого продукта конкретно. Поэтому добавьте кнопку для каждой строки.

Это кнопка для печати метода:

<button name="print_report" string="Print Service Ticket" type="object" icon="gtk-print"/> 


    @api.multi 
    def print_report(self):  
     return self.env['report'].get_action(self, 'sale.ticket_servicio') 

И это мой вид отчета:

<report 
      id="ticket_servicio" 
      string="Ticket de Servicio" 
      model="sale.order" 
      report_type="qweb-pdf" 
      file="sale.ticket_servicio" 
      name="sale.ticket_servicio" 
/> 

Это все. Большое вам спасибо за ваше время и преданность делу. Я ценю любые советы, предложения и помощь.

+0

Я не собираюсь выполнять вашу работу за вас, но если вы добавите класс для print_report в качестве идентификатора и поместите его в цикл for, который вы используете для рендеринга строк, вы можете узнать, какая строка связана с с помощью jquery. Это должно быть все, что вам нужно –

ответ

1

Кажется, вы не делали правильный поиск в google, так как в Интернете много таких примеров. В любом случае, вы должны вернуть действие, но вы должны передать ему некоторые аргументы, такие как id/s объекта /, который вы хотите распечатать. Что-то вроде:

return { 
    'type': 'ir.actions.report.xml', 
    'report_name':'my.report.name', 
    'datas': { 
      'model':'my.model', 
      'id': ids and ids[0] or False, 
      'ids': ids and ids or [], 
     } 
} 

ноты вы можете прочитать данные по умолчанию из самого действия (это просто объект в базе данных), а затем вводить идентификаторы в словаре, вы получаете обратно.

Смежные вопросы