设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: petrelai
打印 上一主题 下一主题

[其它] 各位高手,请进!关于库存先进先出问题!

[复制链接]
1#
发表于 2004-3-29 04:32:00 | 显示全部楼层
假设有一进库历史表

日期 数量 价格 剩余数量

注意,剩余数量是该条记录所进货的剩余数量.

出货时,先进先出,应该是从日期最小且有剩余数量的记录开始操作,数量不够则再找更大日期的进货记录,(前面几位提到找最新价则是后进先出了).
当然退货是相反的过程(如果规则是这样),从最新进货记录开始,逐条记录朝前补剩余数.
2#
发表于 2004-3-29 05:08:00 | 显示全部楼层
我只是用进货历史记录表来实现先进先出的效果.这只是一种思路(我认为可行).
当然我这里的进货历史表也只是起到提供先进先出历史价格的作用.(当然后进先出原理是一样,只是次序相反)
操作的关键就在于剩余数量的理解.(参见我上一帖),有剩余说明这个价格的货没出完.

而真正的进销存,恐怕至少需要库存货品明细表,库存移动历史明细表(移动类型.日期,批号,价格,数量,对应购销单号等等 )

代码?
petrelai,据我的观察,这对你来说已是小菜一碟了,只要你对整个原理有了理解.
3#
发表于 2004-3-29 23:44:00 | 显示全部楼层
我所提及“进货历史表”与“进出货历史表”是不同的概念。
实际实际上我的“进货历史表”不如改称“历史价格表”,否则容易混淆概念。

当前库存=期初存+本期进-本期出 是从整体上考察库存数量。

而我所说的剩余数量是指特定价格的存货的剩余数量。(当然还要考虑特定品种)

“历史价格表”是专门为保留历史价格以满足“先进先出”原则而设立的,他客观上可以计算当前库存数,但这不是它的主要任务。看结构

进货日期   进货价格 名称 剩余数量
20040201     1.58   AA       200
20040204     3.05   BB        300
20040225     1.80   AA       150

这里AA的库存总量350,是所有AA记录剩余数量字段总和。

假设20040229出库AA280个

历史价格表结果应该是:
进货日期   进货价格 名称 剩余数量
20040201     1.58   AA          0
20040204     3.05   BB        300
20040225     1.80   AA         70

而进出库的明细记录表应同时另作处理。
这样历史价格表起到了保存历史价格的效果。(该表里的“剩余数量”是指以某价格进货的某种货品的剩余)
4#
发表于 2004-3-30 05:28:00 | 显示全部楼层
呵呵,是吗?我不信你不会写.
以我在16楼举的例子
AA出货280个.

Dim 尚未出数
尚未出数=应出数
打开历史价格表
寻找AA的最小日期的记录.
Do while 0<尚未出数 Or 未到文件尾
  If 剩余数量>=尚未出数 Then
     剩余数量=剩余数量-尚未出数
     ["尚未出数"数量的AA以本记录价格出货,相应其他处理]
     尚未出数=0  
   Else
     尚未出数=尚未出数-剩余数量
     ["剩余数量"数量的AA以本记录价格出货,相应其他处理]
     剩余数量=0
end if
继续(注意是AA的记录,是否事先筛选就看你愿意了)
loop

[此贴子已经被作者于2004-3-29 21:30:31编辑过]

5#
发表于 2004-3-30 05:44:00 | 显示全部楼层
呵呵,我也正在我收集的例子里研究呢,最近碰到问题不少.
6#
发表于 2004-3-30 05:55:00 | 显示全部楼层
恐怕不行,我最近在搞另一个东西,头正大着ing
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-18 18:34 , Processed in 0.084636 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表