Foxtable(狐表)用户栏目专家坐堂 → 如何解决删除多条记录时重复提示?


  共有4630人关注过本帖树形打印复制链接

主题:如何解决删除多条记录时重复提示?

帅哥哟,离线,有人找我吗?
有点甜
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/28 17:07:00 [只看该作者]

Dim del As Boolean=True

With CurrentTable
    For i As Integer = .TopPosition To .BottomPosition
        If .Rows(i)("YNPay") OrElse .Rows(i)("YNKP") Then
            del=False
            Exit For
        End If
    Next
End With
If del=False Then
    MessageBox.Show("已付款或已开piao记录不能删除!", "提示")
    Return
End If

If Tables("Order").Compute("count(BBCheck)", "BBCheck = true") > 0 Then
    If MessageBox.Show("是否删除选中记录?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes
        DataTables("Order").DeleteFor("BBCheck=true")
    End If
Else
    Syscmd.Row.Delete()
End If


 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/1/28 17:17:00 [只看该作者]

以上条件满足,但如果有选中的逻辑列BBCheck = true") > 0,同样也会被删除。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/28 17:32:00 [只看该作者]

以下是引用wh420在2015-1-28 17:17:00的发言:
以上条件满足,但如果有选中的逻辑列BBCheck = true") > 0,同样也会被删除。

 

不明白你什么意思,具体什么逻辑。

 

这句去掉 Syscmd.Row.Delete()


 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/1/28 23:22:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:截.jpg
图片点击可在新窗口打开查看

再整理一下吧,需要实现的具体功能见图:
1、当“选择”列被打勾时,删除打勾记录 and 是否开piao=FALSE的记录;如果打勾的记录中包括已开piao和未开piao记录,则只删除未开piao记录后并弹出提示“已开piao记录禁止删除”

2、当不使用打勾选择而改用“拖拽框选”时功能同上

3、当同时打勾并框选(如图效果)则只按框选范围处理删除记录,原则也同上。

不知道我说明白了没有

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/29 9:05:00 [只看该作者]

 

If CurrentTable.Compute("count(BBCheck)", "BBCheck = true") > 0 Then
    If MessageBox.Show("是否删除选中记录?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes
        DataTables("Order").DeleteFor("BBCheck=true")
        Dim del As Boolean=True
        With CurrentTable
            For Each r As DataRow In .DataTable.Select("BBCheck = True")
                If r("YNPay") OrElse r("YNKP") Then
                    del=False
                    Exit For
                End If
            Next
        End With
       
        If del=False Then
            MessageBox.Show("已付款或已开piao记录不能删除!", "提示")
        End If
       
    End If
Else
    Dim del As Boolean=True
   
    With CurrentTable
        For i As Integer = .TopPosition To .BottomPosition
            If .Rows(i)("YNPay") OrElse .Rows(i)("YNKP") Then
                del=False
                Exit For
            End If
        Next
    End With
    If del=False Then
        MessageBox.Show("已付款或已开piao记录不能删除!", "提示")
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/1/29 10:17:00 [只看该作者]

我上传了项目,您看一下吧,老师受累了,还是不好使。存在问题:打勾且已开piao的也会被删除,拖拽框选若干记录点删除没反应。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目13.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/29 10:23:00 [只看该作者]

 

If CurrentTable.Compute("count(BBCheck)", "BBCheck = true") > 0 Then
    If MessageBox.Show("是否删除选中记录?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes
        CurrentTable.DataTable.DeleteFor("BBCheck = true and YNKP = false")
        Dim del As Boolean=True
        With CurrentTable
            For Each r As DataRow In .DataTable.Select("BBCheck = True")
                If r("YNKP") Then
                    del=False
                    Exit For
                End If
            Next
        End With
       
        If del=False Then
            MessageBox.Show("已付款或已开piao记录不能删除!", "提示")
        End If
       
    End If
Else
    Dim del As Boolean=True
   
    With CurrentTable
        For i As Integer = .BottomPosition To .TopPosition Step -1
            If .Rows(i)("YNKP") Then
                del=False
            Else
                .Rows(i).Delete
            End If
        Next
    End With
    If del=False Then
        MessageBox.Show("已付款或已开piao记录不能删除!", "提示")
    End If
End If

 


 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/1/29 13:44:00 [只看该作者]

晕,老师问题还是没有解决啊,麻烦您在我上传的例子中修改一下。框选的记录点删除什么反应也没有,勾选两条记录(一个已开piao一个未开piao)仍然都删除了。

[此贴子已经被作者于2015-1-29 13:53:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/29 14:25:00 [只看该作者]

 不可能啊,测试没问题,请认真测试

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2015/1/29 14:49:00 [只看该作者]

没问题了,如果在上面代码的下半部分加:框选删除前的提示应该加到哪个位置(即这句:If MessageBox.Show("是否删除选中记录?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes)


 回到顶部
总数 24 上一页 1 2 3 下一页