(57)【特許請求の範囲】
【請求項１】
親部品と前記親部品を構成する子部品との間の親子関係が判明している場合に、部品のうち専ら前記子部品となる純部品の単価に基づいて、前記部品のうち専ら親部品となる製品、及び前記純部品と前記製品以外の部品である半製品の原価を計算する原価積上計算装置であって、
前記原価積上計算装置の制御部は、
前記親子関係にある前記部品を、前記半製品、前記純部品及び前記製品に分類し、
前記半製品又は前記製品を、連鎖する前記親子関係の階層が深い順、かつ、前記子部品の階層が下位である順に並び替えた順列であるグループロケーションと、
前記純部品を、前記子部品の最下位階層が下位である順、かつ、前記親部品がグループロケーションの順となるように並び替えた部品ロケーションと、
を定め、
前記半製品又は前記製品を示す前記グループロケーション毎に対応する前記部品ロケーションを有する前記純部品の単価と構成数の積を合計し原価とし、
前記純部品の前記単価に変更があった場合は、当該純部品を示す前記部品ロケーションに対応する既存の原価に対して、単価差分合計を加算する、
ことを特徴とする原価積上計算装置。
【請求項２】
親部品と前記親部品を構成する子部品との間の親子関係が判明している場合に、部品のうち専ら前記子部品となる純部品の単価に基づいて、前記部品のうち専ら親部品となる製品、及び前記純部品と前記製品以外の部品である半製品の原価を計算する原価積上計算装置であって、
前記原価積上計算装置の記憶部は、
直接的な前記親子関係を有する前記親部品を示す情報と前記子部品を示す情報との組み合わせに関連付け、前記子部品の構成数と、前記子部品の階層と、前記子部品の最下位階層と、を記憶した部品構成情報と、
前記純部品を示す情報に関連付けて、前記純部品の単価を記憶した部品単価情報と、を備え、
前記原価積上計算装置の制御部は、
前記部品構成情報の子部品を示す情報に半製品を有するレコードを、あるレコードの子部品を示す情報がさらに他のレコードの親部品を示す情報となっている連続する親子関係の群毎に集計し、
当該群を、各群を構成するレコードの子部品の階層が深い順に並び替え、
さらに、当該群毎にレコードを、子部品の階層が下位である順に並び替え、
最初のレコードから順に取得した子部品を示す情報に対しその末尾に製品を示す情報を付加した順列をグループロケーションとし、
前記部品構成情報の子部品を示す情報に純部品を有するレコードを、
子部品の最下位階層が下位である順に並び替え、
さらに、親部品を示す情報が、前記グループロケーションの順となるように並び替え、
最初のレコードから順に番号を充てこの番号を部品ロケーションとし、
前記部品ロケーションに関連付けて、前記部品単価情報の単価を記憶した部品単価差分情報を作成し、前記記憶部に記憶し、
前記グループロケーションの各情報に関連付けて、
前記部品ロケーションの範囲を示す情報と、
前記部品ロケーションの範囲に含まれる前記単価と前記構成数との積である前記原価と、
を記憶した原価再計算情報を作成し、前記記憶部に記憶することにより、前記製品及び前記半製品の前記原価を計算すること、
を特徴とする原価積上計算装置。
【請求項３】
前記原価積上計算装置の制御部は、
前期単価の変更があった前記純部品を示す情報と、当該純部品の変更後単価とを、入力装置を介して受け付けると、
前記部品単価差分情報の当該純部品に対応するレコードに対して、前記変更後単価から前記単価を控除した単価差分に前記構成数を乗じた単価差分合計を追加し、
前記単価差分合計を追加したレコードの前記部品ロケーションを検索キーとして前記原価再計算情報の前記部品ロケーションの範囲を示す情報を検索し、該当したレコードに対し前記原価と前記単価差分合計との合計を再積上原価として追加し、前記原価再計算テーブルを更新することにより、前記純部品の単価に変更があった後の前記製品及び前記半製品の前記原価を再計算すること、
を特徴とする請求項２に記載の原価積上計算装置。
【請求項４】
親部品と前記親部品を構成する子部品との間の親子関係が判明している場合に、部品のうち専ら前記子部品となる純部品の単価に基づいて、前記部品のうち専ら親部品となる製品、及び前記純部品と前記製品以外の部品である半製品の原価を計算するコンピュータを用いた原価積上計算方法であって、
前記コンピュータの記憶部は、
直接的な前記親子関係を有する前記親部品を示す情報と前記子部品を示す情報との組み合わせに関連付け、前記子部品の構成数と、前記子部品の階層と、前記子部品の最下位階層と、を記憶した部品構成情報と、
前記純部品を示す情報に関連付けて、前記純部品の単価を記憶した部品単価情報と、を備え、
前記コンピュータの制御部は、
前記部品構成情報の子部品を示す情報に半製品を有するレコードを、あるレコードの子部品を示す情報がさらに他のレコードの親部品を示す情報となっている連続する親子関係の群毎に集計し、
当該群を、各群を構成するレコードの子部品の階層が深い順に並び替え、
さらに、当該群毎にレコードを、子部品の階層が下位である順に並び替え、
最初のレコードから順に取得した子部品を示す情報に対しその末尾に製品を示す情報を付加した順列をグループロケーションとし、
前記部品構成情報の子部品を示す情報に純部品を有するレコードを、
子部品の最下位階層が下位である順に並び替え、
さらに、親部品を示す情報が、前記グループロケーションの順となるように並び替え、
最初のレコードから順に番号を充てこの番号を部品ロケーションとし、
前記部品ロケーションに関連付けて、前記部品単価情報の単価を記憶した部品単価差分情報を作成し、前記記憶部に記憶し、
前記グループロケーションの各情報に関連付けて、
前記部品ロケーションの範囲を示す情報と、
前記部品ロケーションの範囲に含まれる前記単価と前記構成数との積である前記原価と、
を記憶した原価再計算情報を作成し、前記記憶部に記憶することにより、前記製品及び前記半製品の前記原価を計算すること、
を特徴とする原価積上計算方法。
【請求項５】
前記コンピュータの制御部は、
前期単価の変更があった前記純部品を示す情報と、当該純部品の変更後単価とを、入力装置を介して受け付けると、
前記部品単価差分情報の当該純部品に対応するレコードに対して、前記変更後単価から前記単価を控除した単価差分に前記構成数を乗じた単価差分合計を追加し、
前記単価差分合計を追加したレコードの前記部品ロケーションを検索キーとして前記原価再計算情報の前記部品ロケーションの範囲を示す情報を検索し、該当したレコードに対し前記原価と前記単価差分合計との合計を再積上原価として追加し、前記原価再計算テーブルを更新することにより、前記純部品の単価に変更があった後の前記製品及び前記半製品の前記原価を再計算すること、
を特徴とする請求項４に記載の原価積上計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原価積上計算装置及び原価積上計算方法に関する。
【背景技術】
【０００２】
多数の部品を組み合わせて製品を製作する場合に、その製品の原価はその製品を構成する部品の単価の和として管理される。そして、ある製品を構成する多数の部品のうち少なくとも１つの単価の変更が生じた場合、その製品の原価も変更される。
この場合において、単価が変更された部品を含むすべての製品について原価を再積上げする技術が開示されている（例えば特許文献１）。特許文献１の技術では、例えば製品Ａを構成する部品a１、部品ａ２、及び部品ａ３のうち、部品ａ１の単価が変更された場合、単価の変更がなかった他の部品の単価を含めて積上げ計算を行う（変更後の製品Ａの原価＝変更後の部品ａ１の単価＋部品ａ２の単価＋部品a３の単価）。
【特許文献１】特開２００１−３３１２１０号公報（段落００４３、００５９）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、製品が多くの部品から構成されている場合、特許文献１の技術によると、加算する項の数が膨大になり、コンピュータを使用して計算する際の処理時間が長くなるという問題がある。
本発明は、部品の単価の変更があった場合に処理時間の短縮を図りつつ製品の原価の積上計算を行う、原価積上計算装置等を提供することを目的とする。
【課題を解決するための手段】
【０００４】
原価を再積上げする場合において、変更のない部品の単価を計算に用いることなく、単価の変更があった部品の単価の増減分だけを変更前の製品の原価に対して加算することとすれば、処理時間は短縮される。
前記目的を達成するために、本発明の原価積上計算装置は、親子関係にある部品を、半製品、純部品及び製品に分類する。半製品又は製品を、連鎖する親子関係の階層が深い順、かつ、子部品の階層が下位である順に並び替えた順列であるグループロケーションと、純部品を、子部品の最下位階層が下位である順かつ、親部品がグループロケーションの順となるように並び替えた部品ロケーションとを定める。前段階の処理として、半製品又は製品を示すグループロケーション毎に対応する部品ロケーションを有する純部品の単価と構成数の積を合計し原価とする。純部品の単価に変更があった場合は、その純部品を示す部品ロケーションに対応する既存の原価に対して、単価差分合計を加算する。
【発明の効果】
【０００５】
本発明によれば、部品の単価の変更があった場合に処理時間の短縮を図りつつ製品の原価の積上計算を行う、原価積上計算装置等を提供することが可能になる。
【発明を実施するための最良の形態】
【０００６】
以下に、本発明を実施するための最良の形態（「本実施形態」という）を、図等を参照しながら詳細に説明する。
【０００７】
なお、詳細な説明に先立って、処理の概要を説明する。
以下の実施形態では、原価積上計算装置１は、（１）「前記部品構成情報の子部品を示す情報に半製品を有するレコードを、あるレコードの子部品を示す情報がさらに他のレコードの親部品を示す情報となっている連続する親子関係の群毎に集計」する。つまり、後記する図４の部品構成マスタ２０を元に、後記する図９のオリジナルＢＯＭ分解テーブル３０を作成する。さらに、オリジナルＢＯＭ分解テーブル３０を元に、後記する図１０の半製品構成テーブル３１を作成する。この処理は、後記する図８の原価積上計算処理手順のステップＳ２０１〜Ｓ２０５の処理に相当する。
【０００８】
原価積上計算装置１は、（２ａ）「当該群を、各群を構成するレコードの子部品の階層が深い順に並び替え」、（２ｂ）「さらに、当該群毎にレコードを、子部品の階層が下位である順に並び替え」、そして（２ｃ）「最初のレコードから順に取得した子部品を示す情報に対しその末尾に製品を示す情報を付加した順列をグループロケーション」とする。つまり、図１０の半製品構成テーブル３１のレコードを並び替えて後記する図１１の半製品構成テーブル３１を作成する。さらに、図１１の半製品構成テーブル３１を元に、後記する図１３のグループロケーション展開テーブル３３を作成する。この処理は、図８の原価積上計算処理手順のステップＳ２０６、Ｓ２０８の処理に相当する。
【０００９】
原価積上計算装置１は、（３ａ）「前記部品構成情報の子部品を示す情報に純部品を有するレコードを、子部品の最下位階層が下位である順に並び替え」、（３ｂ）「さらに、親部品を示す情報が、前記グループロケーションの順となるように並び替え」、そして（３ｃ）「最初のレコードから順に番号を充てこの番号を部品ロケーション」とする。つまり、図９のオリジナルＢＯＭ分解テーブル３０を元に、後記する図１２のフラットＢＯＭ部品展開テーブル３２を作成する。この処理は、図８の原価積上計算処理手順のステップＳ２０７の処理に相当する。
【００１０】
原価積上計算装置１は、（４ａ）「前記部品ロケーションに関連付けて、前記部品単価情報の単価を記憶した部品単価差分情報を作成し、前記記憶部に記憶し」、（４ｂ）前記グループロケーションの各情報に関連付けて、前記部品ロケーションの範囲を示す情報と、前記部品ロケーションの範囲に含まれる前記単価と前記構成数との積である前記原価と、を記憶した原価再計算情報を作成し、前記記憶部に記憶することにより、前記製品及び前記半製品の前記原価を計算」する。つまり、図１２のフラットＢＯＭ部品展開テーブル３２を元に、後記する図６の部品単価差分テーブル２２を作成する。さらに、図１３のグループロケーション展開テーブル３３及び図６の部品単価差分テーブル２２を元に、後記する図７の原価再計算テーブル２３を作成する。この処理は、図８の原価積上計算処理手順のステップＳ２０９〜Ｓ２１２の処理に相当する。
【００１１】
また、原価積上計算装置１は、（５ａ）「前期単価の変更があった前記純部品を示す情報と、当該純部品の変更後単価とを、入力装置を介して受け付けると、前記部品単価差分情報の当該純部品に対応するレコードに対して、前記変更後単価から前記単価を控除した単価差分に前記構成数を乗じた単価差分合計を追加し」、（５ｂ）「前記単価差分合計を追加したレコードの前記部品ロケーションを検索キーとして前記原価再計算情報の前記部品ロケーションの範囲を示す情報を検索し、該当したレコードに対し前記原価と前記単価差分合計との合計を再積上原価として追加し、前記原価再計算テーブルを更新することにより、前記純部品の単価に変更があった後の前記製品及び前記半製品の前記原価を再計算」する。つまり、後記する図１７の部品単価変更データ３４を元に、図６の部品単価差分テーブル２２に変更を加える。さらに、変更後の図６の部品単価差分テーブル２２を元に、図７の原価再計算テーブル２３に変更を加える。この処理は、後記する図１６の原価再積上計算処理手順のステップＳ３０１〜Ｓ３０６の処理に相当する。
【００１２】
図１は、本実施形態に係る原価積上計算装置１の構成の一例を示す図である。
原価積上計算装置は、一般的なコンピュータであり、相互にバスで接続された、中央制御装置（制御部）１０、入力装置１１、出力装置１２、主記憶装置（記憶部）１３、及び補助記憶装置（記憶部）１４を有している。
補助記憶装置１４には、部品構成マスタ２０、部品単価マスタ２１、部品単価差分テーブル２２及び原価再計算テーブル２３が記憶されている。これらは、製品の構成部品、その単価、単価の変更内容、及び変更前後の製品の単価についての情報である（詳細後記）。
なお、「部品構成情報」、「部品単価情報」、「部品単価差分情報」及び「原価再計算情報」には、部品構成マスタ、部品単価マスタ、部品単価差分テーブル及び原価再計算テーブルがそれぞれ相当する。
【００１３】
オリジナルＢＯＭ分解テーブル３０、半製品構成テーブル３１、フラットＢＯＭ部品展開テーブル３２、グループロケーション展開テーブル３３及び部品単価変更データ３４は、原価積上計算を行う過程で作成され、主記憶装置１３内に一時的に記憶される情報である。
原価積上計算処理部４０及び原価再積上計算処理部４１はプログラムである。以下の説明において「○○部は」と主体を示した場合、それは、中央制御装置１０が補助記憶装置１４から各プログラムを読み出し、主記憶装置１３にロードした上で、各プログラムの機能を実行することを意味する。
【００１４】
（オリジナルＢＯＭ）
図２は、本実施形態に係るオリジナルＢＯＭ４２の一例を示す図である。オリジナルＢＯＭ（Bill of Materials：部品表）４２は、製品の構成部品をツリーの階層構造で表現した説明図である。
上下関係の線で結ばれた２つの長方形のうち、上の長方形（例えば符号５１に対する符号５０）は親部品を、下の長方形（例えば符号５０に対する符号５１）は親部品を構成する子部品を示す。ある部品がさらに別の部品の構成部品になっている場合もあるので、「親部品」及び「子部品」とは相対的な呼び名である。
そして、上下関係の線で示される当該相対的な関係を「親子関係」という。
【００１５】
（製品、半製品及び純部品）
部品のうち、専ら「子部品」にしかなっていないツリーの階層構造の末端の部品を「純部品」（図２ではアルファベットの小文字で記されている。例えば符号５１。）といい、部品のうち、専ら「親部品」にしかなっていないツリーの階層構造の頂点の部品を「製品」（図２では「Ｘ」のみ）といい、純部品と製品以外の部品を「半製品」（図２ではアルファベットの大文字で記されている。但し「Ｘ」は除く。例えば符号５０。）という。
符号５２のＬＣ（Level Code：階層）は、ツリーの頂点から順に０、１、２、３、４、・・・と振ったツリー構造のなかでの上下の位置である。
符号５３〜５５のＷＫ-ＧＲ-Ｆ（Work Group Flag）は、ＬＣが「１」である半製品（ここでは「Ａ」、「Ｂ」及び「Ｃ」）の直接的又は間接的な子部品によって構成される纏まりを意味する。
【００１６】
ちなみに、符号５３のＷＫ-ＧＲ-Ｆ：１に注目すると、「ａ」、「ｂ」及び「Ｄ」は親部品「Ａ」の子部品であり、「ｃ」及び「ｍ」は親部品「Ｄ」の子部品であることがわかる。さらに、「Ａ」は「Ｘ」の子部品でもある。
符号５６〜５８の「＊」は、それが付されている「ａ」及び「ｋ」に単価の変更がある（詳細後記）ことを示している。当該変更があった場合、本実施形態に係る原価積上計算装置１は、それらを純部品として含む製品及び半製品の変更後の原価を計算する。
【００１７】
（フラットＢＯＭ部品展開）
図３は、本実施形態に係るフラットＢＯＭ部品展開４３の一例を示す図である。
フラットＢＯＭ部品展開４３は、図２におけるツリーの階層構造の純部品に注目し、それらを水平に並べて表現したものである。
横軸には、図２に現れた純部品が、「ｌ」、「ｍ」、「ｋ」、・・・、「ｊ」のように並んでいる。同じ純部品であっても、重複して出現する場合もある（例えば「ａ」、「ｍ」）。
縦軸に注目すると、符号６０のＬＣは、図２のＬＣと同じである。
符号６１のＬＬＣ（Low Level Code：最下階層）は、ある部品が複数のＬＣを有する場合の最下層のＬＣである。
符号６２の部品ロケーションは、フラットＢＯＭ部品展開４３における横軸の位置に対し左から順に１、２、３、・・・のように付したものである。この順序は、後記するように、純部品の属するＷＫ-ＧＲ-Ｆと純部品のＬＬＣが考慮された並びとなっている。
【００１８】
符号６３のＷＫ-ＧＲ-Ｆは、図２のＷＫ-ＧＲ-Ｆと同じである。図２のＷＫ-ＧＲ-Ｆ１〜３に対応して３つの行が存在する。各行に記されている横方向の矢印は、その純部品がいずれのＷＫ-ＧＲ-Ｆに属するかを示している。
ＷＫ-ＧＲ-Ｆは、それに含まれる半製品の階層が深い順、すなわち最も下位にある半製品のＬＣの値が大きい順に図３の上から（左から）並んでいる。１つのＷＫ-ＧＲ-Ｆにおける純部品は、そのＬＬＣの値が大きい順に並んでいる。よって、純部品が属するＷＫ-ＧＲ-Ｆ及び純部品のＬＬＣが決まると図３の左からの位置（列）が決まる。この列の位置が「部品ロケーション」に相当する。
【００１９】
グループロケーション欄６４でいう「グループ」とは、ある製品又は半製品から見て、その製品又は半製品が直接的又は間接的にどのような純部品から構成されるか、を示した纏まりを意味する。「グループ」は、すべての半製品毎に定義されるという意味で、ＬＣが「１」である半製品毎に定義されるＷＫ-ＧＲ-Ｆとは異なる。
そして、半製品／製品欄６５の半製品「Ｆ」等は、その半製品が属するＷＫ-ＧＲ-Ｆに属する半製品の数の多い順に、かつ、同一のＷＫ-ＧＲ-Ｆの中では、半製品のＬＣの値が大きい順に上から並んでいる。一番下には、製品「Ｘ」が位置する。
グループロケーションとは、このような順で並べられた「Ｆ」、「Ｅ」、「Ｂ」、「Ｄ」、「Ａ」、「Ｃ」、「Ｘ」の順列そのものであり、さらにこの順列に対応して順に振られた１、２、・・・、７の数字（符号６６〜７２）でもある。各行６６〜７２に記されている横方向の矢印は、その純部品がどの「半製品／製品」の直接的又は間接的な子部品であるかを示している。
【００２０】
ちなみに、一番左の純部品「ｌ」の列に注目すると、以下の事柄がわかる。
純部品「ｌ」のＬＣは、「４」である。
純部品「ｌ」のＬＬＣは、「４」であって、ＬＣに一致している。
純部品「ｌ」のＷＫ-ＧＲ-Ｆは、「２」である。なぜならば、「ＷＫ-ＧＲ-Ｆ：２」の行に矢印が走っているからである。
純部品「ｌ」のグループロケーションは、「グループロケーション１」、「グループロケーション２」、「グループロケーション３」及び「グループロケーション７」である。なぜならば、これらの行に矢印が走っているからである。このことは、純部品「ｌ」が、半製品「Ｆ」、半製品「Ｅ」、半製品「Ｂ」及び製品「Ｘ」の直接的又は間接的な子部品であることを示している。
【００２１】
ＬＣとＬＬＣとの関係を純部品「ｍ」を例にして説明する。２列目に着目すると、純部品「ｍ」のＬＣは「４」である。これは、「ＷＫ-ＧＲ-Ｆ：２」における純部品「ｍ」のＬＣを示している。６列目に着目すると純部品「ｍ」のＬＣは「３」である。これは、「ＷＫ-ＧＲ-Ｆ：１」における純部品「ｍ」のＬＣを示している。これらのＬＣのうち最下階層であるものは「４」である。この「４」が、２列目及び６列目のＬＬＣの行に共通して現れている。
【００２２】
（オリジナルＢＯＭ４２とフラットＢＯＭ部品展開４３の位置付け）
図２のオリジナルＢＯＭ４２及び図３のフラットＢＯＭ部品展開４３は、本発明の考え方（例えば、純部品「ｌ」の単価が変更された場合には、半製品「Ｆ」、半製品「Ｅ」、半製品「Ｂ」及び製品「Ｘ」の原価が変更されること）を説明するために記載したものである。
そして、後記する処理手順においては、図２のオリジナルＢＯＭ４２及び図３のフラットＢＯＭ部品展開４３と全く同じものが記憶、作成されるわけではない。
しかしながら、原価積上計算装置１の制御部（１０）が、オリジナルＢＯＭ４２を本発明の原価積上計算装置１の記憶部（１３、１４）に記憶させ、それに基づいてフラットＢＯＭ部品展開４３を作成したうえで、これを記憶部に記憶することにより本発明を実施することも可能である。
【００２３】
（部品構成マスタ）
図４は、本実施形態に係る部品構成マスタ２０の一例を示す図である。部品構成マスタ２０は、部品間の親子関係等を示すマスタである。そして、詳細は後記するが、部品構成マスタ２０は、オリジナルＢＯＭ分解テーブル３０を作成する基となっている。
親記号欄１０１に記憶された親記号に関連付けて、子記号番号欄１０２には子記号が、構成数欄１０３には構成数が、子のＬＣ欄１０４には子のＬＣ（子部品の階層）が、子のＬＬＣ欄１０５には子のＬＬＣ（子部品の最下位階層）が、それぞれ記憶されている。
親記号欄１０１の親記号は、親部品を示す記号である。
子記号欄１０２の子記号は、子部品を示す記号である。
構成数欄１０３の構成数は、そのレコードにおける子部品の数である。但し、ここでは、すべてのレコードに「１」が記憶されている。
子のＬＣ欄１０４の子のＬＣは、子部品のＬＣである。
子のＬＬＣ欄１０５の子のＬＬＣは、子部品のＬＬＣである。
なお「親部品を示す情報」及び「子部品を示す情報」には、親記号及び子記号がそれぞれ相当する。
【００２４】
図２において、親子関係を示す上下関係の線（「Ａ」「ｂ」間のように直線の場合も、「Ａ」「ａ」間のようにクランク形である場合もある）は、１８個存在する。図４の各レコードは、これらの各線に対応している。例えば、１行目のレコードは、「Ｘ」と「Ａ」の親子関係に対応する。図２では、「Ｘ」から、「Ａ」、「Ｂ」及び「Ｃ」に対して３本の親子関係を示す上下関係の線が出ている。これらの線が、図４における１〜３行目のレコードに対応している。したがって、同じ部品を示す記号（例えば「Ａ」）が親記号欄にも子記号欄にも出現し得る。
部品構成マスタは所与のものとする。
【００２５】
（部品単価マスタ）
図５は、本実施形態に係る部品単価マスタ２１の一例を示す図である。部品単価マスタ２１は、純部品の単価を記憶したマスタである。
子記号欄１０６に記憶された子記号に関連付けて、単価欄１０７には単価が記憶されている。
子記号欄１０６の子記号は、図４の子記号と同じである。但し、ここでは、図４の子記号欄１０２に現れた子記号のうち、純部品に係るものだけが記憶されている。
単価欄１０７の単価は、純部品の１個当たりの価格である。
ちなみに、１行目のレコードは、純部品「ａ」の単価が「１００」であることを示している。部品単価マスタのレコードは、純部品の数だけ存在する。但し、図２に表れない部品（「ｄ」等）についてのレコードも図５では存在する。
部品単価マスタは所与のものとする。
【００２６】
（部品単価差分テーブル）
図６は、本実施形態に係る部品単価差分テーブル２２の一例を示す図である。部品単価差分テーブル２２は、部品ロケーションに関連付けて純部品の単価（変更前及び変更後）等を記憶したテーブルである。
部品ロケーション欄１０８に記憶された部品ロケーションに関連付けて、子記号欄１０９には子記号が、構成数欄１１０には構成数が、単価欄１１１には単価が、変更後単価欄１１２には変更後単価が、単価差分欄１１３には単価差分が、単価差分合計欄１１４には単価差分合計が、それぞれ記憶されている。
部品ロケーション欄１０８の部品ロケーションは、図３の部品ロケーションと同じである。
子記号欄１０９の子記号は、図４の子記号と同じである。但し、ここでは、図４の子記号欄に現れた子記号のうち、純部品に係るものだけが記憶されている。
構成数欄１１０の構成数は、図４の構成数と同じである。
単価欄１１１の単価は、図５の単価と同じである。
変更後単価欄１１２の変更後単価は、純部品の単価に変更があった場合の変更後の単価である。単価に変更のない純部品に係るレコードは空欄になっている。
単価差分欄１１３の単価差分は、変更後単価から単価を控除した値である。
単価差分合計欄１１４の単価差分合計は、単価差分に構成数を乗じた値である。
【００２７】
ちなみに、３行目のレコードは、以下の事柄を示している。
すなわち、子記号が「ｋ」である純部品は、部品ロケーションが「３」であり、構成数が「１」であり、単価が「３０」であること、さらに、変更後単価が「６０」であり、単価差分が「３０」であり、単価差分合計が「３０」である、ということである。部品単価差分テーブル２２のレコードは、部品ロケーションの数だけ存在する（図２に現れた純部品の数だけ存在するのではない）。
【００２８】
純部品の単価の変更がない場合は、部品単価差分テーブル２２の変更後単価欄１１２〜単価差分合計欄１１４はすべてのレコードにつき空欄として補助記憶装置１４に記憶されている（詳細後記）。
【００２９】
（原価再計算テーブル）
図７は、本実施形態に係る原価再計算テーブル２３の一例を示す図である。原価再計算テーブル２３は、半製品及びツリー構造の頂点にある製品「Ｘ」の原価等を記憶したテーブルである。
子記号欄１１５に記憶されている子記号に関連付けて、グループロケーション欄１１６にはグループロケーションが、部品ロケーションスタート情報欄１１７には部品ロケーションスタート情報が、部品ロケーションエンド情報欄１１８には部品ロケーションエンド情報が、原価欄１１９には原価が、再積上原価欄１２０には再積上原価が、それぞれ記憶されている。
【００３０】
子記号欄１１５の子記号は、図４の子記号と同じである。但し、ここでは、図４の子記号欄１０２に現れた子記号のうち半製品に係るもの及び、ツリー構造の頂点にある製品「Ｘ」だけが記憶されている。
グループロケーション欄１１６のグループロケーションは、図３のグループロケーションと同じである。
部品ロケーションスタート情報欄１１８の部品ロケーションスタート情報は、図３におけるグループロケーションの行６６〜７２に記憶されている横方向の矢印が示す範囲に含まれる部品ロケーションのうち、最も数値の小さい（図３では最も左側にある）部品ロケーションである。
部品ロケーションエンド情報欄１１９の部品ロケーションエンド情報は、図３におけるグループロケーションの行６６〜７２に記憶されている横方向の矢印が示す範囲に含まれる部品ロケーションのうち、最も数値の大きい（図３では最も右側にある）部品ロケーションである。
原価欄１１９の原価は、子記号に係る半製品又は製品の原価であって、当該半製品又は製品を構成する純部品の単価と構成数の積の合計である。
再積上原価欄１２０の再積上原価は、ある純部品の単価が変更され再度積上計算を行った後の原価である。原価再計算テーブル２３のレコードは、半製品又は製品の数だけ存在する。
【００３１】
純部品の単価の変更がない場合、原価再計算テーブル２３の再積上原価欄１２０はすべてのレコードにつき空欄として補助記憶装置１４に記憶されている（詳細後記）。
【００３２】
（部品単価差分テーブルと原価再計算テーブルとの関係）
図７を参照すると、２、３、５、６、７行目のレコードにおいて、原価と再積上原価とが相違している。これは半製品「Ｅ」、「Ｂ」、「Ａ」、「Ｃ」及び製品「Ｘ」に含まれる純部品の単価に変更があったことを示している。
一方、図６の３、８、１０行目のレコードにおいて、部品「ｋ」及び「ａ」の単価が変更されていることがわかる。図６と図７は、部品ロケーションを介して対応関係がわかる仕組みになっている。すなわち、単価の変更があった図６のレコードの部品ロケーション「３」、「８」及び「１０」は、原価と再積上原価が相違している図７のレコードの部品ロケーションスタート情報と部品ロケーションエンド情報が示す範囲に含まれている。
【００３３】
（処理手順）
以下に本実施形態の処理手順を説明する。処理手順には、（１）原価積上計算処理手順と（２）原価再積上計算処理手順の２つがある。（１）は、部品構成マスタ２０及び部品単価マスタ２１から部品単価差分テーブル２２及び原価再計算テーブル２３を作成することにより、純部品の単価が変更になる前の半製品及び製品の原価を計算する手順である。（２）は純部品の単価が変更された場合に、部品単価差分テーブル２２及び原価再計算テーブル２３を再作成する（部品の単価の変更を反映させたうえで上書きする）ことにより、半製品及び製品の原価を再計算する処理手順である。（２）が実行されるためには（１）が終了していることが前提となる。
【００３４】
（原価積上計算処理手順）
図８は、本実施形態に係る原価積上計算処理手順のフローチャートである。
ステップＳ２０１において、原価積上計算処理部４０は、部品構成マスタ２０を読み出し、オリジナルＢＯＭ分解テーブル３０の原型を作成する。ここで「原型」とは、以降順次加工されていくテーブル等の最初の型という意味である（他のテーブルにおいても同様）。
具体的には、原価積上計算処理部４０は、補助記憶装置１４から部品構成マスタ２０（図４）を読み出し、そのコピーをオリジナルＢＯＭ分解テーブル３０（図９参照）として主記憶装置１３に一時的に記憶する。
ステップＳ２０２において、原価積上計算処理部４０は、子記号半製品フラグ欄を作成する。
具体的には、原価積上計算処理部４０は、第一に、図９に示すように、オリジナルＢＯＭ分解テーブル３０に「子記号半製品フラグ」欄１２５を新設する。
第二に、オリジナルＢＯＭ分解テーブル３０の各レコードにつき、そのレコードの子記号欄１２２の子記号が、すべてのレコードの親記号欄１２１の何れかに存在するか否かを判断し、存在する場合は「１」を、存在しない場合は「０」をそのレコードの子記号半製品フラグ欄１２５に記憶する。
【００３５】
ステップＳ２０３において、原価積上計算処理部４０は、オリジナルＢＯＭ分解テーブル３０を完成する。
具体的には、原価積上計算処理部４０は、第一に、オリジナルＢＯＭ分解テーブル３０の子記号半製品フラグをキーにして昇順に（「０」が上「１」が下になるように）ソートする。
第二に、オリジナルＢＯＭ分解テーブル３０のレコードのうち子記号半製品フラグが「０」のものについて、子のＬＬＣをキーにして降順に（数字の大きいもの程上になるように）ソートする。
第三に、オリジナルＢＯＭ分解テーブル３０のレコードのうち子記号半製品フラグが「１」のものについて、子のＬＬＣをキーにして昇順に（数字の小さいもの程上になるように）ソートする。
ステップＳ２０３が終了した時点で、オリジナルＢＯＭ分解テーブル３０は図９に示す状態になっている。
【００３６】
ステップＳ２０４において、原価積上計算処理部４０は、半製品構成テーブル３１の原型を作成する。
具体的には、原価積上計算処理部４０は、親記号欄、子記号欄、ＷＫ-ＧＲ-Ｆ欄、及び子のＬＣ欄を有する半製品構成テーブル３１（図１０）を作成する（この時点では欄は空白である）。
【００３７】
ステップＳ２０５において、原価積上計算処理部４０は、半製品構成テーブル３１のレコードを作成する。
具体的には、原価積上計算処理部４０は以下をその順に行う。
（１）ステップＳ２０３にて完成したオリジナルＢＯＭ分解テーブル３０（図９）において子記号半製品フラグ欄１２５に「１」（カウント値の「１」とは関係ない）を有するレコード（「半製品レコード」と言う）を分離する。
（２）「カウント値＝１」を保持する。カウント値は処理の繰り返し回数であり、後記するようにインクリメントされる。
（３）半製品レコードのうち最初の（一番上の）レコードを参照し、親記号、子記号及び子のＬＣを取得する。ここでは、「Ｘ」、「Ａ」及び「１」を取得することになる。
（４）ステップＳ２０４にて作成した半製品構成テーブル３１の最初の空白のレコードの親記号欄１２７、子記号欄１２８、ＷＫ-ＧＲ-Ｆ欄１２９及び子のＬＣ欄１３０に、（３）にて取得した親記号「Ｘ」、（３）にて取得した子記号「Ａ」、カウント値「１」、及び（３）にて取得した子のＬＣ「１」をそれぞれ記憶する。
（５）前記（４）にて記憶した子記号（この例では「Ａ」）を検索キーとして、半製品レコードのうち既に参照した及び既に検索して該当した以外のレコード（未参照未該当レコード）の親記号欄１２１を検索し、該当したレコード（この例では下から３行目のレコード）の、親記号、子記号及び子のＬＣを取得する。ここでは、「Ａ」、「Ｄ」及び「２」を取得することになる。
（６）ステップＳ２０４にて作成した半製品構成テーブル３１の次の空白のレコードの親記号欄１２７、子記号欄１２８、ＷＫ-ＧＲ-Ｆ欄１２９及び子のＬＣ欄１３０に、（５）にて取得した親記号「Ａ」、（５）にて取得した子記号「Ｄ」、（２）にて保持したカウント値「１」、及び（５）にて取得した子のＬＣ「２」をそれぞれ記憶する。
（５）〜（６）の処理手順を、（５）の検索において該当がなくなるまで繰り返す（この例では、親記号に「Ａ」を有するレコードは他に該当がない）。（５）の検索にて該当がなくなった場合は、カウント値に１を加えて（７）に進む。
（７）半製品レコードのうち次の未参照未該当レコード（この例では下から５行目のレコード）を参照し、親記号、子記号及び子のＬＣを取得する。ここでは、「Ｘ」、「Ｂ」及び「１」を取得することになる。
（８）前記（４）〜（６）を繰り返す。
以上の（４）〜（８）は、未参照未該当レコードが無くなるまで（半製品レコードのすべてについて、半製品構成テーブルのレコードが作成し終わるまで）繰り返される。
ステップＳ２０５が終了した時点で、半製品構成テーブルは図１０に示す状態になっている。
【００３８】
ステップＳ２０６において、原価積上計算処理部４０は、半製品構成テーブル３１を完成する。
具体的には、原価積上計算処理部４０は、ステップＳ２０５を更に以下のように加工する。
第一に、半製品構成テーブル３１のすべてのレコードをＷＫ-ＧＲ-Ｆ毎にグルーピングする。
第二に、各グループに含まれるレコードの子のＬＣのうち、最下位のものを取得し、当該取得した子のＬＣが下位のものが上になるように、グループを並び替える。
ここで、ＷＫ-ＧＲ-Ｆが１のグループに含まれるレコードの子のＬＣのうち、最下位のものは「２」である。ＷＫ-ＧＲ-Ｆが２のグループに含まれるレコードの子のＬＣのうち、最下位のものは「３」である。ＷＫ-ＧＲ-Ｆが３のグループに含まれるレコードの子のＬＣのうち、最下位のものは「１」である。従って、上から、ＷＫ-ＧＲ-Ｆが２のグループ、ＷＫ-ＧＲ-Ｆが１のグループ、ＷＫ-ＧＲ-Ｆが３のグループとなるように並び替える。
第三に、グループ毎に、レコードを、子のＬＣをキーとして、降順にソートする。
ステップＳ２０６が終了した時点で、半製品構成テーブル３１は図１１に示す状態になっている。
【００３９】
ステップＳ２０７において、原価積上計算処理部４０は、フラットＢＯＭ部品展開テーブル３２を作成する。
具体的には、原価積上計算処理部４０は以下をその順に行う。
（１）ステップＳ２０３にて完成したオリジナルＢＯＭ分解テーブル３０（図９）において子記号半製品フラグ欄１２５に「０」を有するレコードを分離し、当該分離されたレコード（「部品レコード」と言う）の子記号半製品フラグ欄１２５を削除し、部品ロケーション欄１４０（図１２）を新設することによってフラットＢＯＭ部品展開テーブル３２（図１２）を作成する。
（２）ステップＳ２０６にて完成した半製品構成テーブル３１（図１１）の子記号の順（この例では、Ｆ、Ｅ、Ｂ、Ｄ、Ａ、Ｃである）に、（１）で作成したフラットＢＯＭ部品展開テーブル３２の親記号をマッチングさせ、フラットＢＯＭ部品展開テーブル３２のレコードをＦ、Ｅ、Ｂ、Ｄ、Ａ、Ｃの順に並びかえる。このとき、同一の親記号を有する複数のレコードは、子のＬＬＣの降順に並んでいる（ステップＳ２０３におけるソートの結果を維持している）。
（３）空白である部品ロケーション欄１４０に、最初のレコードから順に１、２、３、・・の番号を記憶する。
ステップＳ２０７が終了した時点で、フラットＢＯＭ部品展開テーブル３２は図１２に示す状態になっている。
【００４０】
ステップＳ２０８において、原価積上計算処理部４０は、グループロケーション展開テーブル３３の原型を作成する。
具体的には、原価積上計算処理部４０は、第一に、ステップＳ２０６にて完成した半製品構成テーブル３１（図１１）をコピーし、構成数欄１４３、グループロケーション欄１４６、部品ロケーションスタート情報欄１４７、及び部品ロケーションエンド情報欄１４８を新設し、グループロケーション展開テーブル３３（図１３）とする。
第二に、各レコードの子記号を検索キーとしてステップＳ２０３にて完成したオリジナルＢＯＭ分解テーブル３０（図９）の子記号欄１２２を検索し、該当したレコードの構成数を取得する。そしてその取得した構成数をグループロケーション展開テーブル３３の構成数欄１４３に記憶する。
【００４１】
ステップＳ２０９において、原価積上計算処理部４０は、グループロケーション展開テーブル３３にグループロケーション等を追加する。
具体的には、原価積上計算処理部４０は以下をその順に行う。
（１）グループロケーション展開テーブル３３のグループロケーション欄１４６に、最初のレコードから順に１、２、３、・・の番号を記憶する。
（２）グループロケーション展開テーブル３３の最初のレコードを参照し、子記号を取得する（ここでは「Ｆ」）。取得した子記号を検索キーとして、ステップＳ２０７にて作成したフラットＢＯＭ部品展開テーブル３２（図１２）の親記号欄１３５を検索し、該当したレコードの部品ロケーションを取得する（ここでは「１」と「２」）。
（３）前記（２）で参照したグループロケーション展開テーブル３３（図１３）のレコードの部品ロケーションスタート情報欄１４７及び部品ロケーションエンド情報欄１４８に、（２）で取得した部品ロケーションのうち最小のもの及び最大のものをそれぞれ記憶する。
（４）グループロケーション展開テーブル３３の次のレコードを参照し、子記号を取得する（ここでは「Ｅ」）。取得した子記号を検索キーとして、ステップＳ２０７にて作成したフラットＢＯＭ部品展開テーブル３２（図１２）の親記号欄１３５を検索し、該当したレコードの部品ロケーションを取得する（ここでは「３」）。
（５）前記（４）で参照したグループロケーション展開テーブル３３（図１３）のレコードの部品ロケーションスタート情報欄１４７には「１」を、部品ロケーションエンド情報欄１４８には（４）で取得した部品ロケーションのうち最大のもの（ここでは「３」）をそれぞれ記憶する。
なお、（４）及び（５）の処理手順は、（４）にて参照するレコードのＷＫ-ＧＲ-Ｆ欄１４５の値が変わるまで繰り返す。ＷＫ-ＧＲ-Ｆ欄１４５の値が変わった場合は、（６）に進む。
（６）取得した部品ロケーションのうち、最大のもの＋１（次の開始点）を保持する。ここでは、最大のものが「５」であるので、次の開始点として「６」を保持することになる。
（７）グループロケーション展開テーブル３３（図１３）の次のレコードを参照し、子記号を取得する（ここでは「Ｄ」）。取得した子記号を検索キーとして、ステップＳ２０７にて作成したフラットＢＯＭ部品展開テーブル３２（図１２）の親記号欄１３５を検索し、該当したレコードの部品ロケーションを取得する（ここでは「６」と「７」）。
（８）前記（７）で参照したグループロケーション展開テーブル３３（図１３）のレコードの部品ロケーションスタート情報欄１４７には次の開始点（ここでは「６」）を、部品ロケーションエンド情報欄１４８には（７）で取得した部品ロケーションのうち最大のもの（ここでは「７」）をそれぞれ記憶する。
なお、（７）〜（８）の処理手順は、（７）にて参照するレコードのＷＫ-ＧＲ-Ｆ欄１４５の値が変わるまで繰り返す。ＷＫ-ＧＲ-Ｆ欄１４５の値が変わった場合は（６）に戻る。
また、（４）〜（８）の処理手順は、グループロケーション展開テーブル３３（図１３）のすべてのレコードを参照し終わるまで繰り返す。
【００４２】
ステップＳ２１０において、原価積上計算処理部４０は、グループロケーション展開テーブル３３を完成する。
具体的には、原価積上計算処理部４０は、グループロケーション展開テーブル３３の末尾に新たなレコードを設け、「親記号：−、子記号：Ｘ、構成数：１、子のＬＣ：０、ＷＫ-ＧＲ-Ｆ：０、グループロケーション：すべてのレコードのうちの最大値＋１、部品ロケーションスタート情報：１、部品ロケーションエンド情報：すべてのレコードのうちの最大値」を記憶する。
ステップＳ２１０が終了した時点で、グループロケーション展開テーブル３３は図１３に示す状態になっている。
【００４３】
ステップＳ２１１において、原価積上計算処理部４０は、部品単価差分テーブル２２を作成する。
具体的には、原価積上計算処理部４０は、第一に、ステップＳ２０７にて完成したフラット部品ＢＯＭ部品展開テーブル３２（図１２）の部品ロケーション欄１４０、子記号欄１３６及び構成数欄１３７をコピーして図１４のそれぞれ部品ロケーション欄１４０、子記号欄１５０及び構成数欄１５１とし、部品単価差分テーブル２２を作成する。
第二に、単価欄１５２、変更後単価欄１５３、単価差分欄１５４及び単価差分合計欄１５５を新設する（図１４）。
第三に、部品単価差分テーブル２２の各レコードについて、子記号を検索キーとして部品単価マスタ２１を検索し、該当したレコードの単価を取得する。そして、取得した単価を、部品単価差分テーブル２２のレコードの単価欄１５２に記憶する。その後部品単価差分テーブル２２を補助記憶装置１４に記憶する。
ステップＳ２１１が終了した時点で、部品単価差分テーブル２２は図１４に示す状態になっている（このとき、欄１５３〜１５５は空白である。但し、図１６のステップＳ３０４の処理が終了した時点では、括弧内の値が記載されることになる）。
【００４４】
ステップＳ２１２において、原価積上計算処理部４０は、原価再計算テーブルを作成する。
具体的には、原価積上計算処理部４０は以下をその順に行う。
（１）ステップＳ２１０にて完成したグループロケーション展開テーブル３３（図１３）の子記号欄１４２、グループロケーション欄１４６、部品ロケーションスタート情報欄１４７及び部品ロケーションエンド情報欄１４８をコピーして、原価再計算テーブル２３（図１５）とする。
（２）原価欄１６０及び再積上原価欄１６１を新設する（図１５）。
（３）原価再計算テーブル２３のレコードの部品ロケーションスタート情報及び部品ロケーションエンド情報を取得する。そして取得した部品ロケーションスタート情報及び部品ロケーションエンド情報の範囲に含まれるすべての数字（部品ロケーションそのもの）を検索キーとしてステップＳ２１１にて作成した部品単価差分テーブル２２（図１４）の部品ロケーション欄１４９を検索し、該当したレコードの単価及び構成数を取得する（単価と構成数の組が１つ又は複数取得される）。
（４）前記（３）にて取得した単価と構成数の組毎に単価と構成数との積を計算する。次にすべての積を合計する。さらに、その合計を原価再計算テーブル２３のレコードの原価欄１６０に記憶する。
（３）〜（４）の処理手順を原価再計算テーブル２３のすべてのレコードについて繰り返す。
（５）原価再計算テーブル２３を補助記憶装置１４に記憶する。
ステップＳ２１２が終了した時点で、原価再計算テーブル２３は図１５に示す状態になっている（欄１６１は空白である）。
以上で原価積上計算処理手順は終了する。
【００４５】
（原価再積上計算処理手順）
図１６は、本実施形態に係る原価再積上計算処理手順のフローチャートである。
ステップＳ３０１において、原価再積上計算処理部４１は、変更情報の入力を受け付ける。
具体的には、原価再積上計算処理部４１は、ユーザによる子記号及び変更後単価の入力を受け付ける。当該入力は、単価の変更が生じた部品毎に、子記号と変更後単価が関連付けられて入力されるものとする。
【００４６】
ステップＳ３０２において、原価再積上計算処理部４１は、部品単価変更データを作成する。
具体的には、原価再積上計算処理部４１は、ステップＳ３０１にて受け付けた子記号と変更後単価を関連付けたうえで、部品単価変更データ３４（図１７）を作成する。そして、当該部品単価変更データ３４を出力装置（画面）上に表示し、主記憶装置１４に一時的に記憶する。
図１７は、本実施形態に係る部品単価変更データの一例を示す図である。
【００４７】
ステップＳ３０３において、原価再積上計算処理部４１は、単価の変更があった部品を認識する。
具体的には、原価再積上計算処理部４１は、部品単価変更データ３４を参照し、子記号と変更後単価の組を１つ取得する。
【００４８】
ステップＳ３０４において、原価再積上計算処理部４１は、部品単価差分テーブルに単価の変更を反映させる。
具体的には、原価再積上計算処理部４１は、第一に、ステップＳ３０３にて取得した子記号を検索キーとして部品単価差分テーブル２２（図１４）を検索し、該当したレコード（１つとは限らない）の変更後単価欄１５３に、ステップＳ３０３にて取得した変更後単価を記憶する。
第二に、当該該当したレコードの単価差分欄１５４に、当該レコードの変更後単価から単価を控除した値を記憶する。
第三に、当該レコードの単価差分合計欄１５５に、当該レコードの単価差分に構成数を乗じた値を記憶する。
ステップＳ３０４が終了した時点で、部品単価差分テーブル２２は図６の状態になっている。
【００４９】
ステップＳ３０５において、原価再積上計算処理部４１は、単価の変更があった部品の部品ロケーション等を取得する。
具体的には、原価再積上計算処理部４１は、ステップＳ３０４にて該当したレコード（１つとは限らない）の部品ロケーション及び単価差分合計を取得する。
【００５０】
ステップＳ３０６において、原価再積上計算処理部４１は、再積上原価を計算する。
具体的には、原価再積上計算処理部４１は、ステップＳ３０５にて取得した部品ロケーションを検索キーとして原価再計算テーブル２３（図１５）を検索し、検索キーである部品ロケーションが、部品ロケーションスタート情報及び部品ロケーションエンド情報が示す範囲に含まれるレコードの再積上原価欄１６１にステップＳ３０５にて取得した単価差分合計と当該レコードの原価との合計を記憶したうえで、原価再計算テーブル２３を補助記憶装置１４に記憶する。
ステップＳ３０６が終了した時点で、原価再計算テーブル２３は図７の状態になっている。
【００５１】
（ステップＳ３０６の具体例）
例えば、部品単価変更データ３４（図１７）の子記号のうち「ｋ」に対して１つの「部品ロケーション：３」（図１４の欄１４９）が対応している。そして、部品単価差分テーブル２２（図６）の３行目のレコードには、「部品ロケーション：３、単価差分合計：３０」が記憶されている。この「部品ロケーション：３」を検索キーにして原価再計算テーブル２３（図１５）を検索する。図１５の２行目のレコードには「部品ロケーションスタート情報：１、部品ロケーションエンド情報：３」が、３行目のレコードには「部品ロケーションスタート情報：１、部品ロケーションエンド情報：５」が、７行目のレコードには「部品ロケーションスタート情報：１、部品ロケーションエンド情報：１２」がそれぞれ記憶されており、３者とも「部品ロケーション：３」をその範囲に含む。したがって、２行目のレコードの再積上原価欄１６１には、１３０（原価「１００」＋単価差分合計「３０」）が記憶され、３行目のレコードの再積上原価欄１６１には、２４０（原価「２１０」＋単価差分合計「３０」）が記憶され、７行目のレコードの再積上原価欄１６１には、７２０（原価「６９０」＋単価差分合計「３０」）が記憶される（７行目のレコードは他の部品の単価の変更に起因してその後も上書きされる）。
【００５２】
別の例では、部品単価変更データ３４（図１７）の子記号のうち「ａ」に対しては２つの「部品ロケーション：８」及び「部品ロケーション：１０」（図１４の欄１４９）が対応している。そして、部品単価差分テーブル２２（図６）の８行目のレコードには「部品ロケーション：８、単価差分合計：−１０」が、１０行目のレコードには「部品ロケーション：１０、単価差分合計：−１０」がそれぞれ記憶されている。
まず、「部品ロケーション：８」を検索キーにして原価再計算テーブル２３（図１５）を検索する。図１５の５行目のレコードには「部品ロケーションスタート情報：６、部品ロケーションエンド情報：９」が、７行目のレコードには「部品ロケーションスタート情報：１、部品ロケーションエンド情報：１２」がそれぞれ記憶されており、両者は「部品ロケーション：８」をその範囲に含む。したがって、５行目のレコードの再積上原価欄１６１には、２５０（原価「２６０」＋単価差分合計「−１０」）が記憶され、７行目のレコードの再積上原価欄１６１には、７１０（原価「７２０」＋単価差分合計「−１０」）がそれぞれ記憶される（７行目のレコードはさらにその後も上書きされる）。
次に、「部品ロケーション：１０」を検索キーにして原価再計算テーブル２３（図１５）を検索する。図１５の６行目のレコードには「部品ロケーションスタート情報：１０、部品ロケーションエンド情報：１２」が、７行目のレコードには「部品ロケーションスタート情報：１、部品ロケーションエンド情報：１２」がそれぞれ記憶されており、両者とも「部品ロケーション：１０」をその範囲に含む。したがって、６行目のレコードの再積上原価欄１６１には、２１０（原価「２２０」＋単価差分合計「−１０」）が、７行目のレコードの再積上原価欄１６１には、７００（原価「７１０」＋単価差分合計「−１０」）がそれぞれ記憶される。
ステップＳ３０３〜Ｓ３０６の処理手順は、部品単価変更データ３４のすべての子記号につき繰り返し実行される。
以上で原価再積上計算処理手順は終了する。
【００５３】
以上説明した本実施形態によれば、前記の通り、部品の単価に変更があった場合に処理時間の短縮を図りつつ製品の原価の再積上処理を行う、原価積上計算装置を提供することが可能になる。
【図面の簡単な説明】
【００５４】
【図１】本実施形態に係る原価積上計算装置の構成の一例を示す図である。
【図２】本実施形態に係るオリジナルＢＯＭの一例を示す図である。
【図３】本実施形態に係るフラットＢＯＭ部品展開の一例を示す図である。
【図４】本実施形態に係る部品構成マスタの一例を示す図である。
【図５】本実施形態に係る部品単価マスタの一例を示す図である。
【図６】本実施形態に係る部品単価差分テーブルの一例を示す図である。
【図７】本実施形態に係る原価再計算テーブルの一例を示す図である。
【図８】本実施形態に係る原価積上計算処理手順のフローチャートである。
【図９】本実施形態に係るオリジナルＢＯＭ分解テーブルの一例を示す図である。
【図１０】本実施形態に係る半製品構成テーブルの一例を示す図である。
【図１１】本実施形態に係る半製品構成テーブルの一例を示す図である。
【図１２】本実施形態に係るフラットＢＯＭ部品展開テーブルの一例を示す図である。
【図１３】本実施形態に係るグループロケーション展開テーブルの一例を示す図である。
【図１４】本実施形態に係る部品単価差分テーブルの一例を示す図である。
【図１５】本実施形態に係る原価再計算テーブルの一例を示す図である。
【図１６】本実施形態に係る原価再積上計算処理手順のフローチャートである。
【図１７】本実施形態に係る部品単価変更データの一例を示す図である。
【符号の説明】
【００５５】
１      原価再積上計算装置
１０    中央制御装置（制御部）
１１    入力装置
１２    出力装置
１３    主記憶装置（記憶部）
１４    補助記憶装置（記憶部）
２０    部品構成マスタ（部品構成情報）
２１    部品単価マスタ（部品単価情報）
２２    部品単価差分テーブル（部品単価差分情報）
２３    原価再計算テーブル（原価再計算情報）
３０    オリジナルＢＯＭ分解テーブル
３１    半製品構成テーブル
３２    フラットＢＯＭ部品展開テーブル
３３    グループロケーション展開テーブル
３４    部品単価変更データ
４０    原価積上計算処理部
４１    原価再積上計算処理部
４２    オリジナルＢＯＭ
【図１】
0004958848.tif 000002
【図２】
0004958848.tif 000003
【図３】
0004958848.tif 000004
【図４】
0004958848.tif 000005
【図５】
0004958848.tif 000006
【図６】
0004958848.tif 000007
【図７】
0004958848.tif 000008
【図８】
0004958848.tif 000009
【図９】
0004958848.tif 000010
【図１０】
0004958848.tif 000011
【図１１】
0004958848.tif 000012
【図１２】
0004958848.tif 000013
【図１３】
0004958848.tif 000014
【図１４】
0004958848.tif 000015
【図１５】
0004958848.tif 000016
【図１６】
0004958848.tif 000017
【図１７】
0004958848.tif 000018