2017-04-17 92 views
1

我已经创建了一个onchange函数,其目标是自动填充笔记本工作表视图上的值。Onchange已触发但未填充视图上的值字段(Odoo)

我的功能正常,但它没有填充视图上的字段。

我该怎么做才能做到这一点?

,这是我从PDB有:

enter image description here

,那就是我想要的价值,但它并没有填补视图

,这里的字段是潘岳:

@api.multi 
@api.model 
@api.onchange('employee_id') 
def onchange_lines(self): 
    import pdb;pdb.set_trace() 
    if self.employee_id: 
     check = self.env['hr.employee'].sudo().search([('id','=',self.employee_id.id)]) 
     for empy in check: 
      if empy.id: 
       res = {} 
       vals = [] 
       if not empy: 
        vals. 
        res.update({'self.job_id':'', 'self.nik':''}) 
       else: 
        vals.append({'self.job_id':empy.job_id, 'self.nik':empy.identification_id}) 
        res.update(vals) 
      return res 

这里是该领域的xml:

<!-- language: xml --> 
<notebook> 
    <page string="Employees"> 
     <field name="employee_ids"> 
      <tree string="Employees" editable="bottom"> 
       <field name="nik"/> 
       <field name="employee_id"/> 
       <field name="job_id"/> 
       <field name="ovrtm"/> 
       <field name="ttalmtp"/> 
      </tree> 
     </field> 
    </page> 
</notebook> 

回答

3

在onchange的odoo新API中,您可以直接在记录集对象中指定值。

您可以按照下面的代码。

@api.onchange('employee_id') 
def onchange_lines(self): 
    import pdb;pdb.set_trace() 
    if self.employee_id: 
     check = self.env['hr.employee'].sudo().search([('id','=',self.employee_id.id)]) 
     for empy in check: 
      if empy.id: 
       res = {} 
       vals = [] 
       if not empy: 
        self.job_id=False 
        self.nik=False 
       else: 
        self.job_id=empy.job_id 
        self.nik=empy.identification_id 

这可能对你有帮助。

+0

它的工作表示感谢,你能看到我关于域的其他问题吗?这里是链接:http://stackoverflow.com/questions/42666521/odoo-inputing-employee-based-on-department-id-one2many-domain在此先感谢 –