2013-05-30 5 views
1

웹킷 보고서에서 amount_to_text 함수를 사용하여 알고있는 모든 것을 시도했지만 어디에도 없습니다. 나는 모듈을 작성하는 수표를보고 최대한 많은 것을 복제했지만 여전히 결과가 없다. 나는 rml 대신에 Webkit을 사용하고 있는데, 동일한 코드가 6.1에서 잘 작동하기 때문에 이것이 v7에서 차이가 나는지 확실하지 않습니다. 어떤 도움을 대단히 이것은 평 파일의 코드openerp 7 웹킷 보고서에서 "TypeError : '정의되지 않은'객체를 호출 할 수 없습니다. '라는 오류를 수정하려면 어떻게합니까?

을 감상 할 수있다 :

import time 
from report import report_sxw 
from osv import osv  
from openerp.osv import osv,fields 
from openerp.tools.translate import _ 
from openerp.tools.amount_to_text_en import amount_to_text 

class tax_receipt(report_sxw.rml_parse): 
    def __init__(self, cr, uid, name, context): 
     super(tax_receipt, self).__init__(cr, uid, name, context=context) 
     self.localcontext.update({ 
      'time': time, 
      'cr':cr, 
      'uid': uid, 
      'amount_to_text': amount_to_text, 
     }) 

report_sxw.report_sxw('report.tax.receipt', 
         'account.bank.statement.line', 
         'addons/account_financial_report_webkit/report/webkit_html_bank_statement.mako', 
         parser=tax_receipt) 

# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: 

마코 파일에서 발췌 한 다음과 같습니다

<table width="95%" cellpadding="5px" cellpadding="5px"> 
    <tbody> 
     <tr style="text-align:left;border-bottom:1px solid;"> 
     <td width="10%">The sum of </td> 
     <td width="80%" style="text-align:left;border-bottom:1px solid;">**${ amount_to_text(inv.amount) }**</td> 
     </tr> 
    </tbody> 
</table> 

나는를 생성 할 신고 : 수신 :

Traceback (most recent call last): 
File "C:\Program Files (x86)\OpenERP 7.0\Server\server\openerp\addons\report_webkit\webkit_report.py", line 266, in create_single_pdf 

File "mako\template.pyc", line 302, in render 

File "mako\runtime.pyc", line 660, in _render 

File "mako\runtime.pyc", line 692, in _render_context 

File "mako\runtime.pyc", line 718, in _exec_template 

File "memory:0x4a2d6d0", line 78, in render_body 
<td width="80%" style="text-align:left;border-bottom:1px solid;">${ amount_to_text(inv.amount) }</td> 
TypeError: 'Undefined' object is not callable 

감사합니다.

답변

1

당신 평 파서 모듈에서 제대로 수입되어 있는지 확인합니다, 즉 유 amount_to_text 기능에 대한 기능 defenition이 어디 확실하지 않다 초기화

### __init__.py file### 

import your_parser 
1

입니다. openerp 7에서는이 방법으로 지정해야합니다.

class tax_receipt(report_sxw.rml_parse): 
    def __init__(self, cr, uid, name, context): 
     super(tax_receipt, self).__init__(cr, uid, name, context=context) 
     self.localcontext.update({ 
      'time': time, 
      'cr':cr, 
      'uid': uid, 
      'amount_to_text': self._amount_to_text, 
     }) 
def _amount_to_text(self): 
     res_users_obj = pooler.get_pool(self.cr.dbname).get('res.users') 
     company_vat = res_users_obj.browse(self.cr, self.uid, self.uid).company_id.partner_id.vat 
     return company_vat 

그리고 보고서에 당신은 당신이했습니다

<% res_text = amount_to_text(inv.amount) %> 

사용하고

${res_text} 

를 인쇄하려면 변수에 저장하려면이

<table width="95%" cellpadding="5px" cellpadding="5px"> 
    <tbody> 
     <tr style="text-align:left;border-bottom:1px solid;"> 
     <td width="10%">The sum of </td> 
     <td width="80%" style="text-align:left;border-bottom:1px solid;">${amount_to_text(inv.amount)} </td> 
     </tr> 
    </tbody> 
</table> 

을 사용했습니다 샘플을 보려면 sales_order_webkit 모듈을보십시오. 그리고 설명을 위해 되돌립니다. 행운을 빕니다!!