bom的構造方法
一、常規方法
在傳統的mrp軟體中,bom是採用網狀的結構儲存資料的,因此可能出現乙個父項編號下面有很多個子項編號,乙個子項編號同時屬於不同的父項編號的情況。其資料結構為:父項編號,子項編號,結構數量,低層碼。軟體可以通過專案縮排的方式表示物料間的層次關係。
優點:1)適應性好,儲存資料量小。
2)便於進行物料分解和材料彙總。
缺點:1)需編制大量程式實現直觀顯示產品構成。
2)不便於進行反查零件適合產品的情況。
二、樹型結構方法
在mrp軟體中,特別是在windows平台下的mrp軟體,一般bom採用樹型結構進行構造,其資料結構為:treekey,parent,物資編碼,結構數量,分解標誌。其中treekey標識節點號,parent標識父節點號。
優點:1)利用windows平台的treeview控制項可以實現節點的添、刪、複製等操作。
2)介面構造美觀、直觀易懂,使用者操作簡單。
3)適應單件小批量生產方式下產品bom的構造。
缺點:1)對於多系列多產品的情況,資料量會急劇膨脹。
2)不便於進行反查零件適合產品的情況。
3)物料分解演算法編制比較複雜,處理不當效率會很低。
三、標誌位方法
此方法適合多系列多產品的情況,每一種不同的零件都要標識出它適合的系列和產品型號,採用在相應型號標誌位置位的方法。
例如:某機車廠有17個產品系列,每個系列大約有20~25個不同型號的產品,每個產品有80~90個零件,採用treekey,parent構造bom,其記錄條數大約為17*20*80=27,200,其資料量非常巨大。編輯,修改,計算bom可能效率很低。
採用標誌位方法按每個系列構造bom可能可以解決問題:每個系列零件數大約在150~200條,其總記錄數大約在2550條。
1)構造方法:
·bom表結構:物資編碼,結構數量,所屬系列,適應型號,物資類別
注釋:在物資適應該系列的某型號時,其標誌位置1
物資類別分為:產成品,自製件,外購件,外協件
·mark表結構:系列編號,物資編碼,碼位
注釋: 此處存放各產成品對應的型號標誌位。
2)物料分解演算法
取出mps中的一條記錄,查詢bom.dbf,若該物資為產成品,查詢mark.dbf,取出系列編號-->xlbh,碼位-->mw,取出bom.dbf中所屬系列=xlbh,適應型號中mw=1的記錄。
mps中產成品需求數量*bom中的結構數量既為零件毛需求量。此演算法不用遞迴,乙個簡單的select語句即可,效率高。
2)物料分解演算法效率高,速度快。
3)便於進行反查零件適合的系列和型號。
缺點:1)要求bom只有一層,系列為根,該系列下的零件為葉子,適應性受限制。
2)不能以直觀的方式顯示每個產品的組成。
四、模組化bom構造
模組化bom主要應用於多系列多產品情況。該產品由基本件、特徵件、可選件組成,其中特徵件有多種(必選一種)因此可構成不同的產品。例如:卡車生產廠,有10種發動機,2種欄板,4種底盤,30種顏色,便可形成10*2*4*30=2400種產品,如果按產品結構儲存,就要存入2400種結構,並使mrp物料分解很複雜。採用模組化bom構造,去掉產品層,以部件層做為最終狀態,其結構只有:10+2+4+30種。其資料量會大大減少。
bom表資料結構為:父項編號,子項編號,選件號,結構數量,**比率
注釋:選件號表示:基本件、特徵件序號,可選件
mrp物料分解基本演算法:根據mps種產品需求數量,分解為各基本件和特徵件的數量(需求數量*結構數量***比率)。
PHP去除BOM頭的方法
但是php在設計之初並沒有考慮到bom頭的問題,所以在編譯碼的時候很容易出現問題 比如今天遇到的問題,json decode,當解碼的string有bom頭的時候json decode就解析失敗,返回null。為什麼不自動檢測並去除bom頭呢。小吐槽 試了兩種方式能去除掉 1 2 3 result ...
PHP去除BOM頭的方法
bom頭是utf 8來告訴編輯器 我是utf8編碼。它的編碼是 xef xbb xbf 但是php在設計之初並沒有考慮到bom頭的問題,所以在編譯碼的時候很容易出現問題 比如今天遇到的問題,json decode,當解碼的string有bom頭的時候json decode就解析失敗,返回null。為...
PHP去除BOM頭的方法
但是php在設計之初並沒有考慮到bom頭的問題,所以在編譯碼的時候很容易出現問題 比如今天遇到的問題,json decode,當解碼的string有bom頭的時候json decode就解析失敗,返回null。為什麼不自動檢測並去除bom頭呢。小吐槽 試了兩種方式能去除掉 12 3 result t...