以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  销售单编号 根据什么设计 最科学?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=60162)

--  作者:jswjyjf
--  发布时间:2014/11/19 14:15:00
--  销售单编号 根据什么设计 最科学?
销售单编号 根据什么设计 最科学?
--  作者:jswjyjf
--  发布时间:2014/11/19 14:16:00
--  
特别是在多用户下操作
--  作者:有点甜
--  发布时间:2014/11/19 14:17:00
--  
 原本的生成有问题?
--  作者:有点甜
--  发布时间:2014/11/19 14:17:00
--  

 多用户也可以啊,不是告诉过你了么。


--  作者:jswjyjf
--  发布时间:2014/11/19 14:21:00
--  
就是几个用户同时开单 销售单号 采取保存的时候重新生成一次 ,做到了不重复 ,但是碰到一个问题 ,如果修改日期了,会影响以后生成的销售单号,因为销售单号是根据日期来计算的

重新生成的代码如下
\'\'重新生成销售单号
Dim d As Date = Tables("销售单").current("销售日期")
Dim bh As String = "XS" &  Format(d,"yyMMdd") \'生成销售单号的前6位,4位年,2位月.
Dim max As String
Dim idx As Integer
max = DataTables("销售单").sqlCompute("Max(销售单号)","销售日期 = \'" & d & "\' And [_Identify] <> " & Tables("销售单").current("_Identify")) \'取得当天的最大销售单号
\'max = DataTables("销售单").sqlCompute("Max(销售单号)","销售日期 = \'" & d & "\'") \'取得当天的最大销售单号
If max > "" Then \'如果存在最大销售单号
    idx = CInt(max.Substring(9,3)) + 1 \'获得最大销售单号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
Tables("销售单").current("销售单号") = bh & "-" & Format(idx,"000")
vars("djh")=Tables("销售单").current("销售单号")
forms("销售单").Controls("Label1").text=vars("djh")
\'\'重新生成销售单号



如果有人修改了以前销售单日期,那么就会影响新保存的销售单号计算了,不修改日期 没有问题的

--  作者:有点甜
--  发布时间:2014/11/19 14:23:00
--  

 那你就不要根据销售日期生成啊。

 

 直接根据今天的日期生成。 Date.Today


--  作者:jswjyjf
--  发布时间:2014/11/19 14:28:00
--  
思路对了 多谢
--  作者:jswjyjf
--  发布时间:2014/11/19 14:40:00
--  
也不对啊 第二笔销售单号 怎么取数
--  作者:jswjyjf
--  发布时间:2014/11/19 14:41:00
--  
\'\'根据当天日期重新生成销售单号
Dim d As Date = date.today
Dim bh As String = "XS" &  Format(d,"yyMMdd") \'生成销售单号的前6位,4位年,2位月.
Dim max As String
Dim idx As Integer
max = DataTables("销售单").sqlCompute("Max(销售单号)","销售日期 = \'" & d & "\' And [_Identify] <> " & Tables("销售单").current("_Identify")) \'取得当天的最大销售单号
\'max = DataTables("销售单").sqlCompute("Max(销售单号)","销售日期 = \'" & d & "\'") \'取得当天的最大销售单号
If max > "" Then \'如果存在最大销售单号
    idx = CInt(max.Substring(9,3)) + 1 \'获得最大销售单号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
Tables("销售单").current("销售单号") = bh & "-" & Format(idx,"000")
vars("djh")=Tables("销售单").current("销售单号")
forms("销售单").Controls("Label1").text=vars("djh")
\'\'重新生成销售单号


有重复单号的


--  作者:有点甜
--  发布时间:2014/11/19 14:41:00
--  
max = DataTables("销售单").sqlCompute("Max(销售单号)","销售单号 like \'" & bh & "-%\' And [_Identify] <> " & Tables("销售单").current("_Identify")) \'取得当天的最大销售单号