以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动增加行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119777)

--  作者:13775189031
--  发布时间:2018/5/31 18:05:00
--  自动增加行
Select Case e.DataCol.name
    Case "领料情况_预领余额"
        If e.newvalue = False Then
            DataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'")
        Else
            If e.DataRow("领料情况_分机组") = True Then
                For i As Integer = 1 To 2
                    Dim ndr2 As DataRow = DataTables("领料清单").AddNew
                    ndr2("编号") = e.DataRow("编号")
                    ndr2("预算编号") = e.DataRow("预算编号")
                    ndr2("物资说明") = e.DataRow("物资说明")
                    ndr2("名称") = e.DataRow("物资名称")
                    ndr2("规格") = e.DataRow("规格")
                    ndr2("材质") = e.DataRow("材质")
                    ndr2("领料日期") = Date.today
                Next
            End If
        End If
        If e.newvalue = False Then
            DataTables("领料清单").DeleteFor("编号=\'" & e.DataRow("编号") & "\'")
        Else
            If e.DataRow("领料情况_不分机组") = True Then
                Dim ndr3 As DataRow = DataTables("领料清单").AddNew
                ndr3("编号") = e.DataRow("编号")
                ndr3("预算编号") = e.DataRow("预算编号")
                ndr3("生产令号") = e.DataRow("生产令号")
                ndr3("项目名称") = e.DataRow("项目名称")
                ndr3("物资说明") = e.DataRow("物资说明")
                ndr3("名称") = e.DataRow("物资名称")
                ndr3("规格") = e.DataRow("规格")
                ndr3("材质") = e.DataRow("材质")
                ndr3("领料日期") = Date.today
            End If
        End If

"领料情况_预领余额"勾选后,自动生成没问题,
但是取消"领料情况_预领余额"勾选后,会把之前“分机组领料”和“不分机组领料”所生成的领料清单一并删除,
怎么弄?

--  作者:有点甜
--  发布时间:2018/5/31 18:11:00
--  

修改红色代码

 

    Case "领料情况_预领余额"
        If e.newvalue = False Then
            DataTables("领料清单").DeleteFor("编号=\'余额" & e.DataRow("编号") & "\'")
        Else
            If e.DataRow("领料情况_分机组") = True Then
                For i As Integer = 1 To 2
                    Dim ndr2 As DataRow = DataTables("领料清单").AddNew
                    ndr2("编号") = "余额" & e.DataRow("编号")
                    ndr2("预算编号") = e.DataRow("预算编号")
                    ndr2("物资说明") = e.DataRow("物资说明")
                    ndr2("名称") = e.DataRow("物资名称")
                    ndr2("规格") = e.DataRow("规格")
                    ndr2("材质") = e.DataRow("材质")
                    ndr2("领料日期") = Date.today
                Next
            End If
        End If

--  作者:13775189031
--  发布时间:2018/6/1 8:47:00
--  
不行,删掉的还是全部!
--  作者:有点甜
--  发布时间:2018/6/1 8:50:00
--  
以下是引用13775189031在2018/6/1 8:47:00的发言:
不行,删掉的还是全部!

 

认认真真看2楼代码,看懂2楼代码,分别加上红色字符,不可能重复删除的。


--  作者:13775189031
--  发布时间:2018/6/1 21:45:00
--  
按照2楼代码放进去也不行啊,仍然全部删除。
--  作者:有点蓝
--  发布时间:2018/6/1 22:00:00
--  
请上传实例测试
--  作者:13775189031
--  发布时间:2018/6/4 12:42:00
--  
Select Case e.DataCol.Name
    Case "领料情况_预领余额"
        If e.newvalue = False Then
            DataTables("领料清单").DeleteFor("编号=\'余额&" & e.DataRow("编号") & "\'")
        Else
            If e.DataRow("领料情况_分机组") = True Then
                For i As Integer = 1 To 2
                    Dim ndr2 As DataRow = DataTables("领料清单").AddNew
                    ndr2("编号") ="余额" & e.DataRow("编号")
                    ndr2("预算编号") = e.DataRow("预算编号")
                    ndr2("物资说明") = e.DataRow("物资说明")
                    ndr2("名称") = e.DataRow("物资名称")
                    ndr2("规格") = e.DataRow("规格")
                    ndr2("材质") = e.DataRow("材质")
                    ndr2("领料日期") = Date.today
                Next
            End If
        End If


得到的结果跟我预想的相反,“预领余额”取消后,删除的不是“余额+编号”,而是之前“分机组”勾选生成的两行;

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

DataTables("领料清单").DeleteFor("编号=\'余额&" & e.DataRow("编号") & "\'")

 

改成

 

DataTables("领料清单").DeleteFor("编号=\'余额" & e.DataRow("编号") & "\'")


--  作者:13775189031
--  发布时间:2018/6/6 13:17:00
--  
好了好了!谢谢啊!