好久没提问了,请教各位大侠一个关于进出仓的问题 ( 积分: 200 )

  • 主题发起人 主题发起人 lucky.gong
  • 开始时间 开始时间
L

lucky.gong

Unregistered / Unconfirmed
GUEST, unregistred user!
我目前在做一个仓存管理系统,碰到一个难题:&nbsp;一种产品分多次入仓,每次入仓都在入库表中产生一条记录.假如一种产品总数为10000KG,分三次入,则记录1=300,记录2=300,记录3=400.&nbsp;出库的时候,也是分批出库的,假如第一次出库500,则按照先进先出的原则,得删除第一条记录,然后更新第二条记录,将其值改为100.&nbsp;第三条记录暂时不变.&nbsp;&nbsp;第二次如出库500,则把剩下两条记录全部删除.实际在出入库时不是说一定把产品总数入库完了才出库,可能还没入库就已经要做了出库记录.<br>目前要求这样做,没办法.我现在觉得困难就是写程序的时候,做出库动作时,要按以先进先出的原则.请大家帮忙提供点好方法,有示例最好.谢谢
 
删除不好。用数量冲减会好一些
 
哪有这样做的,这样做还不得累死,出入库只是做为单据保存,为什么要改入库单,如楼上所说用数量冲减最好了,删除了单据,你怎么统计
 
因为是与ERP系统关连,做统计有其它的表可以实现.所以,会有删记录.
 
各位高手帮帮忙呀
 
不知道对不对,<br>出、入库采用流水号,即使删除掉也不应影响到流水号的生成,当然可以另行实现流水好的重新计数,因为很明显你的数据不作统计使用。<br>入库操作前检测是否有未完成的出库,如果有比较数量。如果数量小于等于出库数量,则不入库,你可以选择是否增加流水号;如果大于,正常入库,但数量为二者的差。<br>出库操作前按照流水号的先后顺序从最小的检索,删除、修改即可。
 
to&nbsp;yxzymh&nbsp;谢谢<br>我目前做的是采用流水号的方法.&nbsp;在入库前有一个先通过单号先查询,调出一些资料.然后让操作员然后几个需填表写的信息,再写入到几个表中,写入的时候会以单号加流水号形式写入.&nbsp;&nbsp;目前.入库这一块基本上没问题了.<br>现在就是出库麻烦,因为要先进先出,在出库的过程你得去先判断,然后去删一条或几条记录的同时,还去更新记录.即出库时可能会同时进行的动作:判断,delete,update.<br>因为入库是有多条记录的,所以在出库时很麻烦的.有没有比较好的方法来写这些.
 
在入库时要检测是否有出库的负信息,如果有则入库单的数量为减去出库单的数量,如果出库单数量大于入库单则更新出库单的负信息为加上入库单的数量,入库单不记录信息,这样基本可以保证先进先出吧,不过开始为什么会这么设计呢,入库单出库单不作为原始凭证么?
 
1。记录是不允许删除的,那是入库出库的凭证。<br>2。应该“入库”表、“库存”表和“出库”表。<br>3。“先进先出”是对财务而言。“入库”表是按实际入库时间填写,如果价格相同,“库存”表中可以合并。<br>4。如果价格不同应该视为不同的物品,给予不同的编号。出库时列出需要出库的所有物品的编号、品名、入库时间、单价和数量,由仓管员按先进先出的原则确定如何发放。例如:<br>入库表:<br>10001&nbsp;&nbsp;DM40&nbsp;大米&nbsp;&nbsp;&nbsp;2007.5.1&nbsp;&nbsp;&nbsp;4(元/公斤)&nbsp;&nbsp;&nbsp;&nbsp;3000<br>10002&nbsp;&nbsp;DM40&nbsp;大米&nbsp;&nbsp;&nbsp;2007.5.10&nbsp;&nbsp;4(元/公斤)&nbsp;&nbsp;&nbsp;&nbsp;3000<br>10003&nbsp;&nbsp;DM42&nbsp;大米&nbsp;&nbsp;&nbsp;2007.5.15&nbsp;&nbsp;4.2(元/公斤)&nbsp;&nbsp;4000<br>库存表:<br>12345&nbsp;&nbsp;DM40&nbsp;大米&nbsp;&nbsp;&nbsp;2007.5.10&nbsp;&nbsp;&nbsp;4(元/公斤)&nbsp;&nbsp;&nbsp;&nbsp;6000<br>12346&nbsp;&nbsp;DM42&nbsp;大米&nbsp;&nbsp;&nbsp;2007.5.15&nbsp;&nbsp;4.2(元/公斤)&nbsp;&nbsp;&nbsp;4000<br>假定&nbsp;2007.5.18&nbsp;要出库&nbsp;8000<br>出库表:<br>20005&nbsp;&nbsp;DM40&nbsp;大米&nbsp;&nbsp;&nbsp;2007.5.10&nbsp;&nbsp;2007.5.18&nbsp;&nbsp;&nbsp;4(元/公斤)&nbsp;&nbsp;&nbsp;&nbsp;6000<br>20006&nbsp;&nbsp;DM42&nbsp;大米&nbsp;&nbsp;&nbsp;2007.5.15&nbsp;&nbsp;2007.5.18&nbsp;&nbsp;&nbsp;4.2(元/公斤)&nbsp;&nbsp;2000<br>供参考。
 
谢谢各位朋友热心帮忙.可能是我没说的足够清楚.我再把问题说一下:<br><br>我现在开发的这个系统是与本公司ERP系统挂接在一起的.&nbsp;在入库操作时,我要将相关信息同时写入ERP系统的四个表,这四个表中有一个表在出库的时候,就出现问题:按照先进先出的原则,应该先判断,然后去删一条或几条记录的同时,还去更新记录.即出库时可能会同时进行的动作:判断,delete,update.<br>入库的凭证有其它的表负责.这是ERP系统定的,无法变更.<br><br>想请教大家的是:在出库时先进先出的原则,我得对每一条入库记录数做出判断,数量是否满足出库,如果够数就直接更新;不够数,就得删除本条记录,冲减出库数并判断第二条记录是否够出库数,以此类推,很是麻烦.在写程序的时候大家有没有比较好的办法.谢谢
 
各位朋友,我想到一个办法,不知行不行.<br>采购yxzymh的办法,用流水号进行排序,用循环变量控制,出库数用一变量cks;对于入库的每一种产品,进行一次循环判断.<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;i=001&nbsp;to&nbsp;max(本种产品最大流水号)&nbsp;do&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;本条入库记录数&nbsp;&gt;此种产品本次出库数&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update本条入库记录数;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;写入出库信息;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;退出循环;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;本条库记录数&nbsp;=此种产品本次出库数&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;删除本条入库记录;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;写入出库信息;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;退出循环;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;本条库记录数&lt;此种产品本次出库数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;删除本条入库记录;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;出库数:=出库数-本条入库记录数;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;进行下次循环;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br><br>注:入库流水号以产品名称加流水号组成的
 
各位高手帮帮忙啊
 
可能我看得不是很仔细,我们现在处理这个问题的方法是入仓时象你说的这是三条记录。<br>出仓的时候,给一个左右的界面,左边显示你入仓的三条记录,然后可以手工挑选出来其中的几条出仓,挑选出来的时候,可以选择这一条出多少。<br><br>最后还有一个审核出仓单的概念,审核的时候,可以做你说的操作,删除记录,修改记录等。<br><br>至于你说的还没有入仓就要出仓的问题,这个在ERP中是绝对不允许的,如果你们生产流程是这样,建议你还是和老总或者主管人员协商在生产流程上解决这个问题,绝对不能纵容这种情况的发生。
 
to&nbsp;娃娃<br>谢谢你提供了一种方法.&nbsp;&nbsp;因为不同公司有一些特定的情况,所以我们公司目前就充许先出库再入库的情形.没办法.&nbsp;&nbsp;我们可暂且不考虑这种情况在ERP系统是否正常.先要实现先进先出即可.&nbsp;你提供的是一种方法,不过我们这里没有审核这一步,入出库都是一个人负责的,流程上比较简单.
 
期待更多朋友提供好的方法,谢谢
 
问题再多挂一天就散分了,希望能有朋友提供多点的参考方法,谢谢
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
383
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部