设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
11#
发表于 2004-3-29 04:32:00 | 只看该作者
假设有一进库历史表

日期 数量 价格 剩余数量

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

出货时,先进先出,应该是从日期最小且有剩余数量的记录开始操作,数量不够则再找更大日期的进货记录,(前面几位提到找最新价则是后进先出了).
当然退货是相反的过程(如果规则是这样),从最新进货记录开始,逐条记录朝前补剩余数.
12#
 楼主| 发表于 2004-3-29 04:43:00 | 只看该作者
那操作是在进库历史表中进行吗?如果是的话,请问何才能用代码来实现?前面的几个高手说得我我明白七八分,但不知怎么写了.
13#
发表于 2004-3-29 05:08:00 | 只看该作者
我只是用进货历史记录表来实现先进先出的效果.这只是一种思路(我认为可行).
当然我这里的进货历史表也只是起到提供先进先出历史价格的作用.(当然后进先出原理是一样,只是次序相反)
操作的关键就在于剩余数量的理解.(参见我上一帖),有剩余说明这个价格的货没出完.

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

代码?
petrelai,据我的观察,这对你来说已是小菜一碟了,只要你对整个原理有了理解.
14#
 楼主| 发表于 2004-3-29 05:23:00 | 只看该作者
"我同意"大人,你也太看得起我吧,不过谢谢!
先试试看吧
15#
 楼主| 发表于 2004-3-29 22:02:00 | 只看该作者
以下是引用我同意在2004-3-28 20:32:16的发言:
假设有一进库历史表

日期 数量 价格 剩余数量

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

出货时,先进先出,应该是从日期最小且有剩余数量的记录开始操作,数量不够则再找更大日期的进货记录,(前面几位提到找最新价则是后进先出了).
当然退货是相反的过程(如果规则是这样),从最新进货记录开始,逐条记录朝前补剩余数.

"我同意"所提到的进货历史表是不是应该改为进出货历史表呢?如果说是话,那么
日期 进库量 出库量 进库价 剩余数量
                             =上结存+入库量-出库量
那么最初的上结存又怎么得来呢?是不是直接把进库量变成最初的上结存了呢?那又怎么才知道那是最初的上结存呢?

我现在都是在围绕这个剩余数量想不开呀,各位高手可不可再给点小"提示"呢?
[此贴子已经被作者于2004-3-29 14:34:08编辑过]

16#
发表于 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

而进出库的明细记录表应同时另作处理。
这样历史价格表起到了保存历史价格的效果。(该表里的“剩余数量”是指以某价格进货的某种货品的剩余)
17#
 楼主| 发表于 2004-3-30 00:41:00 | 只看该作者
我明白您的意思,但我不知道怎么把它给算出来?用笔当然是可以,但用程序的话.我就不会了!
18#
发表于 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编辑过]

19#
 楼主| 发表于 2004-3-30 05:35:00 | 只看该作者
我说过,不要太看得起我,不然,哈,深渊哟!今天我在看我在ACCESS交流中心收集的例子:不知您看过没有.今天我还没完全去研究它呢.这个问题好像在各个论坛里都没有一个完整的例子.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
20#
发表于 2004-3-30 05:44:00 | 只看该作者
呵呵,我也正在我收集的例子里研究呢,最近碰到问题不少.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-5 05:32 , Processed in 0.080559 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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