101占总比例的10%,1011,1012分别占总比例的5%,6%还是占101的5%,6%?

解决方案 »

  1.   

    当然是对101而言的,一个物料/模块的比例是相对于父项而言的,如:
    500公斤中
    101 = 10/(10+20+25+5) * 500
    他的子项1011 = 10/(10+20+25+5) * 500 * (5/(5+6))
    另外第二层的1011 = 5 /(10+20+25+5) * 500
    同理,请问怎样计算,程序?
      

  2.   

    1、得到一母项目号;
    2、判断此母项目号在此BOM中是否存在子项;
    3、if 不存在 then 报错退出;
    4、取得第一层子件集合;
    5、select sum() from ..where product_no=:xx;//取得本层总份数total1;
    6、first;
    while not eof do
    begin
       7、 qty/total1* 总数量 得到本子件的用量;
        判断此子件是否存在子件,如不存在,继续处理9;存在,再从4的方法往后处理。
       9、 next;
    end;
    这样只是适合层数固定的BOM,如果对于层数不固定的BOM,就得使用递归的方法来完成以上的步骤了。
      

  3.   

    这个层数当然是不固定的了,请问怎样用这个递归算法计算呢?能详细一点吗?