以下、本発明の一実施形態を図面に基づいて説明する。
積算書作成装置1(以下、「装置1」と略す。)は、コンピュータ、より詳しくはパーソナル・コンピュータであり、図1に示すように、入力部11、演算処理部12、記憶部13、通信インタフェース部14、表示部15、及び、印刷部16を備えている。装置1には、OS(オペレーティング・システム)とそのOS上で動作する表計算プログラムとがインストールされている。本実施形態では、OSとしてWindows(登録商標)、表計算プログラムとしてExcel(登録商標)がインストールされている。
入力部11は、キーボード、及び、マウス等のポインティング・デバイスから構成されて、ユーザの操作に応じて各種データや各種指令等を演算処理部12に入力する。
記憶部13は、半導体メモリ、ハードディスク装置、フレキシブルディスク装置、光磁気ディスク装置、コンパクト・ディスク装置等から構成されている。記憶部13には、積算書作成プログラム21、発注者毎の積算書テンプレートファイル22(以下、「テンプレートファイル22」と略す。)、積算基準データベース(以下、「積算基準DB」と表記する。)23、単価データベース(以下、「単価DB」と表記する。)24、履歴データベース(以下、「履歴DB」と表記する。)25、及び、発注者毎の設定ファイル27が格納されている。
テンプレートファイル22は、積算書の様式を有するExcel形式のファイルであり、発注者によって積算書の様式が異なるため、発注者別に作成されて発注者数分存在する。すなわち、装置1は、発注者別のテンプレートファイル22からなるテンプレートファイル22群を有する。図2は、テンプレートファイル22の一例を示すものであり、新潟県用のテンプレートファイル22の内訳表部分の1頁分を印刷したものである。図2のテンプレートファイル22には、タイトル欄C1〜C6、費目、工種、施工名称等が埋め込まれる集計項目欄D1、見積り額を算出すべき最小単位となる項目(以下、「見積り項目」と言う。)が埋め込まれる見積り項目欄D2、数量が埋め込まれる数量欄D3、単位が埋め込まれる単位欄D4、単価が埋め込まれる単価欄D5、見積り額が埋め込まれる金額欄D6、備考が埋め込まれる備考欄D7が含まれている。
積算基準DB23には、歩掛データが格納されている。歩掛とは、土木工事に必要とされる労務数量、機械の運転時間、資材の量等をいう。省庁が発表している積算基準書には、工事の種類毎に標準歩掛(歩掛の標準的な値)が記載されており、工事費の積算は、標準歩掛と、労務、資材等の単価とに基づいて行われる。積算基準DB23は、積算基準書に基づいて作成されており、標準歩掛を示す(標準歩掛を算出可能な場合も含む。)歩掛データが格納されている。
例えば、図13の工種ツリー表示部33の工種ツリーは、旧建設省の積算基準書に基づいて作成された積算基準DB23の内容を表している。積算基準書DB23内のデータは、この工種ツリーに示すように分類されている。この工種ツリーの最下層の名称(例えば「ブルドーザ掘削押土」や「バックホウ掘削積込・床掘」)は、見積り項目に対して見積り額を算出する際に参照される、積算基準DB23内のデータ群(以下、「積算基準データ群」という。)に付された名称である。
積算基準DB23には、図3に示すような代価名称テーブル41が格納されている。代価名称テーブル41には、積算基準データ群毎に異なる代価コードと名称とが互いに対応付けられて格納されている。また、積算基準DB23には、代価テーブル42、計算テーブル43、質問変数テーブル44、質問テーブル45、及び、内容テーブル46が格納されている。例えば、名称「バックホウ掘削積込・床掘」の積算基準データ群は、代価コード100の代価テーブル42、計算テーブル43、質問変数テーブル44、質問テーブル45、及び、内容テーブル46から構成される。質問テーブル45の各質問には、その質問に対して選択可能な内容が格納された内容テーブル46が関連付けられている。代価テーブル42には、標準歩掛を計算するための計算式が格納されており、後述するように、この計算式の変数を、ユーザが入力した条件に応じて、内容テーブル46、質問変数テーブル44、及び、計算テーブル43を用いて定めることにより、標準歩掛が算出される。
単価DB24は、労務単価、資材単価等を示す単価データを格納したものである。単価DB24には、図4に示すような単価テーブルが格納さており、単価テーブルには、単価コードと名称と単位と単価とが格納されている。例えば、名称「軽油ドラム」の単価コードは2であり、単位はl(リットル)であり、単価は71(円)である。
履歴DB25は、図5に示すようにテーブル形式とされ、見積り項目のキーワード(本実施形態では項目名)と、その見積り項目について見積りを算出するときに参照された積算基準データ群の識別情報である積算基準データ群IDとが対応付けられて格納されている。積算基準データ群IDは、積算基準DB23内の各積算基準データ群に付されており、積算基準データ群毎に異なるものとされている。なお、本実施形態では、上述した代価コードと同じものとされているが、異なるものであってもよい。
積算書作成プログラム21は、コンピュータである装置1に、設計書ファイル26からデータを抽出して抽出データを作成する抽出データ作成機能と、抽出データから読み出したデータをテンプレートファイル22に埋め込んで積算書ファイルを作成する積算書ファイル作成機能と、積算書ファイル内の見積り項目について見積り額を算出して積算書ファイルに書き込む見積り額算出機能と、見積り項目のキーワードとその見積り項目について見積り額を算出する際に参照した積算基準データ群の識別情報とを履歴DB25に格納する履歴取得機能と、指定された見積り項目のキーワードを基に積算基準データ群の識別情報を履歴DB25から検索して、その識別情報を有する積算基準データ群を示す情報を表示する履歴表示機能とを実現させるためのプログラムである。なお、本実施形態では、抽出データは1つのファイルに格納される。以下、このファイルを、抽出データファイルと言う。
ここで、発注者毎に設計書の様式は決まっているため、抽出したテキストデータが元の設計書のどこに記載されていたかによって、そのテキストデータの種類(タイトルか、費目か、工種か等)が判り、積算書ではどこに記載すべきか、すなわち、テンプレートファイル22のどこに埋め込むべきかが決まる。このため、積算書作成プログラム21には、発注者別の埋め込みプログラムが含まれている。
設定ファイル27は、発注者別に設けられ、発注者数分存在する。各設定ファイル27には、該当する発注者用の(例えば、新潟県の設定ファイル27なら新潟県用の)テンプレートファイル22のファイル名、埋め込みプログラムのプログラム名、及び、作成された積算書ファイルのどこに何のデータが埋め込まれているかを示す情報(以下、「取り出し位置情報」という。)が、格納されている。積算書ファイルは発注者毎に様式が異なることから、取り出し位置情報は、後述するように、積算書ファイル内のデータを発注者に依らない共通の形式を持つ工事データベース(以下、「工事DB」と表記する。)に格納する際に必要となる。工事DBは、記憶部13内に設けられている。設定ファイル27には、例えば、次に示すような取り出し位置情報が格納されている。
SheetName=本工事費内訳書
開始キーワード=費目・工種
1単価当りの行数=4
数量=L4
単位=M4
単価=N4
金額=O4
上記取り出し位置情報は、Excelファイルである積算書ファイルの「本工事費内訳書」シートの「費目・工種」というキーワードが書かれている行の次の行から4行分ずつが1つの単価行であり、1つの単価行の4番目の行のL列にある文字列が数量であることを表している。
演算処理部12は、CPU、CPUのワークエリアとなるRAM、固定データを格納したROM等から構成されている。演算処理部12は、積算書作成プログラム21に従って動作することにより、抽出データファイルの作成、積算書ファイルの作成、見積り額の算出と書き込み、履歴の取得、表示部15への履歴表示命令等を行う。すなわち、演算処理部12は、抽出データファイル作成手段、積算書ファイル作成手段、見積り額算出手段、及び、履歴取得手段として機能し、また、表示部15と共に履歴表示手段として機能する。
通信インタフェース部14は、インターネットやLAN等の通信回線を介して装置1と他のコンピュータとを接続するときのインタフェースとなる部分である。装置1は、通信インタフェース部14を介してインターネットに接続されており、インターネットを介して発注者側に設けられたサーバに接続されている。
表示部15は、CRTまたは液晶ディスプレイ等から構成され、演算処理部12からの表示命令に応じて各種の画面を表示し、演算処理部12と共に履歴表示手段として機能する。
印刷部16は、プリンタから構成され、演算処理部12からの印刷命令に応じて各種の帳票を印刷する。
以上のように構成された装置1の動作について、図6〜図8のフローチャートに基づいて説明する。
積算書の作成に先立って、ユーザは、用いる設計書ファイル26を、発注者側のサーバからダウンロードすることにより、装置1の記憶部13に格納する。なお、設計書ファイル26の記憶部13への格納方法はダウンロードに限らず、設計書ファイル26が格納された記録媒体を記憶部13に装着する(例えば、記録媒体がコンパクト・ディスクなら、コンパクト・ディスク装置に装着する)こと等により、格納してもよい。
本実施形態の設計書ファイル26は、文字部分がテキストデータとされたPDF形式のファイルである。なお、文字には、数字や記号を含むものとする。図9は、設計書ファイル26の一例を示すものであり、発注者が新潟県の場合の設計書ファイル26の内訳表部分の1頁目を印刷したものである。この例では、「頁0-0002」「**本工事費**」「3,300」「m3」等が文字部分でありテキストデータである。PDFは、異なるOS間でも文書の交換を可能にするための形式であることから、元の文書のレイアウトを再現するために、文書内の各データについて元の文書のどこにそのデータがあったかを示す位置情報を含んでいる。図9の例で言えば、「頁0-0002」「**本工事費**」「3,300」「m3」等のテキストデータについてその位置情報(具体的には、そのテキストデータを囲む矩形の左上隅の点と右下隅の点の座標)を含み、さらに、縦線X1〜X8、横線Y1〜Y20等の図形データについてもその位置情報(具体的には、縦線はx座標、横線はy座標)を含んでいる。
ユーザは、積算書作成プログラム21を起動し、表示部15において表示された画面において、設計書ファイル26のファイル名と、発注者識別情報に相当する発注者名とを入力する(ステップS01)。ここでは、図9に示す内容を含む設計書ファイル26のファイル名と、「新潟県」とを入力するものとする。なお、入力とは、直接入力する場合のみならず、画面上での選択操作等により間接的に入力する場合を含む意である。装置1は、積算書作成プログラム21に従って、予め記憶している発注者名(例えば「新潟県」「長野県」「愛知県」等の各自治体名)を画面上に一覧表示するので、ユーザは、入力部11を用いてその一覧から選択することにより、発注者名を入力することができる。
装置1の演算処理部12は、入力された発注者名「新潟県」により特定されるテンプレートファイル22を、新潟県用の設定ファイル27内のファイル名を用いることにより、記憶部13から作業領域に読み出す。ここでは、作業領域は記憶部13内のハードディスク装置内に設けられることとするが、演算処理部12内のRAM等に設けてもよい。上述したように、新潟県のテンプレートファイル22は、図2に示すような構成を有している。
次に、演算処理部12は、積算書ファイル作成処理を行う(S02)。図7に基づいて積算書ファイル作成処理について説明すると、まず、演算処理部12は、設計書ファイル26に含まれる各頁データから、線の位置情報とテキストデータとそのテキストデータの位置情報とを抽出し、それらが含まれる頁の頁識別情報(ここでは頁番号)と共に格納することにより、抽出データファイルを作業領域内に作成する(S101)。なお、頁データとは、帳票1頁分のデータを言い、以下、単に「頁」と言う。本実施形態では、抽出データファイルはCSV形式とする。
図10は、図9に示す設計書ファイル26の頁から作成された抽出データファイルの内容の一部を示すものである。図10において、各行は抽出データファイルの各レコードに相当し、各行の最初の数字は頁番号である。図9の右上には「頁0-0002」と記載されているが、表紙の頁を含めるとこの頁は設計書の3頁目であるので、各行の先頭には頁番号「3」が格納されている。
また、図10に示すように、各頁の先頭から2行分は、その頁内の線の位置情報が格納される。図9に示される頁は、符号X1〜X8、Y1〜Y20で示すように、縦に8本、横に20本の線を含んでいる。このため、図10に示すように、3頁目のデータの最初の行には、縦線の数「8」と各縦線のx座標が格納され、次の行には、縦線の数「20」と各横線のy座標が格納される。なお、y座標の後半の9個は紙面の都合上図10には図示されていない。
さらに、抽出データファイルには、図10の3行目以降に示すように、設計書ファイル26の頁から抽出されたテキストデータが、その位置情報と共に、1行に格納される。図10の例では、各テキストデータについて、頁番号の後に、6つの座標値が格納されているが、最初の2つの座標値が、そのテキストデータを囲む矩形の左上隅の点(以下、「開始点」と言う。)のx座標及びy座標を表し、次の2つの座標値が、同矩形の右下隅の点(以下、「終了点」と言う。)のx座標及びy座標を表す。例えば、文字列「頁0-0002」は、点(756.0967,38.4061)を開始点、点(798.1778,48.82992)を終了点とする矩形の中に配置されている。なお、各頁の左上隅の点を原点(0,0)とし、右に行くほどx座標が大きくなり、下に行くほどy座標が大きくなるものとする。
PDFファイルは、上述したように各データの位置情報を含んでいることから、PDFファイルである設計書ファイル26から上記のような位置情報が抽出できる。
このように抽出データファイルを作成した後、演算処理部12は、作業領域に読み出したテンプレートファイル22に抽出データファイルから読み出したデータを埋め込む(すなわち、書き込む)ことにより、積算書ファイルを作成する(S102)。
積算書作成プログラム21には、前述したように発注者別の埋め込みプログラムが含まれており、発注者が新潟県の場合、演算処理部12は、新潟県用の設定ファイル27内のプログラム名で特定される新潟県用の埋め込みプログラムに従って、抽出データファイル中の各テキストデータをテンプレートファイル22に埋め込む。
詳しくは、演算処理部12は、頁毎に、各テキストデータについて、線の位置情報とそのテキストデータの位置情報とから、そのテキストデータが設計書のどの欄に存在していたかを判断する。例えば、テキストデータが3頁目の横線Y1と横線Y2との間で、かつ、縦線X1と縦線X3との間に位置していれば、そのテキストデータはタイトル欄A1に存在していた(すなわち、タイトルである)と判断する。テンプレートファイル22のタイトル欄C1〜C6には、既に、予め決まったタイトルが入れられているので、タイトル欄A1に存在していたテキストデータは、テンプレートファイル22には埋め込まれない。タイトル欄A2〜A6に存在していたテキストデータについても同様である。
また、偶数番目の横線とその次の偶数番目の横線との間(例えば横線Y2とY4との間や横線Y4とY6との間等)に存在し、開始点が縦線X1の近傍にあるテキストデータは、設計書の集計項目欄B1に存在していた費目と判断し、積算書においても集計項目欄D1で1番目の縦線の近傍から始まるように、テンプレートファイル22の集計項目欄D1にそのデータを埋め込む。なお、近傍か否かは、縦線X1のx座標と開始点のx座標との差が所定値以内か否かで判断する。図10の例では、17行目の「**本工事費**」が相当する。このテキストデータは、開始点のy座標が86.28228、終了点のy座標が96.7061であることから、横線Y2(y座標85.71)と横線Y4(y座標133.59)との間に存在し、開始点のx座標が11.4398であって、縦線X1のx座標11.44に近いことから、費目と判断される。
また、開始点が設計書の集計項目欄B1(すなわち、縦線X1とX2との間で、かつ、偶数番目の横線とその次の偶数番目の横線との間)にあって費目よりも右から始まるテキストデータ(図10の例では18行目の「道路改良」)は、工種と判断し、積算書においても集計項目欄D1で費目よりも右から始まるように、テンプレートファイル22の集計項目欄D1にそのデータを埋め込む。同様に、開始位置が集計項目欄B1にあるテキストデータで、工種よりも右から始まるものは種別、種別よりも右から始まるものは細別、というように判断し、テンプレートファイル22の該当箇所に埋め込む。
また、開始点が設計書の見積り項目欄B2(すなわち、縦線X2とX3との間で、かつ、偶数番目の横線とその次の偶数番目の横線との間)にあるテキストデータであって、見積り項目欄B2内の1行目に記載されたもの(例えば、図10の26行目の「バックホウ掘削積込」)は、見積り項目と判断し、同じ見積り項目欄B2内の2行目以降に記載されたもの(例えば、図10の27行目の「クローラ型山積0.8m3(平積0.6m3)地山の掘削積込レキ質土、」)は、その見積り項目の条件と判断し、見積り項目は見積り項目欄D2の1行目に、条件は2行目以降になるように、テンプレートファイル22に埋め込む。
このように、装置1は、抽出データファイル中の各テキストデータについて、そのテキストデータが存在する頁における線の位置情報とそのテキストデータの位置情報とに基づいて、文字認識を行うことなく、そのデータの種類を判断し、テンプレートファイル22における埋め込むべき箇所を決定して、テンプレートファイル22に埋め込む。テンプレートファイル22は、言わば積算書ファイルのひな型(様式)であり、これに設計書ファイルから抽出したテキストデータのうち必要なものを埋め込んだものを、積算書ファイルと言う。すなわち、かかる埋め込みにより、積算書ファイルが作成される。
図11は、図2に示すようなテンプレートファイル22に、図10に示すような抽出データファイル中のテキストデータのうち、必要なものを埋め込むことにより作成された積算書ファイルの内容を示すものであり、積算書ファイルの内訳表部分の1頁目を印刷したものである。この段階では、積算書ファイルにはまだ見積り額が書き込まれていないので、単価欄D5及び金額欄D6は空白である。
図6に戻って説明すると、演算処理部12は、新潟県用の設定ファイル27内の取り出し位置情報を参照して、積算書ファイルからテキストデータを読み出して、工事DBの該当箇所に格納する(図6のS03)。発注者に依らない共通形式の工事DBにデータを格納することにより、発注者に依らない共通の積算プログラム(積算書作成プログラム21内の積算を行う部分)で扱えるようにするためである。
工事DB内には、図19に示すような工種テーブルが設けられており、積算書ファイルの各テキストデータはこの工種テーブルに格納される。工種テーブルの1行は、工事データの1レコードに対応している。装置1は、テキストデータの種別を、積算書ファイルにおけるそのデータの位置から判断し、その種別とともにそのテキストデータを格納する。図19の例では、「**本工事費**」は「費目」と判断し、「バックホウ掘削積込」は「代価」と判断している。「代価」とは見積り項目を示す。また、積算書ファイルにおいて見積り項目「バックホウ掘削積込」の次の行の「クローラ型山積0.8m3…」は、見積り項目「バックホウ掘削積込」の条件と判断し、「バックホウ掘削積込」と同じ行(レコード)の「規格」列に格納する。
また、工事DB内には、図19に示すような出力先明細テーブルも設けられている。このテーブルには、工種テーブル内の各データを積算書ファイルに戻すときの出力位置が格納される。工種テーブルの各行のNo.と出力先明細テーブルの各行のNo.とは対応しており、例えば、工種テーブルのNo.6の「バックホウ掘削積込」の数量「3,300」は積算書ファイルの「L28」セルに出力することを表している。装置1は、積算書ファイルからテキストデータを読み出して工種テーブルに格納しつつ、出力先明細テーブルにそのデータの出力位置を格納する。
工事DBに積算書ファイルから読み出したデータを格納後、図12に示すように、装置1は、工事DBを参照して、積算書ファイルの内容を示す積算画面を、表示部15に表示する(S04)。この積算画面では、見積り項目については、代価表を作成すべきであるので、代価表作成画面に移行するためのボタン31が表示される。また、下位の項目の集計行となる行については、マーク30が表示される。
代価表とは、見積り項目(例えば「バックホウ掘削積込」)をある条件で行う場合の単位数量(バックホウ掘削積込の場合は1m3)当りの金額、すなわち、単価が格納された表であり、ここでは1つのレコードとして作成され、記憶部13内に設けられた代価表ファイルに格納される。
見積り項目に対してその見積り項目に関する条件が決まれば、積算基準DB23を参照することにより、その見積り項目の単位数量をその条件で行うために必要な労務、資材等を算出可能であり、さらに、単価DB24を参照することによりその労務、資材等に対して必要な金額を算出可能であり、その見積り項目の代価表を作成可能である。
見積り項目に関する条件とは、例えば、使用する機材の規格、施工区分、土質等であり、各見積り項目に対してどういう条件があり得るかは積算基準書で定められている。かかる積算基準書に基づいて作成された積算基準DB23には、各見積り項目に対し、その見積り項目に関して選択し得る条件が、内容テーブル46に内容として格納されている。したがって、演算処理部12は積算基準DB23を参照して、見積り項目に関する条件をユーザに入力させ、代価表を作成する(S05)。以下、代価表作成処理について、図8に基づいて説明する。
ユーザは代価表を作成しようとする見積り項目(例えば、「バックホウ掘削積込」)について、ボタン31をクリックする(図8のS201)。すると、演算処理部12は、その見積り項目の項目名をキーワードとして履歴DB25を検索して、対応付けられた積算基準データ群IDを取得し、そのIDによって特定される積算基準データ群の名称(例えば、「バックホウ掘削積込・床掘」)とその積算基準データ群が属する工種ツリー上の省庁名とを、積算基準DB23から取得する。そして、図13に示すような代価表作成画面を表示部15に表示させ、その履歴表示部32に、取得した名称と省庁名とを表示させる(S202)。ユーザは、履歴表示部32に表示された名称をダブルクリックすることにより、積算に用いる積算基準データ群を選択(指定)する(S203)。
積算基準は省庁や工種によって膨大な種類のものがあり、ユーザは各見積もり項目についてどの積算基準を用いて見積もるかを決めなければならないが、かかる膨大な種類の積算基準から使用する積算基準を探し出すことは、従来、容易ではなかったところ、装置1によれば、ユーザによって指定された(ここでは、ボタン31がクリックされた)見積り項目について、過去に代価表を作成する際に参照した積算基準データ群が検索されて、その名称が表示されるので、ユーザは容易に使用する積算基準を探し出すことができる。
なお、装置1は、代価表作成画面内の工種ツリー表示部33に、積算基準DB23の内容を示す工種ツリーを表示するので、この工種ツリーの中から積算に用いる積算基準データ群を選択してもよい。
次に、ユーザが、代価表作成画面の代価表表示部34に表示された新規ファイルマーク39をダブルクリックする等、代価表の新規作成のための所定の操作を行うと、装置1は、選択された積算基準データ群を参照して、質問とそれに対する選択可能な内容とを表示部15に提示し、ユーザが選択した内容すなわち条件に基づいて、新規に代価表を作成する。
詳しくは、装置1は、選択された積算基準データ群を参照して、図14に示すように、代価表作成画面に質問内容表示部35を表示する。質問内容表示部35には、積算基準データ群の質問テーブル45から取得した質問が表示されている(S204)。ユーザが質問内容表示部35において、ある質問(例えば「施工区分」)を選択すると(S205)、装置1は、選択された質問に関連付けられた内容テーブル46から、その質問に対して選択可能な内容(すなわち、入力可能な条件)を取得して、ダイアログボックス36に表示する(S206)。ユーザが、ダイアログボックス36において、ある内容(例えば「地山の掘削積込」)を選択すると(S207)、装置1は、選択された内容を質問内容の右横に並べて質問内容表示部35に表示する。
なお、装置1は、代価表を作成しようとする見積り項目について、工種テーブルの「規格」列に格納されている条件を、代価表作成画面の規格表示部37に表示するので、ユーザはそれを参照しながら条件を選択することができる。
図15に示すように、ユーザが答えなければならない質問全てに対して内容を選択して、確定ボタン38をクリックすると、演算処理部12は、確定操作ありと判断し(S208)、代価表を作成しようとしている見積り項目について、選択された内容すなわち条件に基づいて、積算基準データ群と単価DB24とを参照して、単価を算出し、代価表を作成して、図15に示すように表示部15に表示させる。図15では、100m3あたりの合計金額は16,639円であり、1m3あたりの単価は166円と表示されている。この代価表は、演算処理部12により又はユーザの指定により名称(図15の例では、「バックホウ(排対1次)」)が付されて、代価表ファイル内に保存される(S209)。
図3及び図4に基づいて、見積り項目の単価の算出方法について詳説する。図3の代価テーブル42に示すように、積算基準データ群「バックホウ掘削積込・床掘」によって代価表を作成するときは、単価コード10307、2、12の3種類の単価が必要であることが分かる。なお、図4に示すように、単価コード10307の単価は、「バックホウ(排ガス対策型・第1次基準値)」の単価であり、単価コード2の単価は、「軽油ドラム」の単価であり、単価コード12の単価は「特殊運転手」の単価である。また、各単価に対する標準歩掛(すなわち標準的な必要数量)は、計算式Rd+Rd2、Nd+Nd2、Sd+Sd2によって算出され、変数Rd、Rd2、Nd、Nd2、Sd、Sd2は、ユーザが選択した条件から、計算テーブル43、質問変数テーブル44、及び、内容テーブル46によって次のように求められる。
例えば、見積り項目「バックホウ掘削積込」に対して使用する積算基準データ群として、ユーザが名称「バックホウ掘削積込・床掘」の積算基準データ群を選択すると、装置1は、代価名称テーブル41からその積算基準データ群の代価コード100を取得し、代価コード100の質問テーブル45を参照して、図14に示すように、質問を質問内容表示部35に表示する。装置1は、例えば、4番目の質問「地山(土砂+岩塊玉石)」がユーザにより選択されたとき、その質問に関連付けられた内容テーブル46を参照して、選択可能な内容として「クローラ型・山積0.8m3」と「クローラ型・山積1.4m3」をダイアログボックス36に表示する。
ここで、ユーザが「クローラ型・山積0.8m3」を選択したとすると、装置1は、内容テーブル46から選択された内容の内容ナンバー(内容No.)2と数量108とを取得する。そして、質問変数テーブル44を参照して、内容ナンバーが2の変数はNd2であることから、Nd2=108とする。
同様にして、装置1は、変数Rd、Rd2、Nd、Sd、Sd2の値を求め、代価テーブル42の各計算式から各単価に対する必要数量を求める。そして、図4に示す単価テーブル47を参照して、単価に必要数量を乗じることにより、見積り金額を算出する。例えば、単価コード2の「軽油ドラム」の単価は71(円)であることから、71にその必要数量(すなわち、Nd+Nd2で計算された値)を乗じることにより、「軽油ドラム」に対する必要金額を算出する。同様にして、単価コード10307の「バックホウ(排ガス対策型・第1次基準値)」に対する必要金額、及び、単価コード12の「特殊運転手」に対する必要金額を算出する。これら3つの必要金額を合計したものが、見積り項目「バックホウ掘削積込」の所定数量当りの金額(図15の例では、100m3あたりの合計金額16,639円)となり、これを単位数量(図15の例では、1m3)あたりに換算することにより単価が算出される。
演算処理部12は、代価表を作成した見積り項目の項目名と、その代価表を作成する際に参照した積算基準データ群のIDとを対応付けて、履歴DB25に格納する(S210)。
図6に戻って説明すると、演算処理部12は、代価表を作成した見積り項目について、その代価表を参照して、単価を工種テーブルの「単価」列に書き込むとともに、単価に工種テーブルの「数量」列に格納されている数量を乗じることにより見積り額を算出して、工種テーブルの「金額」列に書き込む(S06)。そして、工種テーブルを参照して、図16に示すように、見積り額が「金額」欄に書き込まれた積算画面を表示部15に表示する(S07)。図16の例では、見積もり項目「バックホウ掘削積込」について、単価166(円)に数量3,300(m3)を乗じた547,800(円)が見積り額として表示されている。なお、演算処理部12は、見積り項目の見積り額を集計して、その集計結果を、工種テーブルにおけるその上位の集計項目の「金額」列に見積り額として書き込んで、積算画面に表示する。図16の例では、まだ、見積り項目「バックホウ掘削積込」の見積り額しか書き込まれていないので、その上位の集計項目「掘削(土砂)」及び「掘削工」の見積り額は、「バックホウ掘削積込」と同じになっている。
積算画面において次の代価表を作成する見積り項目が選択されると、装置1は代価表作成処理を再び行う。一方、終了操作がなされると、装置1は、積算書作成処理を終える(S08)。そして、積算書出力操作(上記終了操作に相当する操作でもよい。)がなされると、装置1は、出力先明細テーブルを参照して、工事DBから数量、単位、単価、及び、金額(見積り額)を読み出して、積算書ファイルの該当箇所にそれぞれ書き込む。なお、数量や単位は設計書によっては記載されていないことがあり、積算書画面上でユーザが入力することにより工種テーブルに格納されることがあるため、工種テーブルから積算書ファイルに書き込むものとする。単価や見積り額が書き込まれた積算書ファイルの印刷例を、図17に示す。図17は、図11に示す積算書ファイルの内訳表部分の1頁目に、単価と見積り額を書き込んだものである。
図18は、設計書ファイル26から単価や見積り額が書き込まれた積算書ファイルが作成されるまでの流れを、ファイルの動きに注目して示したものである。装置1は、設計書ファイル26からデータを抽出して抽出データファイルを作成し(S301)、発注者識別情報により特定されたテンプレートファイル22に(S302)、その抽出データファイルのデータを埋め込むことにより、発注者によって形式が異なる積算書ファイルを作成する(S303)。次に、装置1は、設定ファイル27内の取り出し位置情報を参照して、積算書ファイル内のデータを、発注者に依らない共通形式の工事DBに格納し(S304)、代価表作成処理を行って、工事DBに単価や見積り額を書き込む(S305)。そして、装置1は、積算書出力操作がなされると、工事DBから積算書ファイルに単価や見積り額を書き込む(S306)。
以上説明したように、装置1は、設計書ファイル26から各頁の線の位置情報と、テキストデータ及びその位置情報とを抽出して、頁識別情報と共に格納することにより、抽出データファイルを作成し、入力された発注者識別情報に基づいて特定される発注者のテンプレートファイル22に、抽出データファイルから読み出したテキストデータを、そのテキストデータが存在する頁の線の位置情報とそのテキストデータの位置情報とに基づいて埋め込むべき箇所を決定して埋め込むことにより、文字認識を行うことなく、積算書ファイルを作成する。したがって、設計書ファイルが、例えばPDFファイル等、そのままでは表計算プログラム用の形式に変換することが困難なものであっても、各頁の線の位置情報とテキストデータ及びその位置情報とが抽出可能なものであれば、設計書ファイルから自動的に積算書ファイルが作成される。このため、入力作業量を削減可能であるとともに、入力ミスの虞を低減可能である。
また、見積り項目について見積り額を算出するために参照した積算基準データ群の識別情報を、その項目のキーワード(ここでは、項目名)と対応付けて履歴DB25に格納しておき、ユーザにより指定された見積り項目について、その項目のキーワードを用いて履歴DB25を検索し、取得した積算基準データ群の識別情報に基づいて、積算基準データ群を示す情報(ここでは、積算基準データ群の名称)を表示部15に表示するので、通常膨大な数となる積算基準データ群の中から、代価表作成の際に参照すべき積算基準データ群を探し出すことが、容易となる。
なお、上記実施形態では、装置1をスタンドアロン型として構成したが、サーバであるコンピュータとクライアントであるコンピュータとが互いに接続されたサーバ・クライアント型として構成してもよい。かかる構成例としては、例えば、サーバの記憶部に、発注者別のテンプレートファイル22、積算基準DB23、単価DB24、及び、履歴DB25を格納しておき、クライアントに積算書作成プログラム21をインストールして、クライアントにおいてサーバの記憶部に記憶されたテンプレートファイル22等を利用しつつ積算書ファイルを作成する形態がある。この例のように、装置1は、単数のコンピュータから構成されるものとは限らず、複数のコンピュータから構成してもよい。
また、上記実施形態では、設計書ファイルはPDFファイルであったが、頁毎に線の位置情報とテキストデータとそのテキストデータの位置情報とを抽出できるファイル形式であればよく、PDFファイルに限るものではない。
また、抽出データは、1つのファイルに格納されていなくてもよく、例えばRAM等のメモリ上に記憶されていてもよい。
また、上記実施形態では、入力された発注者識別情報に基づいて特定される発注者のテンプレートファイル22を、記憶部13に記憶されているテンプレートファイル22群から読み出したが、テンプレートファイル22群すなわち発注者毎のテンプレートファイル22を予め記憶部13に記憶しておくのではなく、記憶部13には標準テンプレートファイル(ひな型の積算書テンプレートファイル)を記憶しておき、入力された発注者識別情報に基づいて特定される発注者のテンプレートファイル22を、標準テンプレートファイルから作成することとしてもよい。かかる例について、以下説明する。
装置1には、標準テンプレートファイルとして、所定の形式のスプレッドシート(例えば、Excelを起動したときに最初に表示される所謂ブランクドキュメント)を有するExcelファイル(以下、「標準Excelファイル」という。)が、記憶部13に記憶され、また、発注者別のExcelマクロが記憶部13に記憶されている。各マクロは、標準Excelファイルから当該発注者のテンプレートファイル22(例えば、新潟県のマクロであれば新潟県のテンプレートファイル22)を作成するものである。装置1は、発注者識別情報が入力されたときに、その発注者識別情報により特定されるマクロに従って、標準Excelファイルから、その発注者識別情報により特定される発注者のテンプレートファイル22を作成する。このようにすれば、予め発注者別のテンプレートファイル22を用意しておく必要は無い。
すなわち、特許請求の範囲を逸脱しない範囲で、本発明は種々の構成を採り得る。