Foxtable(狐表)用户栏目专家坐堂 → 增加多行耗时长的问题


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

主题:增加多行耗时长的问题

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109655 积分:557967 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/10 8:58:00 [显示全部帖子]

我测试5000行才0.16秒。应该从输入后开始计时呀,不然等1个小时后再输入行数,那不更久,这不合理的

Dim strt As Integer
InputValue(strt, "增加行", "突破增加300行限制")
Dim st As Date = Date.Now '将开始时间保存在变量st中
currenttable.StopRedraw()
CurrentTable.addnew(strt)
CurrentTable.ResumeRedraw()
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109655 积分:557967 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/10 14:26:00 [显示全部帖子]

那就是这个表格有表达式列,或者是事件代码影响了

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109655 积分:557967 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/10 15:54:00 [显示全部帖子]

把这个表所有代码备份,然后去掉测试就知道是不是这些个代码影响的了。

试试屏蔽事件

Dim strt As Integer
InputValue(strt, "增加行", "突破增加300行限制")
Dim st As Date = Date.Now '将开始时间保存在变量st中
currenttable.StopRedraw()
SystemReady = False
dim max as integer = CurrentTable.compute("max(_identify)")
CurrentTable.addnew(strt)
if CurrentTable.Cols.Contains("船名") then
CurrentTable.datatable.replacefor("船名","新","_identify >" & max )
end if
SystemReady = true
CurrentTable.ResumeRedraw()
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109655 积分:557967 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/10 17:07:00 [显示全部帖子]

去掉表达式,新增完再添加表达式:http://www.foxtable.com/webhelp/topics/1935.htm

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109655 积分:557967 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/10 20:05:00 [显示全部帖子]

参考9楼compute的用法,新增前取最大序号

 回到顶部