(57)【要約】【課題】積算体系を構成する各ノードの関連性が容易に把握でき、かつデータの再定義が容易に行えるデータを用いて積算処理を行う積算システム、および積算プログラムを提供する。【解決手段】積算サーバ１は、積算体系を構成する各ノードの間に、タグ名で演算子を表記した演算子タグを挿入して、各ノードのノード値の演算関係を記述したＸＭＬ形式の積算体系データ１３と設計書データ１４とを有し、積算処理を行うノードが指定されると、設計書データ入出力部８は、積算処理の実行を指定されたノードのノード値と演算子を取得し、ノード値と演算子とから計算式を作成し、積算部９は、計算式に従って、積算処理の実行を指定されたノードのノード値を算出する。【選択図】      図１
2004272388.tif 000002
【特許請求の範囲】
【請求項１】
木構造で記述された積算体系のデータを用いて積算処理を行い、積算結果をクライアントへ提供する積算システムであって、
前記クライアントから積算体系を構成するノードのノード値と、積算処理を行うノードを指定する情報を受信すると、
前記積算体系を構成する各ノードの間にタグ名で演算子を表記した演算子タグを挿入して、各ノードのノード値の演算関係を記述した積算体系データを作成するデータ作成手段と、
前記データ作成手段によって作成された前記積算体系データを取得し、積算処理を行うノードを構成する下位ノードのノード値と前記演算子タグとを取得し、当該下位ノードのノード値と当該演算子タグが示す演算子とから計算式を作成し、当該計算式に従って、積算処理の実行を指定されたノードのノード値を算出する演算手段と、
を備えることを特徴とする積算システム。
【請求項２】
前記計算式に挿入されるノード値を取得できない場合、
前記演算手段は、そのノード値が取得できないノードのノード値が確定するまで、当該ノードを構成する下位ノードのノード値と前記演算子タグとを前記積算体系データから取得し、当該下位ノードのノード値と当該演算子タグが示す演算子とから計算式を作成し、当該計算式に従って演算を行い、ノード値の算出を繰り返すことを特徴とする請求項１に記載の積算システム。
【請求項３】
木構造で記述された積算体系のデータを用いて積算処理を行うコンピュータで実行される積算プログラムであって、
積算体系を構成するノードのノード値が入力され、積算処理を行うノードが指定されると、
前記積算プログラムはコンピュータを、
前記積算体系を構成する各ノードの間にタグ名で演算子を表記した演算子タグを挿入して、各ノードのノード値の演算関係を記述した積算体系データを作成するデータ作成手段と、
前記データ作成手段によって作成された前記積算体系データを取得し、積算処理を行うノードを構成する下位ノードのノード値と前記演算子タグとを取得し、当該下位ノードのノード値と当該演算子タグが示す演算子とから計算式を作成し、当該計算式に従って、積算処理の実行を指定されたノードのノード値を算出する演算手段と、
して機能させることを特徴とする積算プログラム。
【請求項４】
前記計算式に挿入されるノード値を取得できない場合、
前記演算手段は、そのノード値が取得できないノードのノード値が確定するまで、当該ノードを構成する下位ノードのノード値と前記演算子タグとを前記積算体系データから取得し、当該下位ノードのノード値と当該演算子タグが示す演算子とから計算式を作成し、当該計算式に従って演算を行い、ノード値の算出を繰り返すことを特徴とする請求項３に記載の積算プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、積算体系を構成する各ノードの関連性が容易に把握でき、かつデータの再定義が容易に行えるデータを用いて積算処理を行う積算システム、および積算プログラムに関する。
【０００２】
【従来の技術】
一般的に費用の見積等の積算体系は事業ごとに異なるのものであり、事業が異なれば積算処理で使用するデータも異なる。そのため、積算体系毎にプログラムを開発するか、ベースとなるプログラムを供給者が変更作成することで対応しなければならず、プログラムの開発作業、変更作業ばかりでなく、品質評価作業に多大の時間と工数を要する。このような問題を解決するため、任意の積算体系に対応可能な積算体系管理装置が提案されている（例えば、特許文献１）。
【０００３】
【特許文献１】
特開２０００−１３７７４８号公報
【０００４】
【発明が解決しようとする課題】
上記の積算体系管理装置の場合、積算体系を構成するデータを個別に用意しており、それぞれのデータが、積算体系モデルを特定する識別データと、積算体系モデルを構成する複数の項目を階層化定義する階層化データと、項目の計上属性データとを備えたモデル定義データと、計上属性データとリンクして所定の演算を行う演算データを有する計算定義データとから構成されている。
【０００５】
そのため、積算処理で用いるデータの関連性、上位ノードと下位ノードのつながりを容易に把握することができない。また、積算体系が変更された場合、ノードの関連性が容易に把握できないため、計算式の再定義や、階層化、データの再定義が非常に困難であることは容易に想像し得ることである。
【０００６】
本発明は上記事情に鑑み、積算体系を構成する各ノードの関連性が容易に把握でき、かつデータの再定義が容易に行えるように、積算体系を構成する各ノードと、各ノードの演算関係とをツリー構造で表記することとし、ツリー構造で表記され演算関係を埋め込まれたデータを適宜作成し、積算処理を行う積算システム、および積算プログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載の発明である積算システムは、木構造で記述された積算体系のデータを用いて積算処理を行い、積算結果をクライアントへ提供する積算システムであって、前記クライアントから積算体系を構成するノードのノード値と、積算処理を行うノードを指定する情報を受信すると、前記積算体系を構成する各ノードの間にタグ名で演算子を表記した演算子タグを挿入して、各ノードのノード値の演算関係を記述した積算体系データを作成するデータ作成手段と、前記データ作成手段によって作成された前記積算体系データを取得し、積算処理を行うノードを構成する下位ノードのノード値と前記演算子タグとを取得し、当該下位ノードのノード値と当該演算子タグが示す演算子とから計算式を作成し、当該計算式に従って、積算処理の実行を指定されたノードのノード値を算出する演算手段とを備えることを特徴とする。
【０００８】
請求項１の発明によれば、積算体系データを木構造で記述し、さらにタグ名によって計算ロジック（演算子）を積算体系データに組み込むことで、積算体系を構成する各ノードの関連性が容易に把握できると共に、データの再定義、計算ロジックの再定義が容易に行えるようになり、さらにノードを計算する際には計算ロジックに従って計算式を作成するので、予め計算ロジックを含むプログラムを用意しておく必要がない。従って、如何なる体系を持つ積算体系データであっても積算処理可能であり、従来のものより汎用性が高い。
【０００９】
また、請求項２に記載の発明である積算システムは、請求項１に記載の積算装置であって、前記計算式に挿入されるノード値を取得できない場合、前記演算手段は、そのノード値が取得できないノードのノード値が確定するまで、当該ノードを構成する下位ノードのノード値と前記演算子タグとを前記積算体系データから取得し、当該下位ノードのノード値と当該演算子タグが示す演算子とから計算式を作成し、当該計算式に従って演算を行い、ノード値の算出を繰り返すことを特徴とする。
【００１０】
また、請求項３に記載の発明である積算プログラムは、木構造で記述された積算体系のデータを用いて積算処理を行うコンピュータで実行される積算プログラムであって、積算体系を構成するノードのノード値が入力され、積算処理を行うノードが指定されると、前記積算プログラムはコンピュータを、前記積算体系を構成する各ノードの間に、タグ名で演算子を表記した演算子タグを挿入して、各ノードのノード値の演算関係を記述した積算体系データを作成するデータ作成手段と、前記データ作成手段によって作成された前記積算体系データを取得し、積算処理を行うノードを構成する下位ノードのノード値と前記演算子タグとを取得し、当該下位ノードのノード値と当該演算子タグが示す演算子とから計算式を作成し、当該計算式に従って、積算処理の実行を指定されたノードのノード値を算出する演算手段として機能させることを特徴とする。
【００１１】
請求項３の発明によれば、積算体系データを木構造で記述し、さらにタグ名によって計算ロジック（演算子）を積算体系データに組み込むことで、積算体系を構成する各ノードの関連性が容易に把握できると共に、データの再定義、計算ロジックの再定義が容易に行えるようになり、さらにノードを計算する際には計算ロジックに従って計算式を作成するので、予め計算ロジックを含むプログラムを用意しておく必要がない。従って、如何なる体系を持つ積算体系データであっても積算処理可能であり、従来のものより汎用性が高い。
【００１２】
また、請求項４に記載の発明である積算プログラムは、請求項３に記載の積算プログラムであって、前記計算式に挿入されるノード値を取得できない場合、前記演算手段は、そのノード値が取得できないノードのノード値が確定するまで、当該ノードを構成する下位ノードのノード値と前記演算子タグとを前記積算体系データから取得し、当該下位ノードのノード値と当該演算子タグが示す演算子とから計算式を作成し、当該計算式に従って演算を行い、ノード値の算出を繰り返すことを特徴とする。
【００１３】
【発明の実施の形態】
本発明の実施形態について、図１〜図１６に基づいて説明する。
【００１４】
図１に本実施形態の積算システム１の機能構成を示す。本実施形態における積算システム１は、積算サーバ２、およびクライアント３から構成され、相互にインターネットやＬＡＮ等のネットワーク４によって接続される。
【００１５】
積算サーバ２は、サーバ送受信部５、ユーザ認証部６、ツリーデータ作成部７、設計書データ入出力部８、および積算部９を備える。また、積算サーバ２はデータベース１０を備えており、そのデータベース１０はユーザ認証データ１１、積算体系データ１３、および設計書データ１４の各種データファイルを記録している。
【００１６】
サーバ送受信部５は、各種データ１１〜１４、およびＨＴＭＬファイル等の各種データファイルの送受信を行う機能を有する。
【００１７】
ユーザ認証部６は、データベース１０に記録されているユーザ認証データ１１を参照し、サーバ送受信部５が受信したユーザＩＤとパスワードを照合して、積算システム１にログインするユーザを特定する機能を有する。
【００１８】
ツリーデータ作成部７は、データベース１０に記録されている積算体系データ１３、および設計書データ１４を参照し、クライアント３から要求された設計書の業務体系ツリーを表示するための業務体系ツリーデータを作成する機能を有する。
【００１９】
設計書データ入出力部８は、クライアント３の画面上に表示されるＨＴＭＬファイルを作成する機能、ユーザ認証部６によって特定されたユーザのユーザ名やアクセス権限に応じて、アクセス可能な設計書データ１４をデータベース１０から抽出する機能を有する。
【００２０】
また、設計書データ入出力部８は、クライアント３から送信されるノード値を元に、設計書データ１４を作成、更新、およびデータベース１０に保存する機能を有する。さらに、設計書データ入出力部８は、ユーザによって積算処理を指定されたノードを演算するための計算式を作成し、総括表を表示するためのテーブルデータ、およびそのテーブルデータが記述された総括表画面ＨＴＭＬファイルを作成する機能を有する。
【００２１】
積算部９は、設計書データ入出力部８が作成する計算式を基に演算処理を実行し、演算結果を設計書データ入出力部８に転送する機能を有する。
【００２２】
ユーザ認証データ１１は、図２に示すように、ユーザ名、ユーザＩＤ、パスワード、アクセス権限の項目を有するデータテーブルであり、ユーザのユーザ名、ユーザＩＤ、パスワード、アクセス権限が記録される。このユーザ認証データ１１は、ユーザが積算システム１にログインする際に、ユーザ認証部６によって参照される。
【００２３】
積算体系データ１３は、積算処理を行うための基となる情報を記録するデータである。様々な基準値や係数、ノードに対する計算方法（演算子）の情報を記録した積算体系データ１３が、予めデータベース１０に多数用意される。
【００２４】
図３に示す業務体系データは、業務の構成を記録する積算体系データ１３の１つである。また、図４や図５の積算体系データ１３のように、各ノードのノード値の候補や入力項目の情報を記録するものもある。なお、図３〜図５は、ＸＭＬ形式の積算体系データ１３を示しているが、記録する情報の形態によっては、二次元のデータテーブル形式でもよい。
【００２５】
また、図６に示す積算体系データ１３は、図３の業務体系データや、図４に示す積算体系データ１３、図５に示す積算体系データ１３等に基づいて、ノード値やノード値の候補、参照先の積算体系データ１３、ノードに対する計算方法（演算子）の情報が記録されたＸＭＬ形式のデータである。この積算体系データ１３は、積算処理を行う業務の内容に応じて作成され、適宜ノード構成やノード値が変更される。
【００２６】
設計書データ１４は、積算処理の際に参照される各ノードのノード値を記録するＸＭＬ形式のデータであり、図７に示すように、各ノードのノード名とノード値が記録される。なお、積算体系データ１３が記録している全ノードのノード値を記録している必要はなく、積算処理の実行を指定されたノードのノード値を記録していればよい。
【００２７】
また、設計書データ１４は、その設計書データ１４を作成したユーザのユーザ名、ユーザＩＤ、パスワード、およびアクセス権限を記録し、ユーザに対してアクセス権限に応じた操作を可能にする。例えば、アクセス権限がＡｄｍｉｎｉｓｔｒａｔｏｒであれば、全てのデータに対してアクセス可能（読み込み、書き込み）にし、Ｕｓｅｒであれば、設計書データ１４に対してのみアクセス可能にし、Ｇｕｅｓｔであれば、全てのデータに対して参照（読み込み）のみ可能にする。
【００２８】
クライアント３は、クライアント送受信部１５、表示機能部１６、およびデータ入力部１７を備える。
【００２９】
クライアント送受信部１５は、各種データ、ＨＴＭＬファイルの送受信を行う機能を有する。
【００３０】
表示機能部１６は、クライアント送受信部１５が受信した各種データ、ＨＴＭＬファイルを取得し、ＨＴＭＬファイルに記述されているページの内容をレンダリング（描画）し、画面上に表示する機能を有し、また、サーバのツリー作成部によって作成される業務体系ツリーデータを元に、業務体系ツリーを画面上に表示する機能を有する。
【００３１】
データ入力部１７は、ユーザが入力するデータを取得し、その取得したデータをクライアント送受信部１５に転送する機能を有する。
【００３２】
ここで本実施形態における積算体系データ１３、および設計書データ１４で用いられているタグ名とその属性について説明する。なお、タグ名とその属性については、下記に示すものに限定されるものではなく、適宜必要に応じて新たに定義可能である。
【００３３】
2004272388.tif 000003
【００３４】
例えば、図６の積算体系データ１３中、ノード名「システム開発業務」のノードは、ノード名「総ステップ数」のノードと、ノード名「使用言語による基準値」のノードが、＜ｍｕｌｔｉ＞タグによって囲まれているので、この積算体系データ１３では、「システム開発業務」のノード値は、両ノード値の乗算によって求められることが示されている。
【００３５】
なお、本実施形態においては、積算サーバ２−クライアント３間の業務体系ツリーデータの送受信は、ソケット通信にて行うこととする。また、その他の各種データファイルの送受信は、ＨＴＴＰ等のリモートファイル転送プロトコルの規約に沿って行うこととし、業務体系ツリーデータ以外のデータは、ＨＴＴＰメッセージのメッセージボディ部に挿入し、ＨＴＴＰ通信で送受信を行うこととする。
【００３６】
以降、本実施形態において特に断りの無い場合は、上記の通信方式に従って、積算サーバ２−クライアント３間の通信を行うこととするが、本発明は特にこの通信方式に限定されるものではない。
【００３７】
次に、本実施形態において、積算システム１において積算サーバ２クライアント３間で行われる処理について、図８のシーケンス図に基づいて説明する。
【００３８】
まず、ユーザが所定のＵＲＬを入力すると、クライアント送受信部１５は、積算サーバ２からログイン画面ＨＴＭＬファイルを取得し、表示機能部１６は、そのログイン画面ＨＴＭＬファイルに記述されているページの内容をレンダリングし、図９に示すログイン画面を画面上に表示する（ステップＳ０１）。
【００３９】
ユーザがユーザＩＤとパスワードを入力すると（ステップＳ０２）、クライアント３のデータ入力部１７は、入力されたユーザＩＤとパスワードを取得し、クライアント送受信部１５は、そのユーザＩＤとパスワードを積算サーバ２に送信する（ステップＳ０３）。
【００４０】
積算サーバ２のサーバ送受信部５は、クライアント３からユーザＩＤとパスワードを受信すると、ユーザ認証部６にそのユーザＩＤとパスワードを転送し、ユーザ認証部６は、そのユーザＩＤ、およびパスワードと、ユーザ認証データ１１に記録されているユーザＩＤ、およびパスワードとを照合する（ステップＳ０４）。照合の結果、送信されたユーザＩＤとパスワードが登録ユーザのものであると判定すると、ユーザ認証部６は、ユーザ認証データ１１からそのユーザのユーザ名とアクセス権限を取得する。
【００４１】
次に、ユーザ認証部６は、ユーザ名とアクセス権限を元に、データベース１０からそのユーザがアクセス可能な設計書データ１４を読み込み、その一覧を表示するための設計書一覧ＨＴＭＬファイルを作成し、サーバ送受信部５はその設計書一覧ＨＴＭＬファイルをクライアント３へ送信する（ステップＳ０５）。
【００４２】
クライアント送受信部１５は、積算サーバ２から設計書一覧ＨＴＭＬファイルを受信すると、表示機能部１６に転送し、表示機能部１６は、その設計書一覧ＨＴＭＬファイルに記述されているページの内容をレンダリングし、図１０に示す設計書一覧を画面上に表示する（ステップＳ０６）。
【００４３】
ユーザが、図１０に示すように、画面上に表示されたラジオボタンを１つ選択し、ＯＫボタンを選択することによって読み込む設計書データ１４を決定すると（ステップＳ０７）、データ入力部１７は、その選択された設計書を示す識別データを取得し、クライアント送受信部１５は、その識別データを積算サーバ２に送信する（ステップＳ０８）。
【００４４】
積算サーバ２のサーバ送受信部５は、クライアント３から設計書の識別データを受信すると、その識別データを設計書データ入出力部８とツリーデータ作成部７に転送し、設計書データ入出力部８は、その識別データが示す設計書データ１４を読み込み、さらに見積情報入力画面を表示するための見積情報入力画面ＨＴＭＬファイルを作成し、サーバ送受信部５はその見積情報入力画面ＨＴＭＬファイルをクライアント３へ送信する（ステップＳ０９）。
【００４５】
クライアント送受信部１５は、積算サーバ２から見積情報入力画面ＨＴＭＬファイルを受信すると、表示機能部１６に転送し、表示機能部１６は、その見積情報入力画面ＨＴＭＬファイルに記述されているページの内容をレンダリングし、図１１に示す見積情報入力画面を画面上に表示する（ステップＳ１０）。
【００４６】
ユーザが、図１１に示すように、見積情報入力画面の各項目にデータを入力し、ＯＫボタンを選択すると（ステップＳ１１）、データ入力部１７は、その入力された見積情報の項目値を取得し、クライアント送受信部１５は、その項目値を積算サーバ２に送信する（ステップＳ１２）。
【００４７】
次に、積算サーバ２のサーバ送受信部５は、クライアント３から送信された見積情報の項目値を受信すると、その設計書データ入出力部８に転送し、設計書データ入出力部８は、設計書の識別データと項目値を基に、データ入力画面ＨＴＭＬファイルを作成し、サーバ送受信部５は、そのデータ入力画面ＨＴＭＬファイルをクライアント３へ送信する（ステップＳ１３）。
【００４８】
また、ツリーデータ作成部７は、積算体系データ１３、設計書データ１４を参照し、先にサーバ送受信部５から転送された設計書の識別データを基に、クライアント３から要求された設計書の業務体系ツリーを表示するためツリー構造が記述された業務体系ツリーデータを作成し、サーバ送受信部５は、その業務体系ツリーデータをクライアント３へ送信する（ステップＳ１４）。
【００４９】
クライアント３のクライアント送受信部１５は、積算サーバ２からデータ入力画面ＨＴＭＬファイルと業務体系ツリーデータとを受信すると、表示機能部１６にそれらを転送し、表示機能部１６は、業務体系ツリーデータから業務体系ツリーを表示するためのツリー画像データを作成し、業務体系入力画面ＨＴＭＬファイルに記述されているページの内容と、業務体系ツリーを表示するためのツリー画像データとをレンダリングし、図１２に示すデータ入力画面を画面上に表示する（ステップＳ１５）。
【００５０】
図１２のデータ入力画面は、３つのペインで構成されており、図１２（Ａ）は積算や保存等のコマンドを表示するメニューペイン、（Ｂ）は業務体系をツリー表示するツリーペイン、（Ｃ）はノード毎にノード値を入力する入力欄を表示するデータ入力ペインとなっている。ツリーペインに表示されているノードを１つ選択すると、データ入力ペインにノード値を入力する欄が表示される。図１２の画面では、「ドキュメント整備」のノードが選択されており、データ入力ペインにそのドキュメント整備のノード値を入力する欄が表示され、入力待ち状態となっている。
【００５１】
ユーザが、データ入力ペインに表示されるノード値の入力欄に、積算処理で必要となるノード値を入力し送信ボタンを選択すると（ステップＳ１６）、クライアント３のデータ入力部１７は、ユーザによって入力されたノード値を取得し、クライアント送受信部１５は、そのノード値を積算サーバ２に送信する（ステップＳ１７）。
【００５２】
積算サーバ２のサーバ送受信部５は、クライアント３から送信されたノード値を受信すると、そのノード値を設計書データ入出力部８に転送し、設計書データ入出力部８は、積算体系データ１３に定義されているノードのツリー構成、および予め設定された演算子タグと共にノード値を設計書データ１４に記録する（ステップＳ１８）。この時、設計書データ入出力部８は、設計書データ１４に、その設計書データ１４を作成したユーザのユーザ名、ユーザＩＤ、パスワード、およびアクセス権限を記録する。また、メニューペインに表示されている保存ボタンをユーザが選択すると、設計書データ入出力部８は、設計書データ１４をデータベース１０に保存する。
【００５３】
クライアント３から積算処理に必要なノード値が送信され、そのノード値を基に設計書データ１４が作成された後、ユーザが積算処理を行う対象のノードを選択し、メニューペインに表示されている積算ボタンを選択すると、積算サーバ２は、積算処理を実行し（ステップＳ１９、詳細については後述）、実行結果を基に総括表を表示するための総括表画面ＨＴＭＬファイルを作成しクライアント３へ送信する。
【００５４】
クライアント３のクライアント送受信部１５は、積算サーバ２から総括表画面ＨＴＭＬファイルを受信すると、表示機能部１６に転送し、表示機能部１６は、総括表画面ＨＴＭＬファイルに記述されているページの内容をレンダリングし、図１３に示す総括表を画面上に表示する（ステップＳ２０）。
【００５５】
＜積算処理＞
次に、積算処理について、図１４のフローチャートに基づいて説明する。
【００５６】
積算サーバ２のサーバ送受信部５は、クライアント３から積算処理を行うノードのノード名を取得すると（ステップＳ２１）、そのノード名を設計書データ入出力部８に転送する。設計書データ入出力部８は、データベース１０から設計書データ１４を読み込み（ステップＳ２２）、指定されたノードに対して積算処理を行うため、ノードのパス名とノード値を取得し（ステップＳ２３）、設計書データ１４に記録されているタグに従って、計算式を作成する。ノードのパス名とは、業務体系ツリーのノード構成をディレクトリ構造に見立て、ルートノードから積算処理を指定されたノードまでのツリー構成のことを指す。例えば、図６の積算体系データ１３（設計書データ１４）であれば、ノード名「システム開発業務」のパス名は、「／請負業務費／業務価格／直接業務費／システム開発業務」となる。
【００５７】
次に、設計書データ入出力部８は、取得したノードのパス名とノード値を基に総括表を表示するためのテーブルデータを作成する（ステップＳ２４）。図１５は、設計書データ入出力部８が作成するテーブルデータの一例であり、このテーブルデータには、積算処理を行うノード名と計算式が記録される。
【００５８】
例えば、図１５（Ａ）には、積算処理を行うノードとして「システム開発業務」が指定されており、図７に設計書データ１４には、「システム開発業務」のノードは、「総ステップ数」のノードと「使用言語による基準値」のノードとの乗算であることが記録されている。「総ステップ数」のノードは、そのノードにさらに下位ノードが従属していることを示す「ｔｙｐｅ＝”ｂｒａｎｃｈ”」と設計書データ１４に記述されているので、設計書データ入出力部８は、ルートノードから「総ステップ数」のノードまでのパス名を取得する。また、「使用言語による基準値」のノードは、「ｖａｌｕｅ＝”０．５”」とノード値が記述されているので、設計書データ入出力部８は、パス名ではなくそのノード値を取得してもよい。
【００５９】
従って、「システム開発業務」のノードのノード値を計算するための計算式として、ノードのパス名、およびノード値を用いて「０．５×／請負業務費／業務価格／直接業務費／システム開発業務／総ステップ数」が記録される。
【００６０】
次に、設計書データ入出力部８は、作成された計算式を積算部９に転送し、積算部９は、転送された計算式に従って、演算処理を行う（ステップＳ２５、詳細については後述）。演算処理が終了した後、積算部９は演算結果を設計書データ入出力部８に転送し、設計書データ入出力部８は、その演算結果を計算式と置き換えてテーブルデータに記録する（ステップＳ２６）。
【００６１】
設計書データ入出力部８は、演算結果が記録されたテーブルデータを基に、総括表を表示するための総括表画面ＨＴＭＬファイルを作成し（ステップＳ２７）、サーバ送受信部５は、その総括表画面ＨＴＭＬファイルをクライアント３へ送信する（ステップＳ２８）。図１３は、総括表の表示例である。
【００６２】
≪演算処理≫
次に、演算処理について、図１６のフローチャートに基づいて説明する。なお、計算式の例として、「０．７×／作業構成比／結合試験×１．０５１×／直接業務費／システム開発業務／機能／機能試験区分係数」を用いる。
【００６３】
まず、積算部９は、テーブルデータから計算式を取得する（ステップＳ３１）と、計算式を演算子で分割する（ステップＳ３２）。上記の計算式の場合、「０．７」、「／作業構成比／結合試験」、「１．０５１」、「／直接業務費／システム開発業務／機能／機能試験区分係数」に分割される。以降、演算子で分割された計算式の１つ（例えば、「／作業構成比／結合試験」）を要素と称する。
【００６４】
次に、積算部９は、分割された要素を１つ取得する（ステップＳ３３）。上記の計算式の場合、まず先頭の要素「０．７」を取得する。
【００６５】
次に、積算部９は、取得した要素は数値か、あるいはパス名であるか判定する（ステップＳ３４）。先に取得した要素は「０．７」であり数値であるので、積算部９は、演算子に従って計算を行う（ステップＳ３５）。ただし、現時点では要素「０．７」と乗算する対象が定まっていないので、ステップＳ３５の計算処理をスキップし、次の処理に進む。
【００６６】
計算処理完了の後、積算部９は、ステップＳ３３で取得した要素が計算式中の最後の要素であるかどうか判定する（ステップＳ３６）。取得した要素が計算式中の最後の要素でなければ、積算部９は、次の要素を取得するステップＳ３３の処理に戻る。
【００６７】
次に、積算部９は、分割された次の要素「／作業構成比／結合試験」を取得する。この要素はパス名なので、積算部９はパス名を「／」で分割し、分割したパス名を積算体系データ１３と照合し、ノード位置を取得し（ステップＳ３７）、さらに、設計書データ１４を参照し、取得したノード位置のノード値を取得、または計算する（ステップＳ３８）。また、ノードが積算体系データ１３（他のデータファイル）を参照するリテラルであることが記述されていた場合は、その指定された積算体系データ１３を参照してノード値を取得、または積算体系データ１３に記述されているタグに従った演算方法でノード値を計算し取得する。
【００６８】
次に、積算部９は、ノード値が確定し計算可能であるか判定し（ステップＳ３９）、ノード値が確定している場合は、ステップＳ３５の計算処理に進む。例えば、設計書データ１４を参照した結果、ノード「／作業構成比／結合試験」の値が「１．５」であった場合、演算子に従って「０．７×１．５」が計算され、計算結果が一次記憶される。ノード値を取得できず、または計算できず、ノード値が未確定であった場合、設計書データ１４を参照して、１つ下位のノード値をタグに従った演算方法で計算する（ステップＳ４０）。例えば、そのノードにさらに下位ノードが従属していることを示す「ｔｙｐｅ＝”ｂｒａｎｃｈ”」が記述されている場合である。
【００６９】
次に、積算部９は、その下位のノードのノード値を取得できたか、または計算できたか、ノード値が確定し計算可能であるか判定し（ステップＳ４１）、その下位のノードのノード値を取得できず、または計算できず、ノード値が未確定であった場合、設計書データ１４を参照して、さらに下位のノード値をタグに従った演算方法で計算する。ステップＳ３３で取得した要素のノード値が確定するまでステップＳ４０〜Ｓ４１の処理を繰り返す。また、ノード値が確定している場合は、ステップＳ３８の計算処理に進む。
【００７０】
以降、順次要素を取得し、要素が数値であれば演算子に従って計算し、要素がパスであれば、ノード値が確定するまでステップＳ３８〜Ｓ４１の処理を繰り返し、ノード値が確定した後、演算子に従って計算を行う。最後の要素を計算した後、積算部９は、計算結果を設計書データ１４作成部に転送する（ステップＳ４２）。
【００７１】
計算結果は、設計書データ入出力部８によって、図１５のテーブルデータ中の計算式と置き換えて記録される。
【００７２】
このように、設計書データ１４、積算体系データ１３をＸＭＬ形式で記述し、さらにタグ名によって演算子をそれぞれのデータに組み込むことで、各ノードの関連性が容易に把握できると共に、データの再定義、計算式の再定義が容易に行えるようになり、さらにノードを計算する際には演算子に従って計算式を作成するので、予め計算ロジックを含むプログラムを用意しておく必要がない。従って、如何なる体系を持つデータであっても積算処理可能であり、従来のものより汎用性が高い。
【００７３】
【発明の効果】
以上説明したように、本発明によれば、積算体系データをＸＭＬ形式で記述し、さらにタグ名によって計算ロジック（演算子）を積算体系データに組み込むことで、積算体系を構成する各ノードの関連性が容易に把握できると共に、データの再定義、計算ロジックの再定義が容易に行えるようになり、さらにノードを計算する際には計算ロジックに従って計算式を作成するので、予め計算ロジックを含むプログラムを用意しておく必要がない。従って、如何なる体系を持つ積算体系データであっても積算処理可能であり、従来のものより汎用性が高い。
【図面の簡単な説明】
【図１】積算システムのシステム構成と機能ブロックを示す図である。
【図２】ユーザ認証データを示すデータテーブルである。
【図３】積算体系データ▲１▼業務体系データを示すＸＭＬデータである。
【図４】積算体系データ▲２▼を示すＸＭＬデータである。
【図５】積算体系データ▲３▼を示すＸＭＬデータである。
【図６】積算体系データ▲４▼を示すＸＭＬデータである。
【図７】設計書データを示すＸＭＬデータである。
【図８】積算システムの処理手順を示すシーケンス図である。
【図９】積算システムにログインする際の画面の画面表示例である。
【図１０】設計書データを選択する際の画面の画面表示例である。
【図１１】見積情報を入力する際の画面の画面表示例である。
【図１２】データ入力画面の画面表示例である。
【図１３】総括表画面の画面表示例である。
【図１４】積算処理の処理手順を示すフローチャートである。
【図１５】設計書データ入出力部が作成するテーブルデータである。
【図１６】演算処理の処理手順を示すフローチャートである。
【符号の説明】
１  積算システム
２  積算サーバ
３  クライアント
４  ネットワーク
５  サーバ送受信部
６  ユーザ認証部
７  ツリーデータ作成部
８  設計書データ入出力部
９  積算部
１０  データベース
１１  ユーザ認証データ
１３  積算体系データ
１４  設計書データ
１５  クライアント送受信部
１６  表示機能部
１７  データ入力部
【図１】
2004272388.tif 000004
【図２】
2004272388.tif 000005
【図３】
2004272388.tif 000006
【図４】
2004272388.tif 000007
【図５】
2004272388.tif 000008
【図６】
2004272388.tif 000009
【図７】
2004272388.tif 000010
【図８】
2004272388.tif 000011
【図９】
2004272388.tif 000012
【図１０】
2004272388.tif 000013
【図１１】
2004272388.tif 000014
【図１２】
2004272388.tif 000015
【図１３】
2004272388.tif 000016
【図１４】
2004272388.tif 000017
【図１５】
2004272388.tif 000018
【図１６】
2004272388.tif 000019