以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]克隆行及关联表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92618)

--  作者:wusim
--  发布时间:2016/11/8 16:44:00
--  [求助]克隆行及关联表

[求助]克隆行及关联表? 主表名称:“1”关联表名称:“2”、“3”、“4”.

我想主表克隆行时能同时也克隆2个关联表相应的行,且克隆后的新行的生产编号在原生产编号+复件。如:“1234” ,变成“1234复件”。

[此贴子已经被作者于2016/11/8 16:47:11编辑过]

--  作者:有点蓝
--  发布时间:2016/11/8 16:48:00
--  
参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=91474
--  作者:wusim
--  发布时间:2016/11/8 21:53:00
--  

Dim r As Row = Tables("基本信息表").Current
Dim dnew As Row = Tables("基本信息表").AddNew
Dim name As String = r("出厂编号")& "-复件"
For Each c As Col In Tables("基本信息表").Cols
    If c.Name = "出厂编号" Then
        dnew(c.Name) = name
    ElseIf c.Name <> "_Identify" Then
        dnew(c.Name) = r(c.Name)
    End If
Next
Dim drs As List(Of DataRow)
drs = r.DataRow.GetChildRows("受力结构件")
Dim rc As DataRow
For Each dr As DataRow In drs
    rc = dr.Clone
    rc("出厂编号") = name
Next
drs = r.DataRow.GetChildRows("零部件")
For Each dr As DataRow In drs
    rc = dr.Clone
    rc("出厂编号") = name
Next
drs = r.DataRow.GetChildRows("安全保护装置")
For Each dr As DataRow In drs
    rc = dr.Clone
    rc("出厂编号") = name
Next

 

按下按钮时,显示错误,应该逻辑列不能克隆,怎样解决?

 


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

--  作者:有点蓝
--  发布时间:2016/11/8 22:10:00
--  
这是表达式列不能赋值

For Each c As Col In Tables("基本信息表").Cols
    If c.Name = "出厂编号" Then
        dnew(c.Name) = name
    ElseIf c.Name <> "_Identify" AndAlso c.DataCol.Expression = "" Then
        dnew(c.Name) = r(c.Name)
    End If
Next