2013-03-20 4 views
1

Мне нужно создать форму, относящуюся к деталям регистрации сотрудников. мои требования как это .. , когда пользователь нажимает кнопку «Создать», ему необходимо загрузить текущий номер сотрудника + 1 для поля emp no. Мне нужно выяснить, как вызвать метод '_form_onload()'. Значит, где место для вызова моей функции?Форма OpenERP onload

здесь теперь

def create(self, cr, uid, vals, context=None): 
    vals['register_no'] =self.pool.get('ir.sequence').get(cr, uid, 'bpl.worker') 
    worker_reg_seq = super(bpl_worker_registration, self).create(cr, uid, vals, context=context) 
    return worker_reg_seq 



<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data noupdate="1"> 
     <record id="seq_bpl_worker_registration" model="ir.sequence.type"> 
      <field name="name">bpl_worker_registration</field> 
      <field name="code">bpl.worker</field> 
     </record> 

     <record id="seq_bpl_worker_registration" model="ir.sequence"> 
      <field name="name">bpl_worker_registration</field> 
      <field name="code">bpl.worker</field> 
      <field name="prefix">BPL</field> 
      <field name="padding">5</field> 
      <field name="number_next">1</field> 
      <field name="number_increment">1</field> 
      <field name="company_id" eval="False"/> 
     </record> 
    </data> 
</openerp> 

XML добавлен в разделе данных OpenERP .py

ответ

3

Для этого вы должны создать последовательность и по умолчанию при создании затем вызвать последовательность моего кода. После создания новой записи она автоматически добавит +1.

Пример: purchase_sequence.xml положить этот xml-файл в openerp .py файл в данных.

 <record id="seq_type_purchase_order" model="ir.sequence.type"> 
      <field name="name">Purchase Order</field> 
      <field name="code">purchase.order</field> 
     </record> 
     <record id="seq_purchase_order" model="ir.sequence"> 
      <field name="name">Purchase Order</field> 
      <field name="code">purchase.order</field> 
      <field name="prefix">PO</field> 
      <field name="padding">5</field> 
      <field name="company_id" eval="False"/> 
     </record> 



def create(self, cr, uid, vals, context=None): 
    if vals.get('name','/')=='/': 
     vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'purchase.order') or '/' 
     order = super(purchase_order, self).create(cr, uid, vals, context=context) 
     return order 

Так же вы должны создать для вас номер сотрудника: префикс, что вы начальную точку последовательности для вас это будет «ЭМИ»: обивка, сколько времени вы количество ДО 5 или 10, что когда-либо Надеюсь, что это поможет вам

+0

Спасибо, друг ..работал :-) –

Смежные вопросы