2017-10-13 13 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']) 

この例では、初めて、私はすべてのレコードが印刷されている必要があります検索します。私は2つの情報を持つ私のpdfを生成した後、レコードは印刷され、レポートのXML IDが表示されます。

get_pdfメソッドは、base64 pdfを返します。 pdfをダウンロードするには、バイナリフィールドリンクをクリックする必要があるので、バイナリフィールドに設定します。

関連する問題