以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  大大们 求解,查找代码,赋值时,有值部分不改变,怎么弄?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143783)

--  作者:31803263
--  发布时间:2019/12/4 13:32:00
--  大大们 求解,查找代码,赋值时,有值部分不改变,怎么弄?
"项目名称","款项摘要"列有值时,原值不改变,夏,下面代码怎么改:



If e.DataCol.Name = "冲账编号" Then

    Dim nms() As String = {"项目名称","款项摘要"}
    If e.NewValue Is Nothing Then 

        For Each nm As String In nms 

            e.DataRow(nm) = Nothing 

        Next 

    Else 

        Dim dr As DataRow 

        dr = DataTables("冲账系统").Find("[冲账编号] = \'" & e.NewValue & "\'") 

        If dr IsNot Nothing

            For Each nm As String In nms

                e.DataRow(nm) = dr(nm)

            Next

        End If

    End If

  End If 


--  作者:有点蓝
--  发布时间:2019/12/4 13:42:00
--  
            For Each nm As String In nms
if e.DataRow.isnull(nm) then
                e.DataRow(nm) = dr(nm)
end if
            Next

--  作者:31803263
--  发布时间:2019/12/4 13:49:00
--  
可以了!但是 我删除冲账编号时,项目名称和摘要的值自动删除,可以不删除吗?代码怎么改?
--  作者:有点蓝
--  发布时间:2019/12/4 13:53:00
--  
删除哪里按照同样的方式改呀!
--  作者:31803263
--  发布时间:2019/12/4 14:56:00
--  
还是不懂,大大能贴代码出来吗?
--  作者:有点蓝
--  发布时间:2019/12/4 15:23:00
--  
If e.NewValue Is Nothing Then 

        For Each nm As String In nms 

            e.DataRow(nm) = Nothing 

        Next 

    Else 

5行代码改为1行即可

If e.NewValue Isnot Nothing Then 
[此贴子已经被作者于2019/12/4 15:23:28编辑过]