以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]复制  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87150)

--  作者:江南小城
--  发布时间:2016/7/4 22:16:00
--  [求助]复制
老师好
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:复制.txt


--  作者:大红袍
--  发布时间:2016/7/4 22:22:00
--  

Select Case e.DataCol.name
    Case "客户ID","客户","客户分类"
        If e.DataRow.IsNull("客户") = False AndAlso e.DataRow.IsNull("客户") = False Then          
            Dim dr As DataRow = DataTables("客户供应商数据汇总").Find("客户 = \'" & e.DataRow("客户")  & "\' and 客户分类 = \'" & e.DataRow("客户分类") & "\'")
            If dr Is Nothing Then
                dr = DataTables("客户供应商数据汇总").AddNew
                dr("客户") = e.DataRow("客户")              
                dr("客户分类") = e.DataRow("客户分类")              
            End If
            dr("客户ID") = e.DataRow("客户ID")
         
        End If
End Select


--  作者:江南小城
--  发布时间:2016/7/4 22:51:00
--  

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

--  作者:大红袍
--  发布时间:2016/7/4 23:02:00
--  
Select Case e.DataCol.name
    Case "客户ID","客户","客户分类"
        If e.DataRow.IsNull("客户") = False AndAlso e.DataRow.IsNull("客户分类") = False AndAlso e.DataRow.Isnull("客户id") = False Then
            If e.DataRow("客户分类") = "销售" OrElse e.DataRow("客户分类") = "采购" Then
                Dim dr As DataRow = DataTables("客户供应商数据汇总").Find("客户 = \'" & e.DataRow("客户")  & "\' and 客户分类 = \'" & e.DataRow("客户分类") & "\'")
                If dr Is Nothing Then
                    dr = DataTables("客户供应商数据汇总").AddNew
                    dr("客户") = e.DataRow("客户")
                    dr("客户分类") = e.DataRow("客户分类")
                End If
                dr("客户ID") = e.DataRow("客户ID")
            End If
        End If
End Select

--  作者:江南小城
--  发布时间:2016/7/6 12:47:00
--  
Select Case e.DataCol.Name
    Case "姓名"
        e.DataRow("字母") = GetPy(e.NewValue, True)  
   Case "客户供应商"
        e.DataRow("客户代码") = GetPy(e.NewValue, True)      
End Select
老师好,我重置"客户供应商"列上面代码报错。

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2016.6.13.1
错误所在事件:表,通讯录, DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
Object reference not set to an instance of an object.


[此贴子已经被作者于2016/7/6 12:50:07编辑过]

--  作者:大红袍
--  发布时间:2016/7/6 13:45:00
--  

If e.NewValue <> Nothing Then

Select Case e.DataCol.Name
    Case "姓名"
        e.DataRow("字母") = GetPy(e.NewValue, True)  
   Case "客户供应商"
        e.DataRow("客户代码") = GetPy(e.NewValue, True)      
End Select

End If


--  作者:江南小城
--  发布时间:2016/7/6 15:26:00
--  
Select e.DataCol.Name
    Case "群组分类"
        If e.DataRow.IsNull("群组分类") Then
            e.DataRow("客户ID") = Nothing
        Else
            Dim lb As String = e.DataRow("群组分类")
            Dim max As String = e.DataTable.Compute("Max(客户ID)","群组分类 = \'" & lb & "\' And 编号<> \'" & e.DataRow("编号") & "\'") \'取得该类别的最大编号
            If max > "" Then
                e.DataRow("客户ID") = GetPy(lb, True).SubString(0, 1) & format(cint(max.SubString(1))+1, "000")
            Else
                e.DataRow("客户ID") = GetPy(lb, True).SubString(0, 1) & format(1, "000")
            End If
        End If
End Select



老师,希望重置"群组分类"列"客户ID"列不发生变化或只修正错误的编号。


--  作者:狐狸爸爸
--  发布时间:2016/7/6 16:19:00
--  
Select e.DataCol.Name
    Case "群组分类"
        If e.DataRow.IsNull("群组分类") Then
            e.DataRow("客户ID") = Nothing
        Elseif e.DataRow.Isnull("客户ID") Then
            Dim lb As String = e.DataRow("群组分类")
            Dim max As String = e.DataTable.Compute("Max(客户ID)","群组分类 = \'" & lb & "\' And 编号<> \'" & e.DataRow("编号") & "\'") \'取得该类别的最大编号
            If max > "" Then
                e.DataRow("客户ID") = GetPy(lb, True).SubString(0, 1) & format(cint(max.SubString(1))+1, "000")
            Else
                e.DataRow("客户ID") = GetPy(lb, True).SubString(0, 1) & format(1, "000")
            End If
        End If
End Select

--  作者:江南小城
--  发布时间:2016/7/6 20:56:00
--  
谢谢老师