跨层累计,对所有数据进行累计,累计所有数据、层次坐标、合计,crosslayertotal()
1. 问题描述
跨层累计相对于逐层累计而言,不是每组分别累计,而是从第二组开始在上一组的累计结果上继续累计,如下图:
2. 示例
2.1 打开报表
打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\Accumulative_1.cpt
如下修改报表:
2.2 跨层累计
在D3单元格中,写入公式:=IF(&B3 >1, D3[B3:-1] + C3, D3[A3:-1,B3:!-1] + C3):如果&B3>1,从第二月开始,求上一次累计结果加该月金额,否则当为第一个月时,求上一组最后一个累计结果加上当前月的金额。如下图:
其中D3[B3:-1]表示上一个B3(上月)对应的D3的值;
D3[A3:-1,B3:!-1]表示上一个A3(上一年)中B3扩展出来的最后一个对应的D3的值。
在D3单元格中直接写跨层累计公式=CROSSLAYERTOTAL(A3, B3, C3, D3),等同于公式=IF(&B3 >1, D3[B3:-1] + C3, D3[A3:-1,B3:!-1] + C3),如果为横向扩展,则传递第五个参数false,例如:=CROSSLAYERTOTAL(A3, B3, C3, D3,false)。
2.3 保存与预览
已完成模板可参考%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\Accumulative_2.cpt。
3. 总结
在层次坐标中,可以通过!-1来获取某个单元格扩展出来的最后一个。
如[B3:!-1]表示B3单元格扩展出来的最后一个。