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


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

主题: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编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/4/16 9:48:00 [只看该作者]

数据源是sql server的话好说,可以用递归查询。
你最好是贴出大概的表结构


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


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

附件在一楼,已经上传


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


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

图片点击可在新窗口打开查看 不明白~


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/4/16 12:10:00 [只看该作者]

数据源不同实现方式不同。
如果是sql server的话直接可以用T-SQL 实现递归查询。
如果是内部表的话只能用代码来递归,重复查询数据库。效率要低一点。

不知道你实际的数据源是内部表还是sql server


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


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

是sql server

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/4/16 13:46:00 [只看该作者]

以下是引用唐尸三摆手在2010-4-16 13:04:00的发言:
是sql server

哦 那应该简单。

展开后怎么显示.我不懂单级正展 多级正展 原材料正展的区别。
还有childlevel字段非常重要。有这个字段 展开的时候效率能高很多。但是你的1楼的文件里面没有这个字段


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/4/16 14:08:00 [只看该作者]

你在SQL Server里面执行一下看看
with cte As
(
select *,0 As level,Cast(LTRIM(序号)+'/' As VarChar(100)) As Path ,Cast(RTRIM(子件编码)+'/' As VarChar(300))As FullPath from BOM表 where 母件编码 = 'CP-WG-JSG-0210'
union all
select a.*,level + 1,Cast(path + LTRIM(a.序号) + '/' As VarChar(100)),Cast(FullPath + RTRIM(a.子件编码) + '/' As VarChar(300)) from BOM表 a
join cte on a.母件编码  = cte.子件编码
)
select  * from cte
[此贴子已经被作者于2010-4-16 14:17:11编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
总数 40 1 2 3 4 下一页