我是openerp的新手,我正在尝试如何在我在其他字段中写入值时如何制作一个在字段中计算结果的代码,例如:
field1 = 5000
field2 = field1 * 5
我已经阅读了文档并尝试了编程功能,但总是会出错。
onchange
是解决您问题的方法。
这是.py方面的示例:
def onchange_field1(self, cr, uid, ids, field1, context=None):
vals = {}
if field1 > 0:
vals['field12'] = field1 * 5
return {'value': vals}
这是.xml端的示例:
<field name="field1" on_change="onchange_field1(field1)"/>
最后,经过尝试并尝试了几天,我解决了,我使用了这段代码:
def _get_salario_diario(self, cr, uid, ids, field_name, arg, context=None):
res= {}
for record in self.browse(cr, uid, ids, context=context):
res[record.id]= record.month_wage / 30
return res
_columns = {
'month_wage': fields.float('Salario Mensual Bs.', digits=(16,2)),
'diary_wage': fields.function(_get_salario_diario, method=True, type='float', string='Salario Diario Bs.', store=True),
}
def onchange_month_wage(self, cr, uid, ids, month_wage, context=None):
vals = {}
if month_wage > 0:
vals['diary_wage'] = salario_mensual / 30
return {'value': vals}
在我的xml文件中
<field name='month_wage' on_change="onchange_month_wage(month_wage)"/>
<field name='diary_wage'/>
它解决了我的问题,我的模块工作正常,我希望它可以帮助任何需要它的人。
毕竟,非常感谢你的帮助!