以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  字符合并  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194013)

--  作者:13775189031
--  发布时间:2024/11/2 10:22:00
--  字符合并
请教老师:以零部件编号为关联,A表中的A/B列内容在B表中合并成一列,如何实现

A表      列A     列B
           a        b
B表      列A
           a,b    

--  作者:有点蓝
--  发布时间:2024/11/2 10:27:00
--  

表A,datacolchanged

Select Case e.DataCol.Name
    Case
 "
列A","列B"
        
Dim dr As DataRow = e.DataRow
        
Dim pr As DataRow

            
Dim filter As String
            filter = 
"零部件编号 = \'" & dr("零部件编号") & "\'"
            pr = 
DataTables("B表").Find(filter)
            If
 pr IsNot Nothing 
Then
                pr(
"列A") = dr("列A") & "," & dr("列B")
            End
 
If

End
 Select
--  作者:13775189031
--  发布时间:2024/11/2 14:16:00
--  
请老师看下 ,下面的代码哪里有问题?
Select Case e.DataCol.name
    Case "锻件","规格"
        If e.DataRow("锻件") = False Then
            DataTables("锻铸件清单").DeleteFor("零部件编号=\'" & e.DataRow("零部件编号") & "\'")
        Else
            Dim ndr As Row = Tables("锻铸件清单").AddNew
            ndr("零部件编号") = e.DataRow("零部件编号")
            ndr("制单日期") = e.DataRow("制单日期")
            ndr("生产令号") = e.DataRow("生产令号")
            ndr("项目名称") = e.DataRow("项目名称")
            ndr("机组") = e.DataRow("机组")
            ndr("零部件名称") = e.DataRow("零部件名称")
            ndr("零部件图号") = e.DataRow("零部件图号")
            ndr("数量") = e.DataRow("数量")
            ndr("材质") = e.DataRow("材质")
            ndr("材料批次") = e.DataRow("材料批次")
            ndr("零部件标识") = e.DataRow("零部件标识")
            ndr.Move(0)
            ndr("_sortkey") = DataTables("锻铸件清单").sqlcompute("min([_sortkey])") - 0.00000001
        End If
        Dim filter As String
        Dim pr As DataRow
        filter = "零部件编号 = \'" & e.DataRow("零部件编号") & "\'"
        pr = DataTables("锻铸件清单").Find(filter)
        If e.DataRow("规格").Contains("δ") Then
            pr("下料尺寸") = e.DataRow("规格") & "×" & e.DataRow("下料尺寸")
        Else
            If e.DataRow("规格").Contains("φ") Then
                pr("下料尺寸") = e.DataRow("规格") & "," & e.DataRow("下料尺寸")
            Else
                pr("下料尺寸") = e.DataRow("规格")
            End If
        End If
End Select
[此贴子已经被作者于2024/11/2 14:17:01编辑过]

--  作者:有点蓝
--  发布时间:2024/11/2 14:43:00
--  
……
           ndr("数量") = e.DataRow("数量")
            ndr("材质") = e.DataRow("材质")
            ndr("材料批次") = e.DataRow("材料批次")
            ndr("零部件标识") = e.DataRow("零部件标识")
            ndr.Move(0)
            ndr("_sortkey") = DataTables("锻铸件清单").sqlcompute("min([_sortkey])") - 0.00000001
        If e.DataRow("规格").Contains("δ") Then
            ndr("下料尺寸") = e.DataRow("规格") & "×" & e.DataRow("下料尺寸")
        Else
            If e.DataRow("规格").Contains("φ") Then
                ndr("下料尺寸") = e.DataRow("规格") & "," & e.DataRow("下料尺寸")
            Else
                ndr("下料尺寸") = e.DataRow("规格")
            End If
        End If
        End If

End Select

--  作者:13775189031
--  发布时间:2024/11/2 16:06:00
--  
要求表A中的列“规格”、“下料尺寸”变化时,表“铸锻件清单”中列“下料尺寸”,能够自动变更,现在但表A中列“下料尺寸”变化时,表“铸锻件清单”中列“下料尺寸”不能自动变更,是哪里有问题(“规格”列变化时,“铸锻件清单”中的“下料尺寸”能够自动变更)
--  作者:有点蓝
--  发布时间:2024/11/2 16:17:00
--  
Select Case e.DataCol.name
    Case "锻件"
        If e.DataRow("锻件") = False Then
            DataTables("锻铸件清单").DeleteFor("零部件编号=\'" & e.DataRow("零部件编号") & "\'")
        Else
            Dim ndr As Row = Tables("锻铸件清单").AddNew
            ndr("零部件编号") = e.DataRow("零部件编号")
            ndr("制单日期") = e.DataRow("制单日期")
            ndr("生产令号") = e.DataRow("生产令号")
            ndr("项目名称") = e.DataRow("项目名称")
            ndr("机组") = e.DataRow("机组")
            ndr("零部件名称") = e.DataRow("零部件名称")
            ndr("零部件图号") = e.DataRow("零部件图号")
            ndr("数量") = e.DataRow("数量")
            ndr("材质") = e.DataRow("材质")
            ndr("材料批次") = e.DataRow("材料批次")
            ndr("零部件标识") = e.DataRow("零部件标识")
            ndr.Move(0)
            ndr("_sortkey") = DataTables("锻铸件清单").sqlcompute("min([_sortkey])") - 0.00000001
            If e.DataRow("规格").Contains("δ") Then
                ndr("下料尺寸") = e.DataRow("规格") & "×" & e.DataRow("下料尺寸")
            Else
                If e.DataRow("规格").Contains("φ") Then
                    ndr("下料尺寸") = e.DataRow("规格") & "," & e.DataRow("下料尺寸")
                Else
                    ndr("下料尺寸") = e.DataRow("规格")
                End If
            End If
        End If
    Case "下料尺寸", "规格"
        Dim filter As String
        Dim pr As DataRow
        filter = "零部件编号 = \'" & e.DataRow("零部件编号") & "\'"
        pr = DataTables("锻铸件清单").Find(filter)
        If pr Is Nothing Then
            pr = DataTables("锻铸件清单").SQLFind(filter)
        End If
        If pr IsNot Nothing Then
            If e.DataRow("规格").Contains("δ") Then
                pr("下料尺寸") = e.DataRow("规格") & "×" & e.DataRow("下料尺寸")
            Else
                If e.DataRow("规格").Contains("φ") Then
                    pr("下料尺寸") = e.DataRow("规格") & "," & e.DataRow("下料尺寸")
                Else
                    pr("下料尺寸") = e.DataRow("规格")
                End If
            End If
            pr.save
        End If
End Select

--  作者:13775189031
--  发布时间:2024/11/4 13:08:00
--  
谢谢