以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 逻辑列,选中金额不为空的行,删除完全空行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115356) |
||||
-- 作者:szsmall -- 发布时间:2018/3/5 20:32:00 -- 逻辑列,选中金额不为空的行,删除完全空行 如题,工作中遇到一些表格,出现金额还是空,或者录入时留空。 怎样才能按一下按钮(窗口2):逻辑列,选中金额不为空的行,删除空行
[此贴子已经被作者于2018/3/5 20:43:23编辑过]
|
||||
-- 作者:wyz20130512 -- 发布时间:2018/3/5 21:00:00 -- For Each dr As DataRow In DataTables("表A").DataRows If dr.IsNull("金额") Then dr.Delete() Else dr("已付款") = True End If Next
|
||||
-- 作者:有点蓝 -- 发布时间:2018/3/5 21:05:00 -- DataTables("表A").ReplaceFor("已付款",False) DataTables("表A").ReplaceFor("已付款",True,"金额 is not null") DataTables("表A").DeleteFor("已付款=false")
|
||||
-- 作者:wyz20130512 -- 发布时间:2018/3/5 21:17:00 -- 3楼的执行效率比2楼要高。 With DataTables("表A") .DeleteFor("[金额] is null") .ReplaceFor("已付款",True,"") End With |
||||
-- 作者:wyz20130512 -- 发布时间:2018/3/5 21:27:00 -- 若将2楼代码换为如下: For Each r As Row In Tables("表A").Rows If r.IsNull("金额") Then r.Delete() Else r("已付款") = True End If Next 则需运行多次(测试环境为商业版),方能达到预期的效果,不知何故?请高手指点?
|
||||
-- 作者:有点蓝 -- 发布时间:2018/3/5 21:41:00 -- For i as integer = Tables("表A").Rows.count - 1 to 0 step -1 |
||||
-- 作者:wyz20130512 -- 发布时间:2018/3/5 22:40:00 -- 哦!倒序删行!时间久了,给忘了。 可2楼测试却一次性达到了预期的效果?这又是何故?
[此贴子已经被作者于2018/3/5 23:01:55编辑过]
|