以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  报错截图,附代码,请帮忙看一下,  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151704)

--  作者:夜点蚊香
--  发布时间:2020/7/1 15:55:00
--  报错截图,附代码,请帮忙看一下,
图片点击可在新窗口打开查看
Select e.DataCol.Name
    Case "sys_客户类型编号"
        If e.DataRow.IsNull("sys_客户类型编号") Then
            e.DataRow("客户号") = Nothing
        Else
            Dim lb As String = e.DataRow("sys_客户类型编号")
            If e.DataRow("客户号").StartsWith(lb) = False \'如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(客户号)","sys_客户类型编号 = \'" & 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
If e.DataCol.Name = "客户类型" Then \'如果内容发生变动的是客户类型列
    If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空
        e.DataRow("sys_客户类型编号") = Nothing \'那么清空此行单价列的内容
    Else
        Dim dr As DataRow
        \'否则在产品表查找同名的产品行,将找到的行赋值给变量 dr
        dr = DataTables("客户类型").Find("[客户类型] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是 dr 不是 Nothing
            e.DataRow("sys_客户类型编号") = dr("编号")
        End If
    End If
End If

--  作者:有点蓝
--  发布时间:2020/7/1 16:11:00
--  
idx = CInt(max.Substring(max.length - 3)) + 1 \'获得最大编号的后三位顺序号,并加1