2016-12-27 3 views
0

Я хочу, чтобы добавить столбец, где я вычислить сумму двух столбцов, но он здесь не работает мой кодФункция on_change не openerp8 работать

test.py:

from openerp.osv import fields, osv 
class sale_order_line(osv.osv): 
_inherit = 'account.bank.statement.line' 
_name = 'account.bank.statement.line' 
_columns = { 
'colx': fields.float(), 
'coly': fields.float(), 
} 
def onchange_result(self, cr, uid, ids, colx, amount, context=None): 
    res = {} 
    if amount and colx: 
     res['coly'] = amount + colx 
    return {'value': res} 

тест. XML

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data> 
     <record model="ir.ui.view" id="account_statement_instructor1_form_viewfzz"> 
     <field name="name">account.statement.form.viewfzz</field> 
     <field name="model">account.bank.statement</field> 
     <field name="inherit_id" ref="account.view_bank_statement_formfz"/> 
     <field name="arch" type="xml"> 
      <xpath expr="//sheet/notebook/page/field[@name='line_ids']/tree/field[@name='date']" position="after"> 
      <field name="colx" on_change="onchange_result(amount, colx)"/> 
      <field name="amount" on_change="onchange_result(amount, colx)"/> 
      <field name="coly"/> 
      </xpath> 
     </field> 
     </record></data></openerp> 

Спасибо

+0

Расскажите, пожалуйста, как этот код не работает. Какая ошибка вы получаете? –

+0

Неверный порядок параметров: в методе colx, params. Но на view - amount, colx –

+0

В любом случае, я бы предложил использовать новый API, https://www.odoo.com/documentation/8.0/reference/orm.html#onchange-updating-ui-on-the-fly, as 8.0 поддерживает их – eLBati

ответ

0

test.py

from openerp.osv import fields, osv 
class sale_order_line(osv.osv): 
_inherit = 'account.bank.statement.line' 
_name = 'account.bank.statement.line' 
_columns = { 
'colx': fields.float(), 
'coly': fields.float(), 
} 
#This method will be called when either the field CostPrice or the field ShippingCost changes. 
def on_change_price(self,cr,user,ids,colx,amount,context=None): 
#Calculate the total 
total = colx + amount 
    res = { 
     'value': { 
    #This sets the total price on the field standard_price. 
      'coly': total 
     } 
} 
#Return the values to update it in the view. 
return res 

test.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <openerp> 
    <data> 
     <record model="ir.ui.view" id="account_statement_instructor1_form_viewfzz"> 
     <field name="name">account.statement.form.viewfzz</field> 
     <field name="model">account.bank.statement</field> 
     <field name="inherit_id" ref="account.view_bank_statement_formfz"/> 
     <field name="arch" type="xml"> 
      <xpath expr="//sheet/notebook/page/field[@name='line_ids']/tree/field[@name='partner_id']" position="after"> 
      <field name="colx" on_change="on_change_price(amount,colx)" string="Montant Crédit"/> 
      <field name="coly" string="Rest"/> 
     </xpath> 
     </field> 
    </record></data></openerp> 
+0

, которая работает нормально –

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

  • Нет связанных вопросов^_^