jolin 发表于 2017-1-4 10:16:24

如何实现明细表中的跨行数量累加

本帖最后由 jolin 于 2017-1-4 10:18 编辑

在实际应用过程中,我们会需要对当前行和当前行以上的今日数量进行一个累计,如下图:



如何实现呢?因为删除行时公式会报错(excel里面也一样),所以我们选择一个别的方案,增加一个临时变量的辅助数量项来完成计算。
这里实现的重点是全部重新计算,如何实现全部重新计算呢?我们在赋值的时候匹配条件中使用了本表单.明细.今日数量<>""。如果不使用条件,只计算当前行,如果使用了条件,则执行满足条件的所有行。具体见下面图解:




















乐乐1 发表于 2017-1-4 14:17:38

不错的算法,构思巧妙

cyl 发表于 2017-1-5 13:13:05


如何求上一行减本行数据的差呢?如图:其中E列的减径量Excel公式为:B3-B4、B4-B5、B5-B6,减壁量同样,
这个用填表公式如何设计?

乐乐1 发表于 2017-1-7 12:49:11

楼上的问题和楼主的问题看似不一样,但核心问题是一样的,就是如何取得上一行的数据,如果你仔细看懂了楼主的解决方案,会发现,解决这类问题的一个核心思想时,当计算某一行时,通过值变化事件将本行的数据写到主表的一个临时变量数据项中,当计算下一行时,从临时变量中读取上一行的数据参与计算,然后再把本行数据通过值变化事件写入到临时变量中,供计算下一行时使用,以此类推。

这里的关键是要理解更新操作是如何遍历目标明细表的每一行的。

RJXERP 发表于 2017-4-16 01:12:34

正好需要这个方法,谢谢了!

RJXERP 发表于 2017-4-20 15:05:17

利用这个方法,终于实现了诸如现金银行、库存进销存逐行余额的功能。

RJXERP 发表于 2017-6-10 16:40:15

jolin 发表于 2017-1-4 10:16
在实际应用过程中,我们会需要对当前行和当前行以上的今日数量进行一个累计,如下图:




这个还是有点问题,如累计余额为0的话,他的临时变量就不会变化,它的下一行累就会越过为0的行往前累加非0的余额,结果出错。


页: [1]
查看完整版本: 如何实现明细表中的跨行数量累加