以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  内部函数处理表,报索引超出范围  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141982)

--  作者:z769036165
--  发布时间:2019/10/15 16:59:00
--  内部函数处理表,报索引超出范围
通过内部函数异步处理表增加行,代码如下:
Dim w As DataRow
w = DataTables("状态表").AddNew()
w("记录") = "记录"
w("类型") = "类型"



表属性的DataRowAdded的代码如下:

e.DataRow("处理人") = user.name
e.DataRow("处理时间")  = now()
Tables("状态表").sort = "发送时间"  (如果这行存在,就报错,索引超出范围,且整个表变成一个大红叉叉,去掉这行就正常了,这个是什么原因呢?)


如果是异步执行的问题,这种情况该如何处理比较好,
在窗口按钮中循环执行一段内容,其中一部分涉及外部的内容执行时间长,为避免整体时间长,将此部门作出了内部函数,异步执行;
执行过程没有问题,但是需要将执行结果反馈到表去记录该项执行完成了,目前就是多了在异步函数中增加了对表内容处理,就报索引超出范围,有些表不是上述排序的内容,但同样也报索引超出范围,找不到具体的哪个地方代码造成的。

[此贴子已经被作者于2019/10/15 17:08:19编辑过]

--  作者:有点蓝
--  发布时间:2019/10/15 17:02:00
--  
1、更新到最新版本的Foxtable
--  作者:z769036165
--  发布时间:2019/10/15 17:10:00
--  
是最新版的

另外做一个内部函数,同步调用就可以解决了吗?
[此贴子已经被作者于2019/10/15 17:11:19编辑过]

--  作者:有点蓝
--  发布时间:2019/10/15 17:17:00
--  
自己测试就知道了。另外这句代码去掉,放在这里没有任何意义:Tables("状态表").sort = "发送时间" 

如果要用,放到addnew的代码之后