以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教纠正一下代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122944)

--  作者:xusuyang
--  发布时间:2018/8/5 11:10:00
--  请教纠正一下代码

Select Case e.DataCol.Name

    Case "客户详细信息_客户编码"

        If e.DataRow.IsNull("客户详细信息_客户编码") Then

            e.DataRow("客户详细信息_客户编码序号") = Nothing

        Else

            Dim lb As String = GetPinYin(e.DataRow("客户详细信息_客户编码"), 1).ToUpper()

            If e.DataRow("客户详细信息_客户编码序号").StartsWith(lb) = False \'如果单据编号前缀不符

                Dim max As String

                Dim idx As Integer

                max = e.DataTable.Compute("Max(客户详细信息_客户编码序号)"," 客户详细信息_客户编码 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号

                If max > "" Then \'如果存在最大编号

                    idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的后三位顺序号,并加1

                Else

                    idx = 1 \'否则顺序号等于1

                End If

                e.DataRow("客户详细信息_客户编码序号") = lb & "-" & Format(idx,"000")

            End If

        End If

End Select

 

如果客户详细信息_客户编码出现多次,例如:出现了四次四川省、四川省、四川省、四川省等,如何实现客户详细信息_客户编码序号自动编码分别为:四川省-001、四川省-002、四川省-003、四川省-004SCS-001SCS-002SCS-003SCS-004?刚才的纠正没有实现,请再纠正一下,谢谢!!
--  作者:有点甜
--  发布时间:2018/8/5 21:16:00
--  

idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的后三位顺序号,并加1

 

改成

 

idx = CInt(max.Substring(lb.length+1,3)) + 1 \'获得最大编号的后三位顺序号,并加1