找回密码
 立即注册

QQ登录

只需一步,快速开始

gddsb

初级会员

18

主题

61

帖子

257

积分

初级会员

积分
257
gddsb
初级会员   /  发表于:2020-3-26 15:20  /   查看:5052  /  回复:6
本帖最后由 gddsb 于 2020-3-26 15:21 编辑

系统里面的自动编号很多时候满足不了我们的个性化需求,经摸索通过函数与OData结命可以设置出自己需要的任意规则编码格式,方式如下:1、选项用文本函数将固定字符和年月动态进行组合,代码如下:
=CONCATENATE("JFBZ-",YEAR(TODAY()),TEXT(MONTH(TODAY()),"00"),"-")
显示的结果为JFBZ-202003-
image.png70787352.png


2、调用OData进行查询,查询选择行数,然后+1,再对记录数量进行文本位数格式化,代码如下:
=TEXT(ODATA("交付标准登记表/$count?$filter=contains(文件编号,"&IF(ISBLANK(AK1),"null","'"&AK1&"'")&")")+1,"000")
无记录显示结果为001
image.png598477172.png

3、通过文本组合代码将上述两部分的代码进行组合,代码如下:
=CONCATENATE(AK1,AK2)
最终显示结果为JFBZ-202003-001
以上分步进行,如果要将单元格赋值,那么最好就是能一行代码直接输入在命令里面,代码组合起来如下:
=CONCATENATE(CONCATENATE("JFBZ-",YEAR(TODAY()),TEXT(MONTH(TODAY()),"00"),"-"),TEXT(ODATA("交付标准登记表/$count?$filter=contains(文件编号,"&IF(ISBLANK(AK1),"null","'"&CONCATENATE("JFBZ-",YEAR(TODAY()),TEXT(MONTH(TODAY
image.png705549926.png

直接将代码写入赋值命令

各个步骤最终显示的结果如下
image.png940209655.png

评分

参与人数 1金币 +666 收起 理由
Simon.hu + 666 很给力!

查看全部评分

6 个回复

倒序浏览
1818himis悬赏达人认证 活字格认证
高级会员   /  发表于:2020-3-27 21:18:44
沙发
猜测,如果三月份是两条记录,最后一个编号是JFBZ-202003-002
那么到四月份第一个记录就是JFBZ-202004-003
这个好像跟我们想象的逐月流水号不一样吧
回复 使用道具 举报
gddsb
初级会员   /  发表于:2020-3-30 16:49:54
板凳
1818himis 发表于 2020-3-27 21:18
猜测,如果三月份是两条记录,最后一个编号是JFBZ-202003-002
那么到四月份第一个记录就是JFBZ-202004-003 ...

查询的千缀是以字符+年+月(JFBZ-202003-)的条件进行,将4月份的时候查询的是JFBZ-202004-这个字符串,表中记录数为0,这样系统就会重新从001开始进行。
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-3-30 18:59:11
地板
回复 使用道具 举报
linshlin
注册会员   /  发表于:2021-2-10 18:03:57
5#
这个很给力,如是一个出入库表中直接根据出库还是入库可以将出库单号(入库单号)可以连续了
回复 使用道具 举报
sonic
注册会员   /  发表于:2021-2-24 08:33:13
6#
很不错的思路
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-2-25 17:50:13
7#
只要脑洞够大,什么都有可能~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部