2016-10-18 11 views
1

に私はQwebのとOdoo 8で働いている状態が、私はRHモジュールで私の報告書を作成した場合、問題は条件hr_contract印刷レポートQwebのOdoo 8

がI」場合、私は、このレポートを印刷する方法でありますあなたがrender_htmlを定義する抽象モデルを作成することができ、私はあなたがあなたのレポートを印刷(またはしない)の前に特定のコードを実行したい場合は、単にlen(object.contract_job_ids) >= 2

+0

ソリューションを見つけましたか? – Zety

答えて

0

場合は、このレポートを印刷したいone2manyフィールド

_columns = { 
    'contract_job_ids': fields.one2many(
     'hr.contract.job', 
     'contract_id', 
     'Jobs', 
    ), 

を追加しましあなたの関数が一般的なodoo関数ではなくレポートを出力します。これはドキュメントで参照されています ​​

この例を見てください。

from openerp import models, fields, api, exceptions 

class YourReport(models.AbstractModel): 
_name = 'report.your_addon.report_template_id' 

@api.multi 
def render_html(self, data=None): 
    report_obj = self.env['report'] 
    report = report_obj._get_report_from_name('your_addon.report_template_id') 
    docs = self.env['your_addon.your_model'].browse(self._ids) 

    for doc in docs: 
     if not len(doc.object.contract_job_ids) >= 2: 
      raise exceptions.ValidationError("You cant run this report\nYou need more contracts!") 

    docargs = { 
     'doc_model': report.model, 
     'docs': docs, 
    } 
    return report_obj.render('your_addon.report_template_id', docargs)