以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何使Datatables.Load只执行一次? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=191717) |
-- 作者:scofields -- 发布时间:2024/5/4 23:11:00 -- 如何使Datatables.Load只执行一次? 如题,以下这段代码,如果审核到没有数据时,就会直接显示“未将对象引用设置到对象的实例。”,除了要在无数据时不弹出错误,还要控制DataTables.Load只加载一次,如何实现? If User.Group<>"财务管理" Then MessageBox.show("无权限审核","资金审核",MessageBoxButtons.OK,MessageBoxIcon.Warning) Else DataTables("T_资金表").LoadFilter = "资金状态 = \'入账中\'" DataTables("T_资金表").Load Tables("T_资金表").Current("资金状态") = "已审核" Tables("T_资金表").Current.Save() End If
|
-- 作者:有点蓝 -- 发布时间:2024/5/5 20:50:00 -- 先看看:http://www.foxtable.com/webhelp/topics/0445.htm,理解一下什么是“完美”的代码 其次DataTables.Load调用一次肯定只会加载一次,不可能有多次,除非执行了多次
最后这个代码逻辑很有问题,重新加载后,current是会变的,已经不是之前的当前行了,加载后再设置当前行是有问题的。应该先设置行状态,再重新加载 If User.Group<>"财务管理" Then MessageBox.show("无权限审核","资金审核",MessageBoxButtons.OK,MessageBoxIcon.Warning) Else if Tables("T_资金表").Current isnot nothing then Tables("T_资金表").Current("资金状态") = "已审核" Tables("T_资金表").Save() DataTables("T_资金表").LoadFilter = "资金状态 = \'入账中\'" DataTables("T_资金表").Load end if end if |