以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何解决删除多条记录时重复提示? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63781) |
-- 作者:wh420 -- 发布时间:2015/1/28 16:00:00 -- 如何解决删除多条记录时重复提示? 在表的BeforeDeleteDataRow事件中编写如下代码: If e.DataRow("YNPay") OrElse e.DataRow("YNKP") Then e.Cancel = True MessageBox.Show("已付款或已开票记录不能删除!", "提示") End If 结果执行删除操作时,选中多条记录删除,选中多少条就有多少遍这样的提示,请问如何解决?只提示一遍“已付款或已开票记录不能删除”即可
|
-- 作者:Bin -- 发布时间:2015/1/28 16:02:00 -- 设计一个删除按钮.删除按钮前加入这句代码即可. |
-- 作者:wh420 -- 发布时间:2015/1/28 16:03:00 -- 明白了,多谢 |
-- 作者:wh420 -- 发布时间:2015/1/28 16:11:00 -- 在右键快捷菜单中应该如何改写下列代码: If e.DataRow("YNPay") OrElse e.DataRow("YNKP") Then e.Cancel = True MessageBox.Show("已付款或已开票记录不能删除!", "提示") End If |
-- 作者:wh420 -- 发布时间:2015/1/28 16:20:00 -- 老师帮忙 |
-- 作者:Bin -- 发布时间:2015/1/28 16:24:00 -- 你是要判断所有勾选的行,都满足这个条件才弹出? With CurrentTable dim del as Boolean=true 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("已付款或已开票记录不能删除!", "提示") end if |
-- 作者:有点甜 -- 发布时间:2015/1/28 16:25:00 -- If CurrentTable.Current("YNPay") OrElse CurrentTable.Current("YNKP") Then |
-- 作者:wh420 -- 发布时间:2015/1/28 16:53:00 -- 把代码段1和代码段2放在一起,小递逻辑搞不清楚了,要实现的功能就是:优先判断YNPay和YNKP为真的情况下只提示“已付款或已开票记录不能删除”(即选中记录中只要有条件为真的情况就只提示,不执行其他操作)否则执行代码段2。 代码段1: If CurrentTable.Current("YNPay") OrElse CurrentTable.Current("YNKP") Then MessageBox.Show("已付款或已开票记录不能删除!", "提示") End If 代码段2: 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 |
-- 作者:有点甜 -- 发布时间:2015/1/28 16:55:00 --
|
-- 作者:wh420 -- 发布时间:2015/1/28 17:04:00 -- 这样写如果选中两条记录的时候(一条记录YNPay=true,另一条记录为YNPay=false)结果还是被删除了。是不是得用循环来判断啊? |