2017-10-13 69 views
1

这是我在Python向导和打印操作代码:如何打印从特定日期到odoo 10中特定日期的报告?

class Paymentwizard(models.TransientModel): 
_name = 'payment.wizard' 
_description = 'Make Payment' 

date_from = fields.Date('From Date') 
date_to = fields.Date('To Date') 
employee_id = fields.Many2many('hr.employee', 'name') 


@api.multi 
def action_print(self): 
date_from = self.date_from 
date_to = self.date_to 
name = self.employee_id 

name = self.env['loan.form'].search([('date','>=',date_from), 
('date','<=',date_to),("employee_id","=",name.name)]) 

如何打印在名称字段中的记录?

,或者帮助我改进这个代码

谢谢

+0

您是否创建了报告? – jo541

+0

不,我没有创建一个报告@ jo541。 – Naveen

+0

如果你告诉我如何做python编码@ jo541 – Naveen

回答

-1
self.env.cr.execute(""" select column from loan_form where date >= '%s' and date <= '%s' and employee_id in '%s'"""%(self.date_from,self.date_to,tuple(employee_id.ids))) 
+0

我应该在哪里添加这行代码? anna puriyara maari solunga anna。 @ KLN – Naveen

+0

我给了你我以前的问题充分我的代码..怎么办 – KLN

+0

好的,你可以请修改并根据我的代码发送给我@KLN – Naveen

0

打印报表。你必须这样做。

class Paymentwizard(models.TransientModel): 
_name = 'payment.wizard' 
_description = 'Make Payment' 

date_from = fields.Date('From Date') 
date_to = fields.Date('To Date') 
employee_id = fields.Many2many('hr.employee', 'name') 
pdf = fields.Binary(string='Pdf report') 

@api.multi 
def action_print(self): 
    record_ids = self.env['loan.form'].search([('date', '>=', self.date_from), 
      ('date', '<=', self.date_to),("employee_id", "=",self.employe_id.id)]).ids 
    self.pdf = self.env['report'].get_pdf(res_ids, ['your_report_xml_id']) 

在这个例子中。在第一次,我搜索所有记录必须打印。在我用两个信息生成我的pdf后,记录将打印并显示报告的XML ID。

方法get_pdf将返回一个base64 pdf。我将它设置在二进制字段中,因为要下载PDF,用户必须点击二进制字段链接。