以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动编号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=94614)

--  作者:lk15502
--  发布时间:2016/12/27 23:14:00
--  自动编号
在订单表的datacolchanged写入自动编号的代码,某一天产生第一个编号是正常的,只有这一天产生第二个编号,就生成不了:该编号已存在!,不知道是什么原因?请老师看看下面的代码:
查了很久了,找不到原因。
Select Case e.DataCol.Name
    Case "订单日期","销售人员"
        If e.DataRow.IsNull("订单日期") = True OrElse e.DataRow.Isnull("销售人员") = True Then
            e.DataRow("订单编号") = Nothing
        Else
            Dim lb As String = "HD" & getpy(e.DataRow("销售人员"),True) & Format(e.DataRow("订单日期"),"yyMMdd")
            If e.DataRow("订单编号").StartsWith(lb) = False Then \'如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.SQLCompute("Max(订单编号)","订单编号 like \'lb%\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号            
               If max > "" Then \'如果存在最大编号
                    idx = CInt(max.SubString(lb.length,2)) +1 \'获得最大编号的后两位顺序号,并加1
                Else
                    idx = 1 \'否则顺序号等于1
                End If
                e.DataRow("订单编号") = lb & Format(idx,"00")
                e.DataRow.Save
            End If
        End If
End Select

--  作者:有点蓝
--  发布时间:2016/12/28 8:31:00
--  
max = e.DataTable.SQLCompute("Max(订单编号)","订单编号 like \'" & lb & "%\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号


--  作者:lk15502
--  发布时间:2016/12/28 9:28:00
--  
谢谢老师!