以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【移动开发】销售日编号不能按照顺序递增,易乱,求解! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102998) |
||||
-- 作者:李孝春 -- 发布时间:2017/6/29 0:01:00 -- 【移动开发】销售日编号不能按照顺序递增,易乱,求解! 【移动开发】销售日编号不能按照顺序递增,易乱,求解! 此主题相关图片如下:2.png
代码如下: Static Lastbh As String \'通过这个Static变量可以访问上一次生成的编号,避免重复Compute Dim prefix As String = Format(Date.now,"yyyyMMdd") \'本次编号前缀 If Lastbh >"" AndAlso Lastbh.SubString(0,8) = prefix Then \'如果上一次生成编号的前缀和本次相同 Lastbh = prefix & "-" & Format(Cint(Lastbh.SubString(8,3)) + 1,"000") \'在上次编号的基础上递增1 Else \'取数据表中同前缀的最大编号 Dim max As String=DataTables("客户资料").sqlCompute("Max(销售日编号)","销售日编号 like \'" & prefix & "%\'") If max = "" Then \'如果不存在同前缀的编号 Lastbh = prefix & "001" \'同前缀的第一个编号 Else Lastbh = prefix & "-" & Format(CInt(max.SubString(8,3)) + 1,"000") \'在同前缀最大编号的基础上递增1 End If End If Return Lastbh |
||||
-- 作者:有点蓝 -- 发布时间:2017/6/29 8:42:00 -- If max = "" Then \'如果不存在同前缀的编号 Lastbh = prefix & "-" & "001" \'同前缀的第一个编号 Else Lastbh = prefix & "-" & Format(CInt(max.SubString(8,3)) + 1,"000") \'在同前缀最大编号的基础上递增1 End If [此贴子已经被作者于2017/6/29 8:42:26编辑过]
|
||||
-- 作者:李孝春 -- 发布时间:2017/6/29 8:55:00 -- 回复:(有点蓝)If max = "" Then '如果不存在同前缀... 有点蓝老师 这个是更正过了的 结果现在编号永远都是同样的一个编号 好纠结哦 |
||||
-- 作者:有点色 -- 发布时间:2017/6/29 9:31:00 -- If max = "" Then \'如果不存在同前缀的编号
Lastbh = prefix & "-" & "001" \'同前缀的第一个编号 Else Lastbh = prefix & "-" & Format(CInt(max.SubString(9,3)) + 1,"000") \'在同前缀最大编号的基础上递增1 End If |
||||
-- 作者:有点色 -- 发布时间:2017/6/29 9:32:00 -- If max = "" Then \'如果不存在同前缀的编号
Lastbh = prefix & "-" & "001" \'同前缀的第一个编号 Else Lastbh = prefix & "-" & Format(CInt(max.SubString(prefix.length+1,3)) + 1,"000") \'在同前缀最大编号的基础上递增1 End If |
||||
-- 作者:李孝春 -- 发布时间:2017/6/29 9:45:00 -- 回复:(有点色)If max = "" Then '如果不存在同前缀... 采用这个还是不得行,编号还是只有一个
|
||||
-- 作者:有点色 -- 发布时间:2017/6/29 10:32:00 -- Static Lastbh As String \'通过这个Static变量可以访问上一次生成的编号,避免重复Compute Dim prefix As String = Format(Date.now,"yyyyMMdd") \'本次编号前缀 If Lastbh >"" AndAlso Lastbh.SubString(0,prefix.length) = prefix Then \'如果上一次生成编号的前缀和本次相同 Lastbh = prefix & "-" & Format(Cint(Lastbh.SubString(prefix.length+1,3)) + 1,"000") \'在上次编号的基础上递增1 Else \'取数据表中同前缀的最大编号 Dim max As String=DataTables("客户资料").sqlCompute("Max(销售日编号)","销售日编号 like \'" & prefix & "%\'") If max = "" Then \'如果不存在同前缀的编号 Lastbh = prefix & "-" & "001" \'同前缀的第一个编号 Else Lastbh = prefix & "-" & Format(CInt(max.SubString(prefix.length+1,3)) + 1,"000")\'在同前缀最大编号的基础上递增1 End If End If Return Lastbh [此贴子已经被作者于2017/6/29 10:32:41编辑过]
|
||||
-- 作者:李孝春 -- 发布时间:2017/6/29 10:37:00 -- 回复:(有点色)Static Lastbh As String '通过这个S... 谢谢 !辛苦了 有点色老师 |