以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 变化排名累计后,项目会卡死!! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=168954) |
||||
-- 作者:hbfnmxb -- 发布时间:2021/5/28 10:55:00 -- 变化排名累计后,项目会卡死!! 累计计划的填充,是以排名累计的变化来实现的,排名是经常变化的,变化排名后,项目就卡死。不知问题出在哪里?公式在表事件中!
[此贴子已经被作者于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 -- 建议使用按钮计算 |
||||
-- 作者:hbfnmxb -- 发布时间:2021/5/28 14:06:00 -- 谢谢老师,因为太难所以不知道如何说全问题。老师,表事件中的公式,是不是与按钮公式配合使用? |
||||
-- 作者:有点蓝 -- 发布时间:2021/5/28 14:24:00 -- 表事件在修改单元格的时候触发,计算和当前行有关的数据。按钮是重算整个表数据 |
||||
-- 作者:hbfnmxb -- 发布时间:2021/5/28 14:47:00 -- 谢谢老师,明白了!! |