历史版本15 :循环引用 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
2. 示例编辑
2.1 数据准备
新建普通报表,添加数据集,SQL 语句为select 日期, 入库, 出库 from 库存 where strftime('%m',日期)= '06' order by 日期,查询出 6 月份入库出库情况,并按照日期升序排序。
2.2 报表设计
数据列设置如下所示:
2.2.1 方法一:使用层次坐标
计算上日库存:假设 6 月份前留下的余额为 0,在 B3 单元格输入公式:=if(&A3 = 1, 0, B3[A3:-1] + C3[A3:-1] - D3[A3:-1])
公式说明:
公式 | 说明 |
---|---|
&A3 = 1 | A3 扩展后每个值对应的位置等于1 |
B3[A3:-1] + C3[A3:-1] - D3[A3:-1] | 前天库存+上日入库-上日出库 |
if(&A3 = 1, 0, B3[A3:-1] + C3[A3:-1] - D3[A3:-1]) | 第一天的上日库存为 0,否则从第二天开始,上日库存就等于前天库存+上日入库-上日出库 |
计算本日库存:
在 E3 单元格中,输入公式=B3 + C3 - D3
公式说明:
公式 | 说明 |
---|---|
B3 + C3 - D3 | 上日库存+本日入库-本日出库 |
注:由于 E3 单元格中使用了 B3 的值,所以上日库存不能直接用E3[A3:-1],否则会因为 B3-E3-B3 导致死循环。
2.2.2 方法二:使用层次坐标函数
直接在 B3 单元格中输入循环引用公式=CIRCULAR(A3, B3, C3, D3),等同于公式=if(&A3 = 1, 0, B3[A3:-1] + C3[A3:-1] - D3[A3:-1])。
2.3 保存与预览
保存模板,预览效果如描述中所示。
模板效果在线查看请点击: 循环引用.cpt
3.模板下载编辑
已完成模板可参考%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\循环引用.cpt。
点击下载模板:循环引用.cpt