Openerp 在odoo中选择员工姓名时,如何自动填写员工详细信息?

Openerp 在odoo中选择员工姓名时,如何自动填写员工详细信息?,openerp,odoo,Openerp,Odoo,在odoo中选择员工姓名时,如何获取员工的详细信息 我已经做了许多与人力资源部员工相关的字段。但我无法得到结果 .py代码 class mom_person(osv.Model): _name = 'mom.person' _columns = { 'emp_i' : fields.many2one('hr.employee','Attendees'), 'ename_id' : fields.many2one('mom.meeting','Attend Person'), 'depat':f

在odoo中选择员工姓名时,如何获取员工的详细信息

我已经做了许多与人力资源部员工相关的字段。但我无法得到结果

.py代码

class mom_person(osv.Model):
_name = 'mom.person'
_columns = { 
'emp_i' : fields.many2one('hr.employee','Attendees'),
'ename_id' : fields.many2one('mom.meeting','Attend Person'),
'depat':fields.char('Department'),
'wk_mail':fields.char('Mail'),
'wk_cnt':fields.char('Contact'),
}

def get_emp_det(self, cr, uid, ids, emp_i, context=None):
val = {}
emp_id = self.pool.get('hr.employee')
if emp_i:
for rec in emp_id.browse(cr,uid,emp_i,context=context):
val = {
'depat': rec.department_id,
'wk_mail':rec.work_email,
'wk_cnt':rec.work_phone,
}   
return val  

mom_person()
和xml代码

<tree string="Employee name" editable="bottom">
<field name="emp_i" onchange="get_emp_det(emp_i)"/>
<field name="depat"/>
<field name="wk_mail"/>
<field name="wk_cnt"/>
</tree>
/field>

/字段>

您必须更改.py文件中的OnCharage方法,请尝试执行以下操作:

def get_emp_det(self, cr, uid, ids, emp_i, context=None):
    v={}
    if emp_i:
        employee = self.pool.get('hr.employee').browse(cr, uid, emp_i, context=context)
        if employee.department_id.id:
            v['depat'] = employee.department_id and employee.department_id.id or False
        if employee.work_email:
            v['wk_mail'] = employee.work_email
        if employee.work_phone:
            v['wk_cnt'] = employee.work_phone

return {'value': v}
您可以尝试上面的更改并重新启动服务器,然后查看结果


我希望这会对您有所帮助。:)

非常感谢,但是结果没有反映意味着您无法在表单中获取数据??您也更改了xml我还没有在表单中获得详细信息更新模块并重新启动服务器,然后再次检查