首页 > 其他 > 详细

如何把每日明细数据累计后按分类保存

时间:2020-12-25 19:37:36      阅读:22      评论:0      收藏:0      [点我收藏+]

例题描述

现有每日商品进货登记表—每日入库明细.xlsx,如下图所示:

 技术分享图片

 

 

    另还有每日商品发货登记表—每日发货明细.xlsx,包括所有商品,只有第一条有日期,其余条日期相同,如下图所示:

 技术分享图片

 

 

现需要按商品款式将每日入库及发货数量保存到“出入库汇总.xlsx”文件的对应sheet(商品款式就是sheet名)中,并计算出当日结存,如下图所示:

 技术分享图片

 

 

 

实现步骤

1、  运行集算器

可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。

2、  编写脚本:

 技术分享图片

 

 

   

把代码列出来看得清楚点:

  A B
1 >dir="E:/excel/"  
2 =file(dir+"出入库汇总.xlsx") =A2.xlsopen()
3 =file(dir+"每日发货明细.xlsx").xlsimport@t() =A3.select(规格及品名)
4 =B3.run(日期=A3(1).日期) =A4.derive(入库数量)
5 =file(dir+"每日入库明细.xlsx").xlsimport@t() =A5.select(日期)
6 for B5 =B4.select@1(规格及品名==A6.款式).入库数量=A6.入库存数量
7 =B4.select(入库数量>0 || 发货数量!="")  
8 for A7 =B2.xlsimport@t(;A8.规格及品名,3)
9   >jc=B8.m(-1).结存+int(A8.入库数量)-int(A8.发货数量)
10   =B8.insert(0,A8.日期,A8.规格及品名,"件",null,A8.入库数量,A8.发货数量,jc,null)
11   =B2.xlsexport@a([B8.m(-1)];A8.规格及品名)
12 =A2.xlswrite(B2)  

A1   定义dir变量指定Excel数据文件所在的目录

A2   定义出入库汇总.xlsx文件

B2   打开并读入出入库汇总数据,形成集算器中的Excel对象

A3   读入每日发货明细.xlsx中的数据

B3   选出每日发货明细中规格及品名不为空的记录

A4   将每日发货明细中每条记录的日期设置成第1条记录的日期

B4   在每日发货明细中新增一列:入库数量

A5   读入每日入库明细.xlsx中的数据

B5   选出每日入库明细中日期不为空的记录

A6   对B5选出的入库明细记录进行循环处理

B6   在B4算出的发货明细中选出与当前循环相同产品的记录,并将当前的入库存数量设置成它的入库数量

A7   从B4中选出入库数量或发货数量至少有一个不为空的记录

A8   对A7中的所有记录进行循环处理

B8   从出入库汇总Excel对象中读出当前循环商品对应的历史出入库记录,从第3行开始,选项@t表示首行是列名

B9   计算当前循环商品的结存=历史记录最后一条的结存+入库数量-发货数量

B10   把当前循环商品的当日出入库记录插入到历史记录的最后

B11   把当前循环商品的最后1条记录(即当日的)追加到出入库汇总Excel对象的对应sheet中,使用选项@a表示追加写入

A12   将处理完毕的Excel对象再保存到出入库汇总.xlsx文件中

 

3、  按F9运行这段程序,打开出入库汇总.xlsx来看看。

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 

 

4、  第6行还可以用JOIN运算实现,只要一句了

A6:=A4.join(规格及品名,B5:款式,入库存数量)

把B4和B6清空,完整代码:

  A B
1 >dir="E:/excel/"  
2 =file(dir+"出入库汇总.xlsx") =A2.xlsopen()
3 =file(dir+"每日发货明细.xlsx").xlsimport@t() =A3.select(规格及品名)
4 =B3.run(日期=A3(1).日期)  
5 =file(dir+"每日入库明细.xlsx").xlsimport@t() =A5.select(日期)
6 =A4.join(规格及品名,B5:款式,入库存数量)  
7 =A6.select(入库存数量>0 || 发货数量!="")  
8 for A7 =B2.xlsimport@t(;A8.规格及品名,3)
9   >jc=B8.m(-1).结存+int(A8.入库存数量)-int(A8.发货数量)
10   =B8.insert(0,A8.日期,A8.规格及品名,"件",null,A8.入库存数量,A8.发货数量,jc,null)
11   =B2.xlsexport@a([B8.m(-1)];A8.规格及品名)
12 =A2.xlswrite(B2)  

A6   按A4每日发货明细中的规格及品名与B5每日入库明细中的款式进行连接,拼接上入库存数量字段

 

 

【附件】 kucun.zip

如何把每日明细数据累计后按分类保存

原文:https://www.cnblogs.com/rqgxy/p/14190076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!