以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  增加行问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120651)

--  作者:13775189031
--  发布时间:2018/6/21 11:11:00
--  增加行问题
Select Case e.DataCol.name
    Case "焊缝编号"
        If e.DataRow.IsNull("焊缝编号") Then
            DataTables("组装件详单及尺寸要求").DeleteFor("零部件编号=\'" & e.DataRow("零部件编号") & "\'")
        Else
            Dim ndr1 As DataRow = DataTables("组装件详单及尺寸要求").Find("零部件编号 = \'" & e.DataRow("零部件编号") & "\'")
            If ndr1 Is Nothing Then
                For i As Integer = 1 To e.DataRow("数量")
                    Dim ndr As DataRow = DataTables("组装件详单及尺寸要求").AddNew
                    ndr("零部件编号") = e.DataRow("零部件编号")
                    ndr("数量") = "1"
                Next
            End If
        End If
End Select

在“焊接部件清单”表事件中编码
焊缝编号不为空时“组装件详单及尺寸要求”中自动增加行
焊缝编号为空时“组装件详单及尺寸要求”中自动删除行

现在的问题:
“焊接部件清单”中整行删除后,即“零部件编号”都删除了,但“组装件详单及尺寸要求”中无法自动删除行
该怎么改?




--  作者:有点甜
--  发布时间:2018/6/21 11:15:00
--  

去编写datarowdeleting事件

 

DataTables("组装件详单及尺寸要求").DeleteFor("零部件编号=\'" & e.DataRow("零部件编号") & "\'")


--  作者:13775189031
--  发布时间:2018/6/21 13:04:00
--  
Select Case e.DataCol.name
    Case "焊接方法"
        If e.DataRow.IsNull("焊接方法") Then
            DataTables("焊接明细表").DeleteFor("零部件编号 = \'" & e.DataRow("零部件编号") & "\'")
        Else
            Dim ndr2 As DataRow = DataTables("焊接明细表").Find("零部件编号 = \'" & e.DataRow("零部件编号") & "\' And 焊缝编号 = \'" & e.DataRow("焊缝编号") & "\' And 工艺卡号 = \'" & e.DataRow("工艺卡号") & "\'And 焊接方法 = \'" & e.DataRow("焊接方法") & "\'")
            If ndr2 Is Nothing Then
                For i As Integer = 1 To e.DataRow("数量")
                    Dim ndr As DataRow = DataTables("焊接明细表").AddNew
                    ndr("零部件编号") = e.DataRow("零部件编号")
                    ndr("母材材质_部件1") = e.DataRow("母材材质_部件1")
                    ndr("母材材质_部件2") = e.DataRow("母材材质_部件2")
                    ndr("焊缝编号") = e.DataRow("焊缝编号")
                    ndr("工艺卡号") = e.DataRow("工艺卡号")
                    ndr("焊接方法") = e.DataRow("焊接方法")
                    ndr("数量") = "1"
                Next
            End If
        End If
End Select

修改“焊接方法”后,原来生成的行不会自动删除,怎么改?

--  作者:有点甜
--  发布时间:2018/6/21 14:27:00
--  

Select Case e.DataCol.name
    Case "焊接方法"
        DataTables("焊接明细表").DeleteFor("零部件编号 = \'" & e.DataRow("零部件编号") & "\'")
        Dim ndr2 As DataRow = DataTables("焊接明细表").Find("零部件编号 = \'" & e.DataRow("零部件编号") & "\' And 焊缝编号 = \'" & e.DataRow("焊缝编号") & "\' And 工艺卡号 = \'" & e.DataRow("工艺卡号") & "\'And 焊接方法 = \'" & e.DataRow("焊接方法") & "\'")
        If ndr2 Is Nothing Then
            For i As Integer = 1 To e.DataRow("数量")
                Dim ndr As DataRow = DataTables("焊接明细表").AddNew
                ndr("零部件编号") = e.DataRow("零部件编号")
                ndr("母材材质_部件1") = e.DataRow("母材材质_部件1")
                ndr("母材材质_部件2") = e.DataRow("母材材质_部件2")
                ndr("焊缝编号") = e.DataRow("焊缝编号")
                ndr("工艺卡号") = e.DataRow("工艺卡号")
                ndr("焊接方法") = e.DataRow("焊接方法")
                ndr("数量") = "1"
            Next
        End If
End Select