Foxtable(狐表)用户栏目专家坐堂 → BOM数据展开,制造业的高手请进!


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

主题:BOM数据展开,制造业的高手请进!

帅哥哟,离线,有人找我吗?
唐尸三摆手
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
BOM数据展开,制造业的高手请进!  发帖心情 Post By:2010/4/16 8:38:00 [显示全部帖子]

本人想做一BOM展开程序,BOM是生产型企业必不可少的信息系统,俗称物料清单,现在希望做一个BOM展开程序,不知如何写代码,高手请进
此主题相关图片如下:pic084.jpg
按此在新窗口浏览图片
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目30.table


parentitem childitem childlevel num factor offsetdays wasterrate validdate invaliddate childtype childnumtype
B-CP-XT-0230                             YCL-WXJ-CP-XT-Y-001                      3 1. 1. 0 0. 2009-08-05 2049-12-31 01 1
B-CP-XT-0231                             YCL-WXJ-CP-XT-Y-002                      3 1. 1. 0 0. 2009-08-05 2049-12-31 01 1
B-CP-XT-0232                             B-CP-XT-0230                             2 1. 1. 0 0. 2009-08-11 2049-12-31 01 1
B-CP-XT-0233                             B-CP-XT-0231                             2 1. 1. 0 0. 2009-08-11 2049-12-31 01 1
B-MGY-111.6CD-(LB)T20JG-01               YCL-TC-BTG-3.5*0.5                       6 0.0003 1. 0 0. 2003-04-11 2049-12-31 01 1
B-MGY-111.6CD-1#T101JG-01                YCL-TC-BTG-3.5*0.5                       6 0.0009 1. 0 0. 2003-04-11 2049-12-31 01 1
B-MGY-111.6CD-10#T110JG-01               YCL-TC-BTG-3.5*0.5                       6 0.0005 1. 0 0. 2003-04-11 2049-12-31 01 1
B-MGY-111.6CD-11#S103JZBT-01             YCL-WXJ-CD-1108                          6 1. 1. 0 0. 2003-04-14 2049-12-31 01 1
B-MGY-111.6CD-11#T111JG-01               YCL-TC-BTG-3.5*0.5                       6 0.0012 1. 0 0. 2003-04-11 2049-12-31 01 1
B-MGY-111.6CD-11#ZT(B)-01                YCL-TC-HTB-2.0f                          7 0.0001 1. 0 0. 2003-04-12 2049-12-31 01 1

[此贴子已经被作者于2010-4-16 11:18:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/16 10:49:00 [显示全部帖子]

附件在一楼,已经上传


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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/16 11:21:00 [显示全部帖子]

部分数据见一楼,下面是表结构
columnname colchnname coldatatype
childitem 子件编码 char
childlevel 子件层号 int
childnumtype 子件数量类型 char
childtype 子件类型 char
factor 库存转换因子 numeric
invaliddate 失效日期 datetime
num 需求数量 numeric
offsetdays 偏置天数 int
parentitem 母件编码 char
validdate 生效日期 datetime
wasterrate 废品/残料率 numeric


贴图为某ERP种BOM模块的展开截图
此主题相关图片如下:pic083.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2010-4-16 11:26:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/16 13:04:00 [显示全部帖子]

是sql server

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/16 14:41:00 [显示全部帖子]

大侠,sql数据库中的表结构是这样的
parentitem
此列为母件编码
childitem
此列为子件编码
childlevel
此列为层号
num
单件耗料
factor offsetdays wasterrate validdate invaliddate childtype childnumtype


所以烦请版主提供一个方法

单级正展就是将选定编码作为母件编码,查找下一级子件编码
多级正展就是将选定编码作为母件编码,一直展开到原料层(包括中间层)
原材料正展就是选定编码作为母件编码,直接展开原料层,只要底层


另外还有单级反展,多级反展和用途反展,都是将选定编码作为子件编码来进行操作的
[此贴子已经被作者于2010-4-16 14:44:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/16 20:11:00 [显示全部帖子]

先谢了,研究下,图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/17 10:54:00 [显示全部帖子]

多级正展为什么不执行呢

;with cte As
(
select * from abt00000 where parentitem = 'CP-WG-JSG-0210'
union all
select a.* from abt00000 a
join cte on a.parentitem  = cte.childitem
)
select  * from cte
[此贴子已经被作者于2010-4-17 10:54:39编辑过]

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/17 15:29:00 [显示全部帖子]

企业管理器里面能执行,用版主的方法确实能执行并显示结果,但是不知道这样的代码,如何写入到fill语句中


单级正展是没问题的:
dim al as string=Forms("frm_a").Controls("TextBox1").value
tables("frm_a_table1").Fill("select * from abt00000 where parentitem ='" & al & "'","erp",true)

将语句换成下面的代码
;with cte As
(
select * from abt00000 where parentitem = 'CP-WG-JSG-0210'
union all
select a.* from abt00000 a
join cte on a.parentitem  = cte.childitem
)
select  * from cte

就提示报错

图片点击可在新窗口打开查看此主题相关图片如下:pic087.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2010-4-17 15:35:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/17 16:39:00 [显示全部帖子]

呵呵,深受启发,终于显示结果了,不过还有两个问题
第一,childtype并没有指定出原材料,所以原料正展存在一点小问题
第二,顶层BOM按理说childlevel 应该是0,但是在此BOM表中并没有体现出来

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/4/18 7:46:00 [显示全部帖子]

是的,正如版主所预料的,顶层的BOM中也可以判断parentitem is null,如此说来,这两项正好是相反的效果


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