以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]实际操作过程中发现,每次通过“删除一行”按钮删除的表都是所在表的最早行,而不是想要删除的选中行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131710)

--  作者:fengwenliuyan
--  发布时间:2019/3/5 0:24:00
--  [求助]实际操作过程中发现,每次通过“删除一行”按钮删除的表都是所在表的最早行,而不是想要删除的选中行?
在窗口中,新建一个按钮控件,作用是,当所在表禁止删除时,只能通过“删除一行”按钮,删除一行,并保存至另存表。代码如下:
Dim dr As Row = Tables("产品").Current
If dr IsNot Nothing Then
    If MessageBox.Show("确定要删除该数据吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
        Dim dr1 As DataRow = DataTables("产品另存表").Find("自动编号=\'" & dr("自动编号") & "\'") \'判断一下是不是需要排除重复,如果不需要就将代码去除\'
        If dr1 Is Nothing Then
            dr1= DataTables("产品另存表").addnew
            For Each cl As Col In Tables("产品").cols
                dr1(cl.Name) = dr(cl.name)
            Next
            dr1.save
        End If
        dr.delete
    End If
End If
现在的问题是,实际操作过程中发现,每次通过“删除一行”按钮删除的表都是所在表的最早行,而不是想要删除的选中行?
请老师进测试项目看看,帮助解决一下?


[此贴子已经被作者于2019/4/30 9:51:40编辑过]

--  作者:y2287958
--  发布时间:2019/3/5 8:30:00
--  
代码测试正常
--  作者:fengwenliuyan
--  发布时间:2019/3/5 8:34:00
--  回复:(y2287958)代码测试正常
代码没问题,那为什么会只删除第一行,而不是选中行?
--  作者:有点甜
--  发布时间:2019/3/5 8:37:00
--  

改成

 

Dim dr As Row = Tables("窗口1_Table2").Current
If dr IsNot Nothing Then
    If MessageBox.Show("确定要删除该数据吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
        Dim dr1 As DataRow = DataTables("产品另存表").Find("自动编号=\'" & dr("自动编号") & "\'") \'判断一下是不是需要排除重复,如果不需要就将代码去除\'
        If dr1 Is Nothing Then
            dr1= DataTables("产品另存表").addnew
            For Each cl As Col In Tables("窗口1_Table2").cols
                dr1(cl.Name) = dr(cl.name)
            Next
            dr1.save
        End If
        dr.delete
    End If
End If