以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  单据编号按月排序  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=100779)

--  作者:zswushi
--  发布时间:2017/5/18 11:53:00
--  单据编号按月排序
Static bhs As new Dictionary(of String,Integer) \'这个字典用于记录每个前缀的下一序号
If  e.Path =  "bianhao.htm"
    If e.PostValues.ContainsKey("开单日期") Then
        Dim max As Integer
        Dim bh As String
        Dim prefix As String = "CK" & "-" &  Format(CDate(e.PostValues("开单日期")), "yyyyMM")
        Dim prefix1 As String = "CK" & "-" &  Format(CDate(e.PostValues("开单日期")), "yyyyMMdd")
        If bhs.ContainsKey(prefix) = False Then \'如果字典中不存在次前缀的序号,
            Dim cmd As New SQLCommand
            cmd.C
            cmd.CommandText = "Select max(出库系统编号) F rom {出库主表} Where 出库系统编号 Like \'" & prefix & "%\'"
            bh = cmd.ExecuteScalar
            If bh IsNot Nothing Then
                bh = bh.SubString(12)
                max = bh
                Integer.TryParse(bh,max)
            End If
            bhs.Add(prefix,max)
        Else
            max = bhs(prefix)
        End If
        max = max + 1
        bhs(prefix) = max
        e.WriteString(Prefix1 & "-" & Format(max,"00000"))
    End If
End If

目前代码是 按日生成 最大编号,若调成 按月生成最大编号,怎样改代码 ??  

现在代码 结果是  CK-20170517-00001、CK-20170517-00002、CK-20170517-00003,若到 下一天 18号时,又从 CK-20170518-00001、CK-20170518-00002排,

若到  18号时,我想接着 17号的最大编号 00003往下排,把18号的两个编号变成   CK-20170518-00004、CK-20170518-00005,该怎样改代码,谢谢


--  作者:有点色
--  发布时间:2017/5/18 12:13:00
--  

 代码没问题的,请重新打开重新测试。


--  作者:zswushi
--  发布时间:2017/5/18 15:35:00
--  
之前开了很多单,搞混了,可以啦,非常感谢!