先进先出成本计算——多维表实现
创作者俱乐部成员
昨天看到论坛里有朋友问,如何用多维表实现先进先出成本的计算:https://bbs.wps.cn/topic/38478
今天正好试一下多维表如何操作表格
只是个最简单的尝试,看一下先进先出理解的对不对,以及尝试多维表的自动计算
先是建立了两张表
入库表,记录了每次入库的数量和单价
出库表,记录了每次出库的数量,需要自动计算出出库的成本
然后设置了一个自动化流程
当出库表修改了数量字段后,执行test脚本
最后是test脚本
📌 | function main(){ let a = Application.Record.GetRecords({SheetId: 1}).records for (let i of Application.Record.GetRecords({SheetId: 14}).records) { let c = [] while (true) { if (i['fields']['数量'] === a[0]['fields']['数量']) { let d = a.shift() c.push([d['fields']['数量'], d['fields']['单价']]) break } else if (i['fields']['数量'] < a[0]['fields']['数量']) { c.push([i['fields']['数量'], a[0]['fields']['单价']]) a[0]['fields']['数量'] -= i['fields']['数量'] break } else { i['fields']['数量'] -= a[0]['fields']['数量'] let d = a.shift() c.push([d['fields']['数量'], d['fields']['单价']]) } } Application.Record.UpdateRecords({ SheetId: 14, Records: [{ id: i.id, fields: { '成本': c.map(x=>x.join('*')).join('+') } }] }) } } main() |
大概就是用先入库的货物,去填充要出库的数量,不够就继续用下一条数据填,直到足够为止,过程中记录单价
上面是入库表
这里的成本只是计算过程,没放结果
多维表写脚本还不习惯,感觉有点怪怪的,如果有哪里考虑不周,还请回帖😁
创作者俱乐部成员