Foxtable(狐表)用户栏目专家坐堂 → 关于出现重复流水号的问题


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

主题:关于出现重复流水号的问题

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


加好友 发短信
等级:小狐 帖子:319 积分:2500 威望:0 精华:0 注册:2012/5/19 22:40:00
关于出现重复流水号的问题  发帖心情 Post By:2014/10/27 22:22:00 [只看该作者]

前面已经完成了自动生成监造流水号的代码,可是我突然发现存在问题,就是在两个人同时操作时,会出现重号,如图所示的“201501001”

此主题相关图片如下:图.bmp
按此在新窗口浏览图片
代码如下:

监造基本信息表_DataRowAdding

 

Dim bh As String = "CI" & Format(Date.Today, "yyyyMM")

Dim max As String = e.DataTable.Compute("max(监造流水号)", "监造流水号 like '" & bh & "%'")

Dim idx As Integer = 1

If max > "" Then

    idx = Cint(max.SubString(bh.Length)) + 1

Else

    idx = 1

End If

e.DataRow("监造流水号") = bh & format(idx, "000")


不知该如何完善啊?请高手指点!





 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/27 22:33:00 [只看该作者]

 DataRowAdding事件

 

Dim bh As String = "CI" & Format(Date.Today, "yyyyMM")
Dim max As String = e.DataTable.sqlCompute("max(监造流水号)", "监造流水号 like '" & bh & "%'")

Dim idx As Integer = 1
If max > "" Then
    idx = Cint(max.SubString(bh.Length)) + 1
Else
    idx = 1
End If

e.DataRow("监造流水号") = bh & format(idx, "000")

 

 

 DataRowAdded 事件

 

e.DataRow.Save


 回到顶部
帅哥哟,离线,有人找我吗?
audience68
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:319 积分:2500 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/27 22:52:00 [只看该作者]

谢谢甜版了,问题解决,流水号不会重复了,本来我毫无头绪,看了你的代码,我理解一些,就是在每次系统生成一条流水号后马上进行保存,而每次增加一个流水号时都要再更新一次数据表。

就是这样无法保证流水号是顺序的好,出现了断号,因为多人使用时,有人可以可能会把已经生成的流水号再删除。不过这个问题不影响我表的使用,紧紧不美观而以。

 回到顶部