2017-04-17 90 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在此先感謝 –