Foxtable(狐表)用户栏目专家坐堂 → 如何使Datatables.Load只执行一次?


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

主题:如何使Datatables.Load只执行一次?

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


加好友 发短信
等级:二尾狐 帖子:547 积分:4390 威望:0 精华:0 注册:2016/4/17 20:05:00
如何使Datatables.Load只执行一次?  发帖心情 Post By:2024/5/4 23:11:00 [只看该作者]

如题,以下这段代码,如果审核到没有数据时,就会直接显示“未将对象引用设置到对象的实例。”,除了要在无数据时不弹出错误,还要控制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

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部