以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动编号 (http://foxtable.net/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 -- 谢谢老师! |