方案一:代码实现自动编号
优点:如果移植程序后,不需要重新配置
缺点:不方便
代码结构:

1、XML代码
a、建一个qhdata文件夹,新建一个xml文件'qhdata/qh_sequence.xml'
<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
        <record id="sequence_confirm_price" model="ir.sequence">
            <field name="name">任务池自动编码</field>
            <field name="code">qhfendan.pool.qh_number</field>
            <field name="prefix">QHRW%(year)s%(month)s%(day)s</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>
</odoo>- name: 序列名称
- code: 序列代码,通常为实现的模型名称
- implemetiton: 实现方式。序列有两种实现方式,一种为标准方式(Strandard),另外一种为非间断式(No gap)。两者的区别在于,标准方式允许中间断层(1,2,4,6),而非间断式即不允许断层(1,2,3,4)。非间断式的性能开销要大于标准方式。
- prefix: 前缀,即生成的序列号的前缀。
- suffix: 后缀,即生成的序列号的后缀。
- padding: 序列不包含前缀和后缀的长度。
- step: 步长,即序列号增长的长度,默认值为1。
- number_next_actual: 下一序列号数字。
-  Current Year with Century: %(year)s 
-  Current Year without Century: %(y)s 
-  Month: %(month)s 
-  Day: %(day)s 
-  Day of the Year: %(doy)s 
-  Week of the Year: %(woy)s 
-  Day of the Week (0:Monday): %(weekday)s 
-  Hour 00->24: %(h24)s 
-  Hour 00->12: %(h12)s 
-  Minute: %(min)s 
-  Second: %(sec)s 
b、__manifest__.py文件引入XML文件

2、模型文件写方法
@api.model
    def create(self, vals):
        vals['qh_number'] = self.env['ir.sequence'].next_by_code('qhfendan.pool.qh_number')
        return super(QhFenDanPool,self).create(vals)3、设置
路径:设置/技术/序号
将公司清空,否则只在选中公司有效

效果展示:

方案二:配置实现自动编号
路径:设置/技术/序号
按路径新建即可,
优点:方便
缺点:如果移植程序后,需要重新配置





















![2023年中国档案信息化发展历程、竞争格局及行业市场规模分析[图]](https://img-blog.csdnimg.cn/img_convert/1fc33ac4d7ceef06b47bff07424e9e4f.png)
