OpenErp中两个字段的简单乘法

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)

我应该使用函数字段进行这么简单的计算吗?

有没有更简单的方法来实现这一目标?

Atu*_*ind 5

功能字段将是进行此类操作的好选择.这是使用功能字段的两个字段相乘的示例代码.

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)