以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]客户编号  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130066)

--  作者:江南小镇
--  发布时间:2019/1/11 23:23:00
--  [求助]客户编号
老师有要麻烦你了。我想把下面的代码改成能像剪切图片中显示的格式一样。


图片点击可在新窗口打开查看此主题相关图片如下:image 3.png
图片点击可在新窗口打开查看


Select e.DataCol.Name
    Case "群组分类","客户供应商","企业信息_税号"
        If e.DataRow.IsNull("群组分类") OrElse e.DataRow.Isnull("客户供应商") OrElse e.DataRow.Isnull("企业信息_税号") Then
            e.DataRow("客户ID") = Nothing
        Else
            \' Dim lb As String = getpy(e.DataRow("商品名称")) & "-" & e.DataRow("型号") & "-" & e.DataRow("规格") & "-"
            Dim lb As String = getpy(e.DataRow("群组分类"), True).toupper & "-" & e.DataRow("客户供应商") & "-" & e.DataRow("企业信息_税号") & "-"
            Dim max As String = e.DataTable.Compute("Max(客户ID)","客户id like \'" & lb & "%\' And _Identify<> \'" & e.DataRow("_Identify") & "\'") \'取得该类别的最大编号
            Dim idx = 1
            If max > "" Then
                idx = cint(max.SubString(lb.length))+1
            End If
            e.DataRow("客户ID") = lb & format(idx, "00")
        End If
End Select

--  作者:有点蓝
--  发布时间:2019/1/12 9:52:00
--  
Select e.DataCol.Name
    Case "群组分类","客户供应商","企业信息_税号"
        If e.DataRow.IsNull("群组分类") OrElse e.DataRow.Isnull("客户供应商") OrElse e.DataRow.Isnull("企业信息_税号") Then
            e.DataRow("客户ID") = Nothing
        Else
            Dim xz As String = getpy(e.DataRow("群组分类"), True).toupper().PadRight(4,"A")
            Dim gys As String = e.DataRow("客户供应商").toupper()
            If gys.Length > 3 Then gys = gys.Substring(0,4)
            Dim sh As String = e.DataRow("企业信息_税号")
            If sh.Length > 3 Then sh = sh.SubString(sh.Length - 4)
            Dim lb As String = xz & "-" & gys & "-" & sh & "-"
            Dim max As String = e.DataTable.Compute("Max(客户ID)","客户id like \'" & lb & "%\' And _Identify <> " & e.DataRow("_Identify") ) \'取得该类别的最大编号
            Dim idx = 1
            If max > "" Then
                idx = cint(max.SubString(lb.length))+1
            End If
            e.DataRow("客户ID") = lb & format(idx, "000")
        End If
End Select

--  作者:江南小镇
--  发布时间:2019/1/12 18:39:00
--  

 首先谢谢老师

 

 


图片点击可在新窗口打开查看此主题相关图片如下:image 2.png
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编号设置.table


--  作者:有点甜
--  发布时间:2019/1/13 22:27:00
--  
Select e.DataCol.Name
    Case "群组分类","客户供应商","企业税号"
        If e.DataRow.IsNull("群组分类") OrElse e.DataRow.Isnull("客户供应商") OrElse e.DataRow.Isnull("企业税号") Then
            e.DataRow("客户ID") = Nothing
        Else
            Dim xz As String = getpy(e.DataRow("群组分类"), True).toupper().PadRight(4,"A")
            Dim gys As String = e.DataRow("客户供应商").toupper()
            If gys.Length > 3 Then gys = gys.Substring(0,4)
            Dim sh As String = e.DataRow("企业税号")
            If sh.Length > 3 Then sh = sh.SubString(sh.Length - 4)
            Dim lb As String = xz & "-" & getpinyin(gys,1).Toupper & "-" & sh & "-"
            Dim max As String = e.DataTable.Compute("Max(客户ID)","群组分类 = \'" & e.DataRow("群组分类") & "\' And _Identify <> " & e.DataRow("_Identify") ) \'取得该类别的最大编号
            Dim idx = 1
            If max > "" Then
                idx = cint(max.SubString(lb.length))+1
            End If
            e.DataRow("客户ID") = lb & format(idx, "000")
        End If
End Select

--  作者:江南小镇
--  发布时间:2019/1/14 18:47:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:image 2.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/1/14 20:31:00
--  
Dim max As String = e.DataTable.Compute("Max(客户ID)","群组分类 = \'" & e.DataRow("群组分类") & "\' And _Identify <> " & e.DataRow("_Identify") ) 

改为

 Dim max As String = e.DataTable.Compute("Max(客户ID)","客户ID like \'" & xz & "%\' And _Identify <> " & e.DataRow("_Identify") ) 

--  作者:江南小镇
--  发布时间:2019/1/14 21:05:00
--  
老师,每重置群组分类列客户ID列会扩大编号。
--  作者:有点蓝
--  发布时间:2019/1/14 21:35:00
--  
Select e.DataCol.Name
    Case "群组分类","客户供应商","企业税号"
        If e.DataRow.IsNull("群组分类") OrElse e.DataRow.Isnull("客户供应商") OrElse e.DataRow.Isnull("企业税号") Then
            e.DataRow("客户ID") = Nothing
        Else
            Dim xz As String = getpy(e.DataRow("群组分类"), True).toupper().PadRight(4,"A")
            Dim gys As String = e.DataRow("客户供应商").toupper()
            If gys.Length > 3 Then gys = gys.Substring(0,4)
            Dim sh As String = e.DataRow("企业税号")
            If sh.Length > 3 Then sh = sh.SubString(sh.Length - 4)
            Dim lb As String = xz & "-" & getpinyin(gys,1).Toupper & "-" & sh & "-"
            If e.DataRow("客户ID").StartsWith(lb) = False
                Dim max As String = e.DataTable.SQLCompute("Max(Right(客户ID,3))","客户ID like \'" & xz & "%\' And [_Identify] <> " & e.DataRow("_Identify") ) \'取得该类别的最大编号
                Dim idx = 1
                If max > "" Then
                    idx = cint(max.SubString(max.length - 3))+1
                End If
                e.DataRow("客户ID") = lb & format(idx, "000")
                e.DataRow.save
            End If
        End If
End Select

--  作者:江南小镇
--  发布时间:2019/1/14 21:54:00
--  
老师,假如我把客户ID列的数据删除然后重置群组分类列此时客户ID列的数据还是会扩展。
--  作者:有点蓝
--  发布时间:2019/1/14 22:00:00
--  
数据删除后先保存再重置列