| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1011 人关注过本帖
标题:纠结两天仍无果,只好再来请教如何写这样一个程序
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
有点象先进先出
2014-11-05 08:41
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
回复 6 楼 tlliqi
是我思路的问题,或者说我没把真实的使用情况说出来,确实不好理解,sdta大哥帮我重新梳理了我的逻辑
2014-11-05 09:23
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
回复 7 楼 hu9jj
恩,我这个逻辑是挺复杂,算库存的
2014-11-05 09:23
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
回复 8 楼 pufei6057
多向前辈学习~
2014-11-05 09:24
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
回复 11 楼 吹水佬
哈哈,是的,算库存呢,指导一下账龄呀~
2014-11-05 09:26
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用吹水佬在2014-11-5 08:41:43的发言:

有点象先进先出

高人啊
确实如此

坚守VFP最后的阵地
2014-11-05 10:32
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
将楼主的文件整理后重新发出
数据表.rar (1.41 KB)


各类商品库存情况结果:
图片附件: 游客没有浏览图片的权限,请 登录注册

要求按先进先出原则,计算出各类商品不同进货日期的实际库存量
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2014-11-05 10:39
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
程序代码:
T1=Seconds()
Select A.Matnr,A.Werks,A.Lgort,A.Total,B.Menge,B.Budat,0000000000.00 库存数量 From Total A ;
Left Join Daytime B On Alltrim(B.Matnr)==Alltrim(A.Matnr) And Alltrim(B.Werks)==Alltrim(A.Werks) ;
And Alltrim(B.Lgort)==Alltrim(A.Lgort) Order By A.Matnr,A.Werks,A.Lgort,B.Budat Into Cursor Temp1 ReadWrite
Replace All 库存数量 With Menge
Select Matnr,Werks,Lgort,Total,Sum(Menge) Kczs From Temp1 Group By Matnr,Werks,Lgort,Total Into Cursor Temp2
nRc=0 && 入库数量与库存数量之差
Scan
    nRc=Temp2.Kczs-Temp2.Total
    Select Temp1
    Scan For Alltrim(Temp1.Matnr)==Alltrim(Temp2.Matnr) And Alltrim(Temp1.Werks)==Alltrim(Temp2.Werks) And Alltrim(Temp1.Lgort)==Alltrim(Temp2.Lgort)
         nRc=nRc-Menge
         If nRc>0
             Replace 库存数量 With 0
         Else
             Replace 库存数量 With Abs(nRc)
             Exit
         EndIf 
    EndScan
EndScan 
MessageBox("共运行:"+Transform(Seconds()-T1)+" 秒")
Select Temp1
Browse 
* 最后库存结果
Select * From Temp1 Where Not Empty(库存数量)

如果数据量大的话,上面的代码运行速度可能不尽人意

坚守VFP最后的阵地
2014-11-05 10:41
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
回复 18 楼 sdta
辛苦了,多谢多谢~~
2014-11-05 10:54
快速回复:纠结两天仍无果,只好再来请教如何写这样一个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028620 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved