以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  变化排名累计后,项目会卡死!!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=168954)

--  作者:hbfnmxb
--  发布时间:2021/5/28 10:55:00
--  变化排名累计后,项目会卡死!!
累计计划的填充,是以排名累计的变化来实现的,排名是经常变化的,变化排名后,项目就卡死。不知问题出在哪里?公式在表事件中!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:录取计划累计.table

[此贴子已经被作者于2021/5/28 11:14:55编辑过]

--  作者:有点蓝
--  发布时间:2021/5/28 11:22:00
--  
这个累计计划,到底是按行顺序累计?还是按排名的顺序进行累计?
--  作者:hbfnmxb
--  发布时间:2021/5/28 11:28:00
--  
按排名的顺序。排名的这个顺序是变化的,那么只要排名顺序变化,累计计划就要跟着变化
--  作者:有点蓝
--  发布时间:2021/5/28 11:34:00
--  
那么建议提问题的时候,一次性把问题说清楚,之前提供的例子也没有说是按排名,只是说按顺序,所以就有这个代码。然后你们又不理解代码,只会抄。不同的需求使用的代码逻辑是不一样的
--  作者:有点蓝
--  发布时间:2021/5/28 12:13:00
--  
这种如果第一次重置列执行一遍,肯定是很慢的,因为是累计。 累计这种逻辑本身效率就不高。

比如假设有1000行数据要累计,最好的情况下是修改了第999行,那么只需要计算第999行和第1000行二行即可。极端的情况下比如修改了第1行,那么后面的从第1行到第1000行的数据都要重新计算一遍。假设计算1行要10ms,1000行就要10秒

如果是重置列,那么这1000行数据就会执行:1000*1000+999*999+998*998+....n*n..+1*1次,所以这种累计的逻辑不要使用重置列功能。对于初始数据,需要另外写代码遍历所有行操作,具体用法,稍候在给出来。

--  作者:有点蓝
--  发布时间:2021/5/28 13:50:00
--  
建议使用按钮计算
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:录取计划累计.zip



--  作者:hbfnmxb
--  发布时间:2021/5/28 14:06:00
--  
谢谢老师,因为太难所以不知道如何说全问题。老师,表事件中的公式,是不是与按钮公式配合使用?
--  作者:有点蓝
--  发布时间:2021/5/28 14:24:00
--  
表事件在修改单元格的时候触发,计算和当前行有关的数据。按钮是重算整个表数据
--  作者:hbfnmxb
--  发布时间:2021/5/28 14:47:00
--  
谢谢老师,明白了!!