以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动复制行问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126015)

--  作者:lmao
--  发布时间:2018/10/12 10:01:00
--  [求助]自动复制行问题
老师,

自动复制行

假定表A有个逻辑列,希望在某行选中此逻辑列时,自动将此行复制到表B。

为此可以将表A的DataColChanged事件代码设置为:

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
     Dim dr As DataRow = DataTables("表B").AddNew
     
For Each dc As DataCol In DataTables("B").DataCols
         dr(dc.Name) = e.DataRow(dc.Name)
     
Next
End
 If


我对逻辑列做了一个确认按钮,如果重复按会出现复制行的重复,还会出现空行,如何解决这问题,请老师帮助.


谢谢!


--  作者:有点甜
--  发布时间:2018/10/12 10:13:00
--  

参考这里

 

http://www.foxtable.com/webhelp/scr/2490.htm

 


--  作者:lmao
--  发布时间:2018/10/12 22:10:00
--  
老师好,

我是新手,对于复制行的重复和空行的复制不会处理,希望老师给于代码帮助.

--  作者:有点蓝
--  发布时间:2018/10/12 22:15:00
--  
If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim dr As DataRow = DataTables("表B").Find("编号 = \'" & e.DataRow("编号") & "\'")
    If dr Is Nothing Then
        dr = DataTables("表B").AddNew
    End If

    For Each dc As DataCol In DataTables("表B").DataCols
        dr(dc.Name) = e.DataRow(dc.Name)
    Next
End If

--  作者:lmao
--  发布时间:2018/10/12 22:52:00
--  
谢谢老师,

可以了,但是还有一个美中不足,会复制空行.

--  作者:有点蓝
--  发布时间:2018/10/12 22:57:00
--  
If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True andalso  e.DataRow.isnull("编号") = false Then
--  作者:lmao
--  发布时间:2018/10/12 23:10:00
--  
非常感谢老师,ok了.