Neo*_*oVe 0 python field function multiplication openerp
我在一个类中有两个字段,在第三个字段中我需要前面声明的两个字段的乘法结果.
例如:
_columns = {
'Item' : fields.integer('Items'),
'Fecha': fields.date('Fecha del Documento', required=True, select=True),
'Codigo Arancelario' : fields.integer('Codigo Arancelario'),
'Descripcion Arancelaria' : fields.char('Descripcion Arancelaria', size=42, required = True, translate = True),
'Especificaciones Tecnicas' : fields.char('Especificaciones Tecnicas', size=60, required = True, translate = True),
'Cantidad' : fields.float('Cantidad'), 'Unidad de Medida': fields.many2one('product.uom', 'Unidad de Medida'),
'Precio Unitario Declarado' : fields.float('Precio Unitario Declarado'), 'Moneda' : fields.many2one('res.currency', 'Moneda'),
'Valor En Divisas' : Result of the multiplication of 'Precio Unitario Declarado' * 'Cantidad',
'notas' : fields.text('Notas'),
}
Run Code Online (Sandbox Code Playgroud)
我应该使用函数字段进行这么简单的计算吗?
有没有更简单的方法来实现这一目标?
功能字段将是进行此类操作的好选择.这是使用功能字段的两个字段相乘的示例代码.
def multi_a_b(self, cr, uid, ids, name, arg, context=None):
res = {}
for record in self.browse(cr, uid, ids,context):
res[record.id] = record.field_a * record.field_b
return res
_columns = {
'field_a': fields.integer('A'),
'field_b': fields.integer('B'),
'field_c': fields.function(multi_a_b, type='integer', 'C'),
}
Run Code Online (Sandbox Code Playgroud)