一个BOM展开的问题

sying_shu 2007-04-23 11:58:18
我有一物料清单结构,请高手帮写出展开的存储过程
数据结构如下:
BOM主表:
BOM_M
bom_no varchar(50) //BOM编号
parent_no varchar(50) //母件编码

BOM子表
BOM_D
bom_no varchar(50)//BOM编号
bom_lot varchar(50)//BOM批号,因为一个物料可能由一个上的物料组成,用批号记录
parent_no varchar(50)//母件编码
child_no varchar(50)//子件编码
unit_qty1 float(20,8)//单位净用量
unit_qty2 float(20,8)//单位水口用量,因涉及注塑成型,所以定义了 单位水口用量
dishu int //用量底数,用于单位净用量很小时.
suhao float(20,8)//损耗率

请高手能否帮忙写出成品的BOM完全展开过程----展开到最后一层
如有物料A,B,C,D,E,F,G,H,I,J,K
BOM_M 的记录
001,A
002,B
003,C
004,D
005,E
006,F

BOM_D的记录
001,001_001,A,B,1,0,1,0.02
001,001_002,A,C,1,0,1,0.02
002,002_001,B,G,1,0,1,0.02
002,002_002,B,H,1,0,1,0.02
003,003_001,C,K,0.02,0.5,1000,0.15
004,004_001,H,J,0.03,0.6,1000,0.15
请展开A到最后一层


...全文
460 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sying_shu 2007-04-24
  • 打赏
  • 举报
回复
sbks(hwnd,&rect)

bom_treepath 记录BOM的层次路径
parent_no 最顶层的物料编码
是用展开存储过程算出的,如果修改了BOM结构须重新计算,BOM_EXM,BOMEXD是保存展开后的BOM,供生产使用
sbks 2007-04-23
  • 打赏
  • 举报
回复
清单里记录有母件ID,子件ID,子件数量
就可以构成bom单了

要解析某个物件有多少个子件构成,用个递归函数来解开它
leo_lesley 2007-04-23
  • 打赏
  • 举报
回复
---是不是这样的
http://community.csdn.net/Expert/topic/5473/5473611.xml?temp=.2339899
sbks 2007-04-23
  • 打赏
  • 举报
回复
bom_treepath 记录BOM的层次路径
parent_no 最顶层的物料编码

这两个是冗余的了,还不如用算法算出来。否则做bom维护的时候,你还要另外算出这两个字段填写上去

sying_shu 2007-04-23
  • 打赏
  • 举报
回复
用量相对是每层的计算用量
sying_shu 2007-04-23
  • 打赏
  • 举报
回复
leo_lesley(leo)
谢谢你的回复
看过你提到的帖子,有一点象.因为子件的可能用于不同的物料清单中,且所在层数可能不同.如果我用展开表的数据结构来记录这些信息,应该怎样做?
存放展开BOM的数据结构如下:
BOM_EXM
bom_no,
parent_no //被展开的母件----相对的成为母件
BOM_EXD
bom_no
bom_lot
bom_treepath 记录BOM的层次路径
parent_no 最顶层的物料编码
parent_no1 母件编码
child_no, 子件编码
unit_qty1
unit_qty2
dishu
sunhao
level_num


sying_shu 2007-04-23
  • 打赏
  • 举报
回复
怎么得到子件所在的层数呢?

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧