日期:2014-05-17  浏览次数:20475 次

计算完整BOM到datagridview1
MSSQL2008&VB2008
该BOM表采用主、从表设计,当主、从表的BILLID相同时则表示同一阶BOM,
BOM表可能有多阶的,这里写出的数据比较简单,希望能循环计算出多阶BOM到datagridview1,

主表: M_BOM
单据ID , 母件 , 数量 , 版本号
BILLID , GOODSID , QTY , BOMVER
  1 , A , 1 , A
  2 , D , 1 , D
  3 , D , 1 , D2
  4 , A , 1 , A2

细表: M_BOMD
单据ID ,子件序号, 子件 , 数量 ,子件版本,关联主表BILLID
BILLID , ITEMNO ,GOODSID , QTY ,BOMVER,BOMID
  1 , 1 , B , 1 ,1, NULL
  1 , 2 , C , 1 ,1, NULL
  1 , 3 , D , 1 ,1, 2 ---这个关联主表M_BOM中BILLID=2
  2 , 1 , E , 1 ,1, NULL
  2 , 2 , F , 1 ,1, NULL
  3 , 1 , E , 1 ,1, NULL
  3 , 2 , F , 2 ,1, NULL
  4 , 1 , B , 1 ,1, NULL
  4 , 2 , C , 1 ,1, NULL
  4 , 3 , D , 1 ,1, 3 ---这个关联主表M_BOM中BILLID=3


求如下结果:
子件序号 ,子件 , 数量 , 子件版本  
ITEMNO ,GOODSID , QTY , BOMVER 
0, A , 1 , A
1 , B , 1 , A
2 , C , 1 , A
3 , D , 1 , A
3-1,E , 1 , A
3-2,F , 1 , A
datagridview1第一行先写入是固定序号0,母件,数量,版本





------解决方案--------------------
用一个存储过程计算出bom结果,然后将该存储过程作为gridview的数据源