Function 带按钮对象的OpenERP自定义模块

Function 带按钮对象的OpenERP自定义模块,function,openerp,Function,Openerp,我已经用下面的.py文件创建了一个自定义模块I openerp。请帮助我添加第一个和第二个,以获得第三个使用按钮对象点击功能 from osv import osv from osv import fields class test_base(osv.osv): _name='test.base' _columns={ 'first':fields.integer('First No:'), 'second':fields.

我已经用下面的.py文件创建了一个自定义模块I openerp。请帮助我添加第一个和第二个,以获得第三个使用按钮对象点击功能

from osv import osv

from osv import fields

class test_base(osv.osv):
    _name='test.base'
    _columns={


            'first':fields.integer('First No:'),
            'second':fields.integer('Second No:'),
            'third':fields.integer('Third No:'),    
             }

def get_sum(self, cr, uid, ids,context=None):

     #  please add code here to get sum of 'first' and 'second' and assign to variable 'sum'

    return {'value':{'third': sum }}



test_base()
xml


对于你的代码,你可以做一件事

 def get_sum(self, cr, uid, ids,context=None):

    #  please add code here to get sum of 'first' and 'second' and assign to variable 'sum'
    sum = 0.0
    for data in self.browse(cr, uid, ids, context=context):
       sum += data.first + data.second
    self.write(cr, uid, ids, {'third': sum}
    return True
或者,您可以将第三个字段设置为函数字段,无需单击按钮即可直接获取值

_列={ 'first':fields.integer('first No:'), 'second':fields.integer('second No:'), “第三”:fields.function(_sum,type=“float”,store=True) }

您不能在button clicl事件中使用此类型returnreturn{'value':{'third':sum},它只在onchange方法中工作,就像您在fiels second上设置onchange一样,所以当您输入值并按tab键时,它会在第三个字段中更改火集值


希望这些帮助

非常感谢您提供完整的信息。我想明确地使用按钮点击事件。再次感谢您的快速响应。在末尾添加括号并执行。它工作得很好。写(cr,uid,ID,{'third':sum})一个关于这个的快速子问题。。。。当记录未处于可编辑模式时,我们是否可以禁用此按钮。现在,当记录未处于可编辑模式时,此按钮处于启用状态。您可以在此处使用类。当可编辑时,此按钮将启用。再次感谢!。我添加了class=“oe\u link oe\u edit\u only”,它工作正常。然而,我遇到了另一个问题,在按钮更改为链接(以前的按钮现在被显示),相同的按钮并没有显示,而是显示链接。
 def get_sum(self, cr, uid, ids,context=None):

    #  please add code here to get sum of 'first' and 'second' and assign to variable 'sum'
    sum = 0.0
    for data in self.browse(cr, uid, ids, context=context):
       sum += data.first + data.second
    self.write(cr, uid, ids, {'third': sum}
    return True
def get_sum(self, cr, uid, ids,context=None):
        res = {}
        #  please add code here to get sum of 'first' and 'second' and assign to variable 'sum'
        sum = 0.0
        for data in self.browse(cr, uid, ids, context=context):
           sum += data.first + data.second
        res[data.id] = sum
        return res