在库存管理系统中,如商品有有效期问题。
如依次进了三批商品A
          第一批100000包  保质期3个月
          第二批300000包  保质期5个月
          第三批20000包  保质期10个月出库时可能会1包1包地出货也可能上万包一起出去。
如要在3个月后第一批没全出货的话,要报警作废处理。我该如何设计表结构存放进货与出货的A商品? 
如何知道3个月后第一批下的剩余商品已作废? 也无法保证库管员按先后进货顺序来出库的

解决方案 »

  1.   

    楼上的大哥说的不错,我想你再定义一个字段state (0 作废,1)用来记录该商品是否已经作废,每当入库或是结算时:
    var 
        TheTime:TDateTime;
        
    TheTime := 从今天开始往前3个月或从今天开始往前‘保质期’天sql = 'update table set state = 0 where datetime >= #'+ DateTimeToStr(TheTime) +'#)'这样就可以把所有过期的商品都标识出来了吗
      

  2.   

    唉还是说详细点吧
    1、建立两个表:一个为进出表A 一个为库存表B
    2、其中进出表A应该有这些信息:
    出入时间
    出入方式
    操作人员
    单据号码
    经办人员
    商品代码()
    效期
    当时价格3、库存表B中应该有这些
    商品代码
    效期
    累进数量
    累出数量
    累进金额
    累出金额
    价格4、在出入库时可以用自动“先进先出法”也可以让用户选择具体效期的商品来出入库。
    这时要在表A中加入相应记录
    并要改变表B中的数量、你还可以参照一些药品的进销存软件的数据库在其中有很多关于效期管理的内容