Foxtable(狐表)用户栏目专家坐堂 → 如何解决在不同电脑上同时录入销售单 销售单编号重复的问题?


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

主题:如何解决在不同电脑上同时录入销售单 销售单编号重复的问题?

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


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

以下是引用jswjyjf在2014-11-18 20:13:00的发言:

假如编码是根据日期算出来的,同时选的同一日期,单子都还没有保存,销售单号是一样的,如果第一个人保存了,第二个开的单子号码 会覆盖第一个人开的号码,怎么办?

 

用代码,在datacochanged事件,在编码一生成的时候,立马保存;


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


加好友 发短信
等级:三尾狐 帖子:705 积分:5411 威望:0 精华:0 注册:2014/3/15 23:14:00
  发帖心情 Post By:2014/11/18 20:24:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/11/18 20:25:00 [只看该作者]

是的,立马保存不符合实际情况

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


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

以下是引用jswjyjf在2014-11-18 20:25:00的发言:
是的,立马保存不符合实际情况

 

编号确立,就应该保存。


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


加好友 发短信
等级:三尾狐 帖子:705 积分:5411 威望:0 精华:0 注册:2014/3/15 23:14:00
  发帖心情 Post By:2014/11/18 20:47:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/11/18 20:49:00 [只看该作者]

帮忙看下这段代码 错在哪里

按钮保存重新生成 编码

Dim d As Date = Tables("销售单").current("销售日期")
            Dim y As Integer = d.Year
            Dim m As Integer = d.Month
            Dim Days As Integer = Date.DaysInMonth(y,m)
            Dim fd As Date = New Date(y,m,1) '获得该月的第一天
            Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
            Dim bh As String = "XS" &  Format(d,"yyMMdd") '生成销售单号的前6位,4位年,2位月.
     If Tables("销售单").current("销售日期").StartsWith(bh) = False '如果销售单号的前6位不符
                Dim max As String
                Dim idx As Integer
                max = DataTables("销售单").sqlCompute("Max(销售单号)","销售日期 = '" & d & "' And [_Identify] <> " & Tables("销售单").current("_Identify")) '取得当天的最大销售单号
                If max > "" Then '如果存在最大销售单号
                    idx = CInt(max.Substring(9,3)) + 1 '获得最大销售单号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
Tables("销售单").current("销售单号") = bh & "-" & Format(idx,"000")
            '    DataTables("销售单明细").ReplaceFor("销售日期",e.newvalue)
             '   DataTables("销售单明细").ReplaceFor("销售单号", Tables("销售单").current("销售单号"))
            End If
msgbox(Tables("销售单").current("销售单号"))


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


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

BeforeAddDataRow事件,加入代码

 

Dim d As Date = e.DataRow("销售日期")

Dim bh As String = "XS" &  Format(d,"yyMMdd") '生成销售单号的前6位,4位年,2位月.

Dim max As String
Dim idx As Integer
max = e.DataTable.sqlCompute("Max(销售单号)","销售日期 = '" & d & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得当天的最大销售单号
If max > "" Then '如果存在最大销售单号
    idx = CInt(max.Substring(9,3)) + 1 '获得最大销售单号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("销售单号") = bh & "-" & Format(idx,"000")


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/11/18 20:57:00 [只看该作者]

我想放在按钮里 根据日期 重新生成销售单号

 


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


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

 那你就把e.dataTable、e.Datarow换一下即可

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2014/11/18 21:01:00 [只看该作者]

多谢

 


 回到顶部
总数 37 上一页 1 2 3 4 下一页