以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]批量删除勾选的行时,如何同步删除相关行的明细! (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125905) |
||||
-- 作者:lunengcheng -- 发布时间:2018/10/9 15:51:00 -- [求助]批量删除勾选的行时,如何同步删除相关行的明细! 之前在论坛请教了一个问题,《表中有一列复选框,如何做到删除全部勾选的列》,用了老师的代码,完美解决了,后面又遇到了一个新的问题,就是这些选中的列是有明细的,如何做到删除这些列的同时,能够同步删除这些明细呢? ---------------------- 出错代码发布不了,上传到附件!
[此贴子已经被作者于2018/10/9 15:53:02编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/10/9 15:56:00 -- If MessageBox.show("确实需要删除请点击确定!","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.Cancel Then Exit Function End If Dim TbName ="添加课程_Table1" Dim qts As Integer = DataTables(TbName).DataRows.Count Dim t As Table= Tables("添加课程_Table1") For i As Integer = t.Rows.count-1 To 0 Step -1 Dim r = t.Rows(i) If r("Select")=True Then DataTables("YW_添加课程明细").deletefor("编号=\'" & r("编号") & "\'") r.Delete End If Next |
||||
-- 作者:lunengcheng -- 发布时间:2018/10/9 16:34:00 -- 甜老师,这样设置有一个问题,会报错“不存在名称为“YW_添加课程明细”的DataTables”,这是不是因为“YW_添加课程明细”是外部表的缘故,我是一个界面分上下两个table,上面的table显示主信息,下面的显示明细,点击上面的一条主信息,则下面显示对应的明细,如果把表“YW_添加课程明细”改成窗口的明细表,就只能删除其中一条主信息的明细,其它主信息被删除了,但是明细没法同步删除! |
||||
-- 作者:有点甜 -- 发布时间:2018/10/9 16:50:00 -- If MessageBox.show("确实需要删除请点击确定!","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.Cancel Then Exit Function End If Dim TbName ="添加课程_Table1" Dim qts As Integer = DataTables(TbName).DataRows.Count Dim t As Table= Tables("添加课程_Table1") For i As Integer = t.Rows.count-1 To 0 Step -1 Dim r = t.Rows(i) If r("Select")=True Then Tables("窗口表").DataTable.deletefor("编号=\'" & r("编号") & "\'") r.Delete End If Next |
||||
-- 作者:有点甜 -- 发布时间:2018/10/9 16:50:00 -- 具体问题,做个实例发上来测试。 |
||||
-- 作者:lunengcheng -- 发布时间:2018/10/9 17:12:00 -- 上面的代码还是只能删除一条主信息的明细,不能删除全部的,本来想做个实例来的,结果发现用的是别人的框架开发的,逻辑和代码比较复杂,没法做成简单的实例发出了! 框架里面主信息表的PositionChanged里面的代码如下: If e.Table.Current Is Nothing Then \'如果Current为Nothing \'没有选定行时执行的代码 Else If Tables(e.form.name & "_Table2").cols.contains("创建人") Then foxtools.Tools.Tables(e.form.name & "_Table2").SQLLoad("编号=\'" & e.Table.Current("编号") & "\'") End If End If 这样没点击主信息表不同的行,下面的明细表就会出现该条主信息的全部明细! [此贴子已经被作者于2018/10/9 17:14:53编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/10/9 17:15:00 -- 只要你表名写对,条件写对,都能删除数据的。
请单独做一个对应实例测试,不然别人无法理解你的意思。 |
||||
-- 作者:lunengcheng -- 发布时间:2018/10/10 11:37:00 -- 已经成功解决问题,多谢各位老师指点,完整可用代码分享给大家! (代码无法上传,上传到附件里了) 附件提示上传成功了,但是找不到附件!!! [此贴子已经被作者于2018/10/10 11:50:27编辑过]
|
||||
-- 作者:tovot -- 发布时间:2018/10/10 21:51:00 -- 请教下楼主,怎么实现的,应该跟你用的是一个框架!能不能把代码贴出来 |
||||
-- 作者:tovot -- 发布时间:2018/10/10 21:52:00 -- 最好是实现有勾选的时候删除勾选,没有勾选的时候删除当前定位行 |