我需要创建与员工注册详细信息相关的表单。 我的要求是这样的...... 当用户单击“创建”按钮时,需要为emp no字段加载当前员工编号+ 1。 我需要澄清如何调用方法'_form_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>
在数据部分 openerp .py
中添加了xml答案 0 :(得分: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
同样的事情,你必须为你创建员工编号:前缀是你的序列的起点,你将是“EMP”:填充是你多长5到10或多少 希望这能帮到你