先进先出成本计算——多维表实现

wils
wils

创作者俱乐部成员

昨天看到论坛里有朋友问,如何用多维表实现先进先出成本的计算: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()

大概就是用先入库的货物,去填充要出库的数量,不够就继续用下一条数据填,直到足够为止,过程中记录单价

上面是入库表

这里的成本只是计算过程,没放结果

多维表写脚本还不习惯,感觉有点怪怪的,如果有哪里考虑不周,还请回帖😁

海南省
浏览 9024
收藏
8
分享
8 +1
3
+1
全部评论 3
 
锋
大佬可以加一下交流一下吗
· 广东省
回复
 
HC.旋
大佬,可以和你交流一下吗?
· 福建省
回复
 
马成功老师
马成功老师

创作者俱乐部成员

高大上 厉害
· 北京
回复