以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  写代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170004)

--  作者:wangglby
--  发布时间:2021/7/9 8:19:00
--  写代码

麻烦帮写代码,谢谢。

 


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


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


--  作者:有点蓝
--  发布时间:2021/7/9 8:49:00
--  
获取选中的行参考:http://www.foxtable.com/webhelp/topics/1597.htmhttp://www.foxtable.com/webhelp/topics/0447.htm
--  作者:wangglby
--  发布时间:2021/7/9 10:30:00
--  

写好了

Dim t As Table = Tables("表B")
Dim t1 As Table = Tables("表A")
If t1.BottomPosition - t1.TopPosition  = t.BottomPosition - t.TopPosition  Then   
    Dim a As Integer = t.TopPosition -t1.TopPosition
    For i As Integer = t1.TopPosition To t1.BottomPosition
        For Each dc As DataCol In DataTables("表a").datacols
            If  DataTables("表B").DataCols.Contains(dc.name) AndAlso dc.name<> "序号"  Then
                t1.Rows(i)(dc.name)= t.Rows(i+a)(dc.name)
            End If
        Next
    Next
Else
    messagebox.show("所选行数不同")
End If


--  作者:wangglby
--  发布时间:2021/7/9 11:15:00
--  
我用以上代码测试,正常,但若把窗口中的表B设置为副本,操作的时候,明明选中的行一样多,确提示选中行不同,是怎么回事?
--  作者:有点蓝
--  发布时间:2021/7/9 11:29:00
--  

Dim t As Table = Tables("表B")
改为
Dim t As Table = Tables("窗口1_table1")