如何在填报时生成流水号

遇到一个问题,如何在填报的时候根据填报内容生成一个流水号,之前的数据来源是4行的纸质文件(内容数不定 1~4均有),需要录入数据库,样式大致如下,每张都有一个地区码,然后要填的就是流水号,格式是:三位地区码+HTT+流水号


现在在用Excel+VBA来生成流水号,统计已有的三字码,+1生成一个流水号 

如何在填报地区的时候生成这样的流水号,并且显示出来



FineReport chang_chiwei 发布于 2019-10-18 14:13
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
wd210010Lv7高级互助
发布于2019-10-18 14:18(编辑于 2019-10-18 14:25)

地区会重复么  不会重复的话 地区为主键 一个地区为一个流水号  加一个地区就数据库最大值+1就好了 

写个数据集ds1

SELECT 

right(max(流水号字段),3) as max

FROM 

然后流水号写单元格写公式

CONCATENATE("地区码","HTT",FORMAT(ds1.select(max)+1  , "000"))


  • chang_chiwei chang_chiwei(提问者) 嗯嗯 这个地区会重复,而且新录入一个地区码,相当于地区起始是null,就无法获取流水号后三位了
    2019-10-19 01:03 
  • wd210010 wd210010 回复 chang_chiwei(提问者) 按照我给你的方案可以实现的啊
    2019-10-20 08:39 
最佳回答
0
firegunzxLv6高级互助
发布于2019-10-18 14:21(编辑于 2019-10-18 14:22)

用公式就行

CONCATENATE(地区码, right(CONCATENATE("00", seq()), 3))


下面是我的例子,ID规则是SO开头+8位日期+4位流水

在A1单元格用sql取出当前日期的ID最大值,

然后在N2单元格里填入公式=seq()计算出序号,

然后在ID单元格里填入下面的公式

=if(len(A1)==0,"SO" + format(today(), "yyyyMMdd")+right(CONCATENATE("000", N2), 4),left(A1,10)+right(CONCATENATE("000", TOINTEGER(right(O1,4))+N2), 4))


  • 3关注人数
  • 1106浏览人数
  • 最后回答于:2019-10-18 14:25
    请选择关闭问题的原因
    确定 取消
    返回顶部