以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求一种提取的解决方案 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82561) |
||||
-- 作者:yaojun -- 发布时间:2016/3/20 18:04:00 -- 求一种提取的解决方案 最近在做一个物流系统,其中有个“商品库存”表,关联一个“商品入库”表,(采用二级编码关联)另外有一个“商品出库”表(数据来源是导入外部数据),“商品库存”表里面的库存数量等于: Select Case e.DataCol.name End If
问题是现在“商品出库”表里面的二级编码有些是包含其他二级编码的:比如二级编码A001,A002 ,A003,A004,A005,其中A005由A001+A002组成,求当“商品出库”表里的行有A001,A002,A003,A004,A005行的时候,“商品库存”表里面对应的A001,A002,A003,A004,A005商品怎么减去数量。
我的思路是:1,“商品库存”表里面没有二级编码A005,当“商品出库”表里面出现A005的时候,“商品出库”表里面自动增加成A001,A002两行;出库数量=A005的出库数量,请求代码怎样写,请求老师指教,或许是更好的方法。 其实就是仓库中常用到的BOM的问题,求救。 [此贴子已经被作者于2016/3/20 19:27:52编辑过]
|
||||
-- 作者:yaojun -- 发布时间:2016/3/20 21:11:00 --
|
||||
-- 作者:大红袍 -- 发布时间:2016/3/20 23:09:00 -- 汗,你这样做就不对,数量平分么?看看人家的bom如何设计 http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=48218&skin=0
|
||||
-- 作者:yaojun -- 发布时间:2016/3/21 12:32:00 -- 红袍老师没有明白我的意思,我的意思是A005是一个套件,商品出库的数据是导入外部EXCEL表的数据,当导入时遇到有二级编码=A005的时候,商品出库里面的行自动删除A005行,而变成里面的子件A001和A002两行,商品出库表里面的两行商品数量=A001*系数5*A005的商品数量和A002*系数10*A005的商品数量。 那个BOM表不能解决我的问题,我是要导入外部数据,每天都有2000多行,请老师指教是否可行。
|
||||
-- 作者:大红袍 -- 发布时间:2016/3/21 12:47:00 -- 比如,库存就可以这样计算
Select Case e.DataCol.name |
||||
-- 作者:yaojun -- 发布时间:2016/3/21 13:22:00 -- 红袍老师,这样的话,就变成了商品出库A005出现的时候,只有A001数据减去了,A002没有变,而A005第二次出现的时候,就不再计算了 |
||||
-- 作者:大红袍 -- 发布时间:2016/3/21 14:21:00 -- 库存表,重置列可以计算啊。 |
||||
-- 作者:大红袍 -- 发布时间:2016/3/21 14:26:00 -- 出库表那里,DataColChanged事件
Select Case e.DataCol.Name |
||||
-- 作者:yaojun -- 发布时间:2016/3/21 15:54:00 -- 谢谢红袍老师,这样基本上解决了80%的问题,我现在做一个BOM表,和一个商品库存表,隐藏商品库存表里面的A005行就基本达到要求了,可是假如BOM表里面的二级编码A001和子件A001相同时,系数为2,假如商品出库A001是100,那么商品库存表里面的A001则会变成100*2+100,这是什么原因啊 |
||||
-- 作者:大红袍 -- 发布时间:2016/3/21 15:59:00 -- Dim drs As List(Of DataRow) = DataTables("BOM").Select("子件 = \'" & e.DataRow("二级编码") & "\'") 改成
Dim drs As List(Of DataRow) = DataTables("BOM").Select("子件 = \'" & e.DataRow("二级编码") & "\' and 二级编码 <> 子件") |