Foxtable(狐表)用户栏目专家坐堂 → 自动编号没变号


  共有4452人关注过本帖树形打印复制链接

主题:自动编号没变号

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/31 15:21:00 [显示全部帖子]

学会调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm


Dim bh As String =  "CGDD-" & Format(Date.Today(),"yyyyMMdd")
Dim flt = "采购单号 like '" & bh & "%'"
Dim max = e.DataTable.Compute("Max(采购单号)",flt) 
msgbox(max) '这里显示什么?
Dim idx As Integer
If max > "" Then '如果存在最大单据编号
    idx = CInt(max.Substring(bh.Length,4)) + 1 
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("采购单号") = bh & Format(idx,"-0000")

如果考虑并发,就需要有一个统一的地方来取编号,才不会导致编号重复,如果使用服务端的方式处理,参考:http://www.foxtable.com/webhelp/topics/3008.htm,如果使用存储过程处理,可以看看:http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=61848&replyID=&skin=1

至于断号重用,需要添加一个断号表,把被删除的编号记录下来,在生成编号的时候,先到这个表查询获取最早的编号,如果没有再按照上面1/2的方法生成新的编号

 回到顶部