如何实现明细表中的跨行数量累加
本帖最后由 jolin 于 2017-1-4 10:18 编辑在实际应用过程中,我们会需要对当前行和当前行以上的今日数量进行一个累计,如下图:
如何实现呢?因为删除行时公式会报错(excel里面也一样),所以我们选择一个别的方案,增加一个临时变量的辅助数量项来完成计算。
这里实现的重点是全部重新计算,如何实现全部重新计算呢?我们在赋值的时候匹配条件中使用了本表单.明细.今日数量<>""。如果不使用条件,只计算当前行,如果使用了条件,则执行满足条件的所有行。具体见下面图解:
不错的算法,构思巧妙
如何求上一行减本行数据的差呢?如图:其中E列的减径量Excel公式为:B3-B4、B4-B5、B5-B6,减壁量同样,
这个用填表公式如何设计?
楼上的问题和楼主的问题看似不一样,但核心问题是一样的,就是如何取得上一行的数据,如果你仔细看懂了楼主的解决方案,会发现,解决这类问题的一个核心思想时,当计算某一行时,通过值变化事件将本行的数据写到主表的一个临时变量数据项中,当计算下一行时,从临时变量中读取上一行的数据参与计算,然后再把本行数据通过值变化事件写入到临时变量中,供计算下一行时使用,以此类推。
这里的关键是要理解更新操作是如何遍历目标明细表的每一行的。 正好需要这个方法,谢谢了! 利用这个方法,终于实现了诸如现金银行、库存进销存逐行余额的功能。 jolin 发表于 2017-1-4 10:16
在实际应用过程中,我们会需要对当前行和当前行以上的今日数量进行一个累计,如下图:
这个还是有点问题,如累计余额为0的话,他的临时变量就不会变化,它的下一行累就会越过为0的行往前累加非0的余额,结果出错。
页:
[1]