Foxtable(狐表)用户栏目专家坐堂 → 关于库存量的有趣问题,请教各位高手。(附示例)


  共有21493人关注过本帖树形打印复制链接

主题:关于库存量的有趣问题,请教各位高手。(附示例)

帅哥哟,离线,有人找我吗?
菜鸟foxtable
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
关于库存量的有趣问题,请教各位高手。(附示例)  发帖心情 Post By:2009/7/3 23:31:00 [只看该作者]

PS:批号指的是同一厂家同一药品不同时期出厂的编号。

图一所示A药品有两个批次共102粒,B药品两个批次共201粒。


图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看

图二所示现在要对A或B药品作出库处理,分别为5粒和10粒,请问录入人员在客户端录入此出库记录时,在后台如何做到按批号先后自动减库存量?(库存量少的入库较早)

图片点击可在新窗口打开查看此主题相关图片如下:02.jpg
图片点击可在新窗口打开查看



麻烦各位高手提供一个思路。。。。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:库存批号.table

[此贴子已经被作者于2009-7-3 23:35:40编辑过]

 回到顶部
美女呀,离线,留言给我吧!
shaof
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:491 威望:0 精华:0 注册:2008/9/11 15:30:00
  发帖心情 Post By:2009/7/3 23:46:00 [只看该作者]

先进先出,似乎是个很麻烦的问题,帮你顶下。

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/7/4 7:32:00 [只看该作者]

我的思路是这样,在品种A出库的时候,
(1)对库存表按品种和批号排序
(2)在库存表中查找品种A的第一个批号(最早的),若出库数量小于该批号的库存量,则全部出库数量为该批号(即第一个批号的出库数量等于全部出库数量);否则,第一个批号的出库数量等于库存数量;
(3)在库存表中查找品种A的第二个批号,重复前面的过程;

只是,我没有打开你的表,从图片上看你的出库表上并没有批号列,不太明白你怎么记录出库的批号,保存在哪儿。

[此贴子已经被作者于2009-7-4 7:34:09编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/7/4 7:53:00 [只看该作者]

以下是引用cpayinyuan在2009-7-4 7:32:00的发言:

我的思路是这样,在品种A出库的时候,
(1)对库存表按品种和批号排序
(2)在库存表中查找品种A的第一个批号(最早的),若出库数量小于该批号的库存量,则全部出库数量为该批号(即第一个批号的出库数量等于全部出库数量);否则,第一个批号的出库数量等于库存数量;
(3)在库存表中查找品种A的第二个批号,重复前面的过程;

只是,我没有打开你的表,从图片上看你的出库表上并没有批号列,不太明白你怎么记录出库的批号,保存在哪儿。

[此贴子已经被作者于2009-7-4 7:34:09编辑过]

谢谢您提供思路,但是感觉到有点儿复杂,有没有人想到增加冗余列或者冗余表,简化这些过程?

另:出库时,录入人员并不要求知道批号。。

[此贴子已经被作者于2009-7-4 7:54:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2009/7/4 8:04:00 [只看该作者]

我的理解;出库表无需录入批号,仓管必须按先进先出原则出库,与系统无关。系统根据出库品种数量自动计算与批号有关的库存。以A产品为例:出库数量大于A01批号(最先批)数量,则A02批库存数量 = A01批数量+A02批数量-出库数量。
[此贴子已经被作者于2009-7-4 8:04:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
擎天柱
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2009/7/4 10:13:00 [只看该作者]

加一个入库时间,批号仅是辅助供参考。根据入库时间

 回到顶部
帅哥哟,离线,有人找我吗?
fangling
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:82 积分:1202 威望:0 精华:0 注册:2008/9/1 17:51:00
  发帖心情 Post By:2009/7/4 11:47:00 [只看该作者]

      其实不要把问题搞复杂了,处方录入时一般也不会输入药品批号,药房发药时也不会按批号发药的,所以,药库表中按药品的批号不同保留不同的行是没有太大的意义。开发管理系统有时不可能完全照搬手工操作方式,即便是不同批号的药品购入价格不同,但从规范管理的角度考虑,也只能执行一个价格,实现起来也就简单得多。当然,在入库表里可以反应药品批号等信息。另外,在药库表中,除了库存数量外,最好还要增加一个“已划价数量”字段,因为划价和减库一般不是同时进行的,划价后要经过缴费、发药后才能减库。
      仅供参考。
[此贴子已经被作者于2009-7-4 13:47:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/4 12:07:00 [只看该作者]

下面是按楼主的意思写的代码,不知道行不?我在命令窗口中测试过ok。(注意焦点要在出库表上 如:最后一行)
Dim drs As List(Of DataRow)
drs = DataTables("库存").Select("[药品名称] = '" & currenttable.current("药品名称") & "'","批号")
dim sl as string
dim n as integer
For Each dr As Datarow In drs
    sl = sl & dr("库存量") & "|"
    dim k as integer = sl.split("|")(n)
    dim s as integer
    if k <= currenttable.current("数量")  and currenttable.current("数量")  -k>0 then
        s = dr("库存量")
        dr("库存量") = 0
        n=n+1
    elseif k> currenttable.current("数量") and currenttable.current("数量") -s>0 then
        dr("库存量") = k - (currenttable.current("数量") - s)
        exit for
    end if
next

其实‘库存’表有必要按批号来反映库存量吗? 如果因价格问题进行成本核算,应该选择‘入库’表中先入库的价格即可。
[此贴子已经被作者于2009-7-4 12:07:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/7/4 12:51:00 [只看该作者]

由于药品库存有一定特殊性,比如同一批号的青霉素,如果三天内曾注射过则不需要皮试,假如换了批号,即使昨天注射过,今天也要进行皮试。所以库存管理必须要有批号。

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/4 12:59:00 [只看该作者]

8楼代码精简些:
Dim drs As List(Of DataRow)
drs = DataTables("库存").Select("[药品名称] = '" & currenttable.current("药品名称") & "'","批号")
dim sl as string
dim n as integer
For Each dr As Datarow In drs
    dim k as integer = dr("库存量")
    dim s as integer
    if k <= currenttable.current("数量")  and currenttable.current("数量")  -k>=0 then
        s = dr("库存量")
        dr("库存量") = 0
    elseif k> currenttable.current("数量") and currenttable.current("数量") -s>0 then
        dr("库存量") = k - (currenttable.current("数量") - s)
        exit for
    end if
next

 回到顶部
总数 14 1 2 下一页