【正文】
表中選取需要分解的物料信息,并存入work表等待運(yùn)算select top 1 @lvl=1,@curr=”根節(jié)點(diǎn)物料代碼”,@usage=”用量” from “BOM表”insert into work (lvl,itemid,usage) values (@lvl,@curr,@usage)//循環(huán)開始,當(dāng)分解層次碼為0時(shí)循環(huán)終止while (@lvl0) beginif exists (select * from work where lvl=@lvl) begin//從work表中選取層次碼為@lvl的首條記錄A,保存在變量中并插入表result,然后將該記錄從work表刪除select top 1 @curr=itemid,@usage=usage from work where lvl=@lvlinsert result (lvl,itemid,usage) values (@lvl,@curr,@usage)delete work where lvl=@lvl and itemid=@curr //以記錄A為父節(jié)點(diǎn)在BOM表中選取其所有子節(jié)點(diǎn),并插入表workinsert work select @lvl+1,cid,usage from “BOM表” where pid=@curr and pidcid//如記錄A有子結(jié)點(diǎn)集B,則層次碼加1,if(@@rowcount0) set @lvl=@lvl+1endelseset @lvl=@lvl1end//從表result中選取最終遍歷結(jié)果select * from result。 實(shí)踐證明,采用混合結(jié)構(gòu)模型的BOM設(shè)計(jì)無論是在數(shù)據(jù)庫(kù)結(jié)構(gòu)還是運(yùn)算效率上都能滿足企業(yè)需要,為該ERP的順利實(shí)施奠定了基礎(chǔ)。4 結(jié)束語 本文分析比較了兩種典型的BOM結(jié)構(gòu)模型,從中總結(jié)BOM設(shè)計(jì)的主要問題并提出相應(yīng)的改進(jìn)BOM結(jié)構(gòu)模型。在筆者參與的ERP系統(tǒng)開發(fā)過程中,這種方法得到了很好的應(yīng)用和證實(shí),希望能給其它ERP系統(tǒng)開發(fā)者以參考?;痦?xiàng)目:上海市浦東新區(qū)科技發(fā)展基金信息化應(yīng)用推進(jìn)專項(xiàng)資金資助項(xiàng)目參考文獻(xiàn):[1]程控,[M].北京:清華大學(xué)出版社,.[2]羅鴻,王忠民. [M].北京:電子工業(yè)出版社,.[3]黃國(guó)瑜,(JAVA語言版)[M].北京:.[4]劉艷凱,于明,張斌,王晨,陳榮興,[J].計(jì)算機(jī)集成制造系統(tǒng)CIMS,2003,(4):310313.[5]嚴(yán)志強(qiáng),龔京忠,李國(guó)喜,[J].機(jī)械設(shè)計(jì)與制造工程,2001,(3):3334[6]石雙慶,張金隆,[J].華中理工大學(xué)學(xué)報(bào),2000,(11):6466.