以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  复制行时如果连子表的所有行一起复制?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=27098)

--  作者:zpx_2012
--  发布时间:2012/12/21 17:35:00
--  复制行时如果连子表的所有行一起复制?

各位老师,

 

我在菜单上设计了一个复制新增的按钮,目的是想实现,复制当前选中的行,但当其有子关联表(明细表)时,复制出来的行下面同时也产生一张新的明细表。(因为这个按钮是通用的,所有有时的行也没有子关联表)如下图

 

 
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20121221172758.jpg
图片点击可在新窗口打开查看

 

因为编号列是不允许重复的,所以复制时自动将产生的新行的编号为“旧编号-2”,以方便产生新的关联明细表,生成后用户再自行修改这个编号就可以。

 

这个复制新增按钮的代码要怎么写?

 

谢谢!


 


--  作者:lin_hailun
--  发布时间:2012/12/21 18:05:00
--  
 大致这样,没测试。

Dim s_r As Row = CurrentTable.Current
CurrentTable.Current.Clone
Dim d_r As Row = CurrentTable.Current
d_r("编号") = s_r("编号") & "-xxx"

For Each re As Relation In Relations
    If CurrentTable.Name = re.ParentTable.Name Then   \'是父表
        For Each dr As DataRow = r.DataRow.GetChildRows(re.ChildTable.Name)
            For Each r As Row In Tables(re.ChildTable.Name).Rows
                For Each c As Col In Tables(re.ChildTable.Name).Cols   \'拷贝一行数据
                    If c.Name = re.ChildColumn.Name Then
                        r(c.Name) = d_r("编号")
                    Else
                        r(c.Name) = dr(c.Name)
                    End If
                Next
            Next
        Next
    End If
Next

--  作者:outes
--  发布时间:2012/12/21 20:26:00
--  

这个好,可以复制BOM表


--  作者:zpx_2012
--  发布时间:2012/12/21 23:47:00
--  
谢谢,应该可以了,研究一下不懂请再请教林总了。