(57)【要約】【課題】一つの側面では、本発明は、コンピュータの画面上に表示されて、人間が読んで理解することを前提とした形式の見積基準を使用して、作業費用の見積もりを行うプログラム等を提供すること。【解決手段】プログラムは、表示された作業の見積もりに係る見積基準中の文字列を取得し、前記文字列から複数の部分文字列を抽出し、所定の書式に基づいて前記部分文字列を作業に関する項目および該項目に対応する数値に割り当てる処理をコンピュータに実行させる。【選択図】図４
2017120554.tif 000002
【特許請求の範囲】
【請求項１】
表示された作業の見積もりに係る見積基準中の文字列を取得し、
前記文字列から複数の部分文字列を抽出し、
所定の書式に基づいて前記部分文字列を作業に関する項目および該項目に対応する数値に割り当てる
処理をコンピュータに実行させるプログラム。
【請求項２】
前記見積基準中の選択を受け付けた文字列が所定の領域にドロップされた場合に該文字列を取得する
処理をコンピュータに実行させる請求項１に記載のプログラム。
【請求項３】
前記作業は、修理作業である請求項１または請求項２に記載のプログラム。
【請求項４】
前記作業に関する項目は、前記作業で交換を行う部品に関する項目を含む請求項１から請求項３のいずれか１つに記載のプログラム。
【請求項５】
前記項目および前記数値を使用して見積もりを行う
処理をコンピュータに実行させる請求項１から請求項４のいずれか一つに記載のプログラム。
【請求項６】
前記見積基準の表示された部分に対応付けられた参考情報を表示する
処理をコンピュータに実行させる請求項１から請求項５のいずれか一つに記載のプログラム。
【請求項７】
表示された作業の見積もりに係る見積基準中の文字列を取得し、
前記文字列の書式を判定し、
判定した書式に基づいて前記文字列から複数の要素を抽出し、
前記書式に基づいて前記要素を作業に関する項目および該項目に対応する数値に割り当てる
処理をコンピュータに実行させる見積方法。
【請求項８】
表示された作業の見積もりに係る見積基準中の文字列を取得する取得部と、
前記文字列の書式を判定する判定部と、
判定した書式に基づいて前記文字列から複数の要素を抽出する抽出部と、
前記書式に基づいて前記要素を作業に関する項目および該項目に対応する数値に割り当てる割当部と
を備える見積装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータにより作業の見積もりを行うプログラム、見積方法および見積装置に関する。
【背景技術】
【０００２】
車両の修理に要する費用を見積もるにあたり、自動車の部品のイラストを表示し、選択された部品に色を付ける車両修理見積システムが開示されている（特許文献１）。
【０００３】
車両の修理に要する費用を見積もるにあたり、自動車の部品のイラストを素材によって異なる色を用いて表示する情報提供装置が開示されている（特許文献２）。
【０００４】
特許文献１の装置および特許文献２のシステムでは、あらかじめ補助記憶装置に記憶された見積基準に記載された工賃の情報を用いて、修理費用の見積を行う。ここで使用する見積基準は、部品のイラスト、部品名、材質、単価等の修理の見積もりに関する各種の情報が関連づけられたＤＢ（Database）である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３５０７４３号公報
【特許文献２】特開２００８−３１０５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
自動車修理業界では複数の企業等により見積基準が公開されている。その中には、電子書籍等、人間が読んで理解することを前提とした形式で公開されている見積基準も存在する。
【０００７】
一つの側面では、本発明は人間が読んで理解することを前提とした形式の見積基準を使用して、修理費用の見積もりを行うプログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一態様では、プログラムは、表示された作業の見積もりに係る見積基準中の文字列を取得し、前記文字列から複数の部分文字列を抽出し、所定の書式に基づいて前記部分文字列を作業に関する項目および該項目に対応する数値に割り当てる処理をコンピュータに実行させる。
【発明の効果】
【０００９】
一つの側面では、本発明は人間が読んで理解することを前提とした形式の見積基準を使用して、作業費用の見積もりを行うプログラム等を提供することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】見積装置の装置構成図である。
【図２】ガイドＤＢのレコードレイアウトを示す説明図である。
【図３】見積項目ＤＢのレコードレイアウトを示す説明図である。
【図４】見積装置の画面を示す説明図である。
【図５】見積装置の画面を示す説明図である。
【図６】見積装置の画面を示す説明図である。
【図７】見積装置の画面を示す説明図である。
【図８】見積装置の画面を示す説明図である。
【図９】プログラムの処理の流れを示すフローチャートである。
【図１０】レコード作成のサブルーチンの処理の流れを示すフローチャートである。
【図１１】文字列分割のサブルーチンの処理の流れを示すフローチャートである。
【図１２】実施の形態２の見積装置の画面を示す説明図である。
【図１３】実施の形態２のレコード作成のサブルーチンの処理の流れを示すフローチャートである。
【図１４】実施の形態２のレコード作成のサブルーチンの処理の流れを示すフローチャートである。
【図１５】実施の形態３の見積装置の装置構成図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図１は、見積装置１０の装置構成図である。本実施の形態の見積装置１０は、情報を演算処理する一または複数の演算制御装置であるＣＰＵ１１、ＳＲＡＭ（Static RAM）、ＤＲＡＭ（Dynamic RAM）またはフラッシュメモリ等の主記憶装置１２、ハードディスク、半導体メモリディスク等の記憶装置である補助記憶装置１３、マウス、キーボード、タッチパネル、ペンタブレット、マイク等の入力機器である入力部１４、プリンタ、プロッタ等の出力機器である出力部１５、ディスプレイ、プロジェクタ、ヘッドマウントディスプレイ等の表示部１６、ディスクドライブ、ＳＤ（Secure Digital）カードリーダ等の可搬型記録媒体を読み取る読取部１８、インターネットまたはイントラネット等のネットワークとの通信を行う通信モジュール１７を含む。見積装置１０は、たとえば汎用のパソコン、タブレット、スマートフォン等である。
【００１２】
補助記憶装置１３には、ＣＰＵ１１に実行させるプログラム、見積基準３３、ガイドＤＢ３４および見積項目ＤＢ３５等の各種ＤＢが保存される。なお、各種ＤＢは、通信モジュール１７を介して図示しない外部のＤＢから取得されても良い。
【００１３】
見積基準３３は、作業の見積もりを行う際に使用する基準である。本実施の形態では、自動車の修理作業の見積もりを行う場合に使用する見積基準３３を例にして説明する。作業の見積もりは、作業に要する工賃、交換する部品の価格等、作業に関わる費用の総額の見積もりを意味する。
【００１４】
見積基準３３には、修理対象の物品および修理を行う部位ごとに、修理に使用する部品の形状を示すイラスト、価格、各種修理作業に標準的に要する作業時間を示す指数その他修理の見積もりに必要な情報が記録されている。自動車の修理に関しては、複数の企業等が、車種ごとに修理の見積もりに使用する見積基準３３を作成して公開している。ここで車種とは、自動車のメーカが定めた英数字等で表現される型式であり、車両の詳細仕様を識別する際に使用することができる。また部位とは、車両の一部分を示す名称である。見積基準３３を作成する企業等により、部位の区切り方および名称が異なる場合がある。
【００１５】
作成する企業等により、見積基準３３のデータの形式および目次の構成は異なる。本実施の形態においては、見積基準３３は、ＰＤＦ（Portable Document Format）またはｅＰＵＢ（electronic PUBlication）等の電子書籍の形式のデータである。コンピュータ等の情報機器が画面に見積基準３３を表示することにより、ユーザは見積基準３３に記載された情報を閲覧することができる。見積基準３３には文字情報が含まれているので、ユーザは検索、文字列の選択などの操作を行う事もできる。さらに見積基準３３には目次が含まれているので、ユーザは目的とする情報が掲載されたページを速やかに見つけることができる。
【００１６】
図２は、ガイドＤＢ３４のレコードレイアウトを示す説明図である。ガイドＤＢ３４は、見積もりを行う際にユーザが参照する参考情報があらかじめ記録されたＤＢである。ガイドＤＢ３４は、車種フィールド、部位名称フィールドおよびガイドフィールドを備える。ガイドＤＢ３４は、１つの車種の１つの部位について、１つのレコードを有する。
【００１７】
車種フィールドには、車種が記録されている。部位名称フィールドには、部位の名称が記録されている。部位の名称は、見積基準３３の目次の構成に対応している。ガイドフィールドには、車種フィールドと部位フィールドとの組み合わせに対応した参考情報が記録されている。参考情報には、たとえば見積基準３３の読み方、入力方法、注意事項等、見積もりを行う際にユーザが参照すると便利なガイド情報が記載されている。参考情報は、見積基準３３に含まれている凡例記事、解説記事などを流用したものでも良いし、見積装置１０の操作方法等に合わせて別途製作したものでも良い。
【００１８】
図３は、見積項目ＤＢ３５のレコードレイアウトを示す説明図である。見積項目ＤＢ３５は、見積もりを行う際にユーザが選択した項目を記録するＤＢである。見積項目ＤＢ３５は、部位名称フィールド、品名フィールド、品番フィールド、数量フィールド、単価フィールドおよび指数フィールドを備える。見積項目ＤＢ３５は、ユーザからの入力を受け付けた１つの修理項目について、１つのレコードを有する。なお、ユーザによる１回の操作で、見積装置１０は複数の修理項目の入力を受け付ける場合がある。複数の修理項目の入力を受け付ける場合の具体例は後述する。
【００１９】
部位名称フィールドには、部位の名称が記録されている。品名フィールドには、修理作業で交換を行う交換部品、修理作業の内容等の、作業に関する項目が記録されている。品番フィールドには、修理作業で交換を行う交換部品の品番が記録されている。数量フィールドには、交換部品の数が記録されている。単価フィールドには、交換部品の単価が記録されている。指数フィールドには品名フィールドに記録された部品の交換作業または品名フィールドに記録された修理作業の所要時間を示す指数が記録されている。
【００２０】
以上に説明したように、本実施の形態では、部品に、その部品の交換作業等に要する作業工数を示す指数が対応付けられた見積基準３３を使用する。なお、見積基準３３には、部品の価格と修理作業の指数とを明確に分離して記載したものも存在する。このような見積基準３３では、部品には指数が対応付けられていない。このような見積基準３３を使用する場合には、見積装置１０は、見積項目ＤＢ３５の指数フィールドにはデータを記録しない。
【００２１】
なお、部品に指数が対応付けられていない見積基準３３のみを使用する場合には、見積項目ＤＢ３５は指数フィールドを含まなくても良い。
【００２２】
図４から図８は、見積装置１０の画面を示す説明図である。図４から図８を使用して、見積装置１０の概要を説明する。
【００２３】
車両の修理に要する費用を見積もる際には、見積装置１０は修理対象である車両に関する情報の入力を受け付ける。車両に関する情報には車種が含まれる。
【００２４】
図４は、見積装置１０が車両に関する情報を受け付けた後に表示部１６に表示する入力画面を示す説明図である。見積装置１０は、入力を受け付けた車種に対応する見積基準３３を補助記憶装置１３から読み出す。見積装置１０は、見積基準３３の目次を目次欄５１に表示する。見積装置１０は、目次欄５１に目次選択カーソル５７を表示する。見積装置１０は、目次選択カーソル５７に対応するページの内容を内容欄５２に表示する。ユーザは、目次選択カーソル５７を選択することにより、任意のページを内容欄５２に表示することができる。また、ユーザは内容欄５２の右側および下側に表示されたスクロールバー等を操作することにより、見積基準３３の任意のページの任意の場所を内容欄５２に表示することができる。ユーザが内容欄５２のスクロールバーを操作したことにより、内容欄５２に表示されるページが変更された場合には、見積装置１０は目次欄５１の対応する項目に目次選択カーソル５７を移動させる。
【００２５】
見積装置１０は、内容欄５２に表示しているページに対応する参考情報を補助記憶装置１３から読み出して、参考情報欄５３に表示する。具体的には見積装置１０は、入力を受け付けた車種を第１キー、目次選択カーソル５７が表示されている部位名称を第２キーとしてガイドＤＢ３４を検索して、対応するガイドレコードを抽出する。見積装置１０は、抽出したガイドレコードのガイドフィールドに記録されている参考情報を取得して、参考情報欄５３に表示する。
【００２６】
見積装置１０は、入力部１４を介して内容欄５２に表示されている文字列の選択を受け付ける。ユーザは、表示部１６に表示されるマウスカーソルをたとえば入力部１４の一例であるマウスを使用して操作することにより、任意の文字列を選択する。入力部１４の一例であるキーボードの操作を組み合わせることにより、ユーザは複数の領域に分かれた文字列をまとめて選択することができる。図４に示すように、見積装置１０は、選択を受け付けた文字列を選択枠６１で囲って表示部１６に表示する。
【００２７】
ユーザは、必要な文字列を選択した状態のまま矢印で示すようにマウスカーソルを入力欄５４に動かした後に選択を解除する、いわゆるドラッグアンドドロップ操作を行う。ドラッグアンドドロップ操作が行われたことを受け付けた見積装置１０は、ドラッグアンドドロップ操作された文字列を取得する。
【００２８】
図５は、見積装置１０が、文字列を取得した後に表示部１６に表示する入力画面を示す説明図である。見積装置１０は、取得した文字列を解析した結果を入力欄５４の各列に表示する。なお、図５では入力欄５４はその一部分のみが表示されている。ユーザは、入力欄５４の右および下に表示されているスクロールバーを操作することにより、品名、品番、単価および指数等の入力内容を確認することができる。
【００２９】
図６は、見積装置１０が次の項目の入力を受け付ける際に表示部１６に表示する入力画面を示す説明図である。ユーザは、選択枠６１で示すように図４とは別の文字列を選択して、入力欄５４にドラッグアンドドロップ操作を行う。ドラッグアンドドロップ操作が行われたことを受け付けた見積装置１０は、ドラッグアンドドロップ操作された文字列を取得する。
【００３０】
ユーザが一覧表ボタン５５を選択したことを受け付けた場合には、見積装置１０は表示部１６に図７に示す画面を表示する。図７は、入力欄５４に受け付けた情報の一覧を表示部１６の画面全体に表示した入力欄表示画面である。図７を使用して、図５および図６でユーザが選択した文字列を見積装置１０が取得して解析した結果を説明する。
【００３１】
見積装置１０は、図４および図５でユーザが選択した文字列を取得して解析した結果を図７のＮｏ．１の行に表示する。部位名称の列に表示されている「フロントフェンダー」は、図４および図５の目次選択カーソル５７で示されている部位名称と対応している。品名の列に表示されている「フェンダー」は、取得した文字列を見積装置１０が解析して品名であると判定した部分を示す。以後、品番、単価、指数の各列には、取得した文字列を見積装置１０が解析して得たそれぞれの項目が表示されている。
【００３２】
見積装置１０は、図６でユーザが選択した文字列を取得して解析した結果を図７のＮｏ．２の行に表示する。部位の列に表示されている「フロントフェンダー」は、図６の目次選択カーソル５７で示されている部位と対応している。項目の列に表示されている「塗装：ロアフェンダーサポート」は、取得した文字列を見積装置１０が解析して、品名であると判定した部分を示す。品番および単価の項目が空欄であるのは、取得した文字列にこれらの項目が含まれていないと見積装置１０が判定したことを示す。指数の列には、取得した文字列を見積装置１０が解析して得た指数が表示されている。Ｎｏ．２の行とＮｏ．３の行に同一の内容が表示されていることは、見積装置１０が「塗装：ロアフェンダーサポート」を示す文字列を２回受け付けたことを示す。
【００３３】
図７の画面では、見積装置１０は各項目についてユーザによる編集を受け付ける。ユーザは、たとえば接着剤などの材料を入力することができる。ユーザは空欄になっている単価の欄に数値を入力することができる。ユーザは数量の欄の値を変更することができる。また、ユーザは不要な行の削除および新たな行の追加入力を行うことができる。なお、見積装置１０は、図７の入力欄表示画面に表示する内容と対応する情報を見積項目ＤＢ３５に記録する。
【００３４】
ユーザが戻るボタン５８を選択したことを受け付けた場合には、見積装置１０は図４から図６に示す入力画面を表示部１６に表示して、前述のドラッグアンドドロップ操作による入力を受け付ける。ユーザが見積開始ボタン５９を選択したことを受け付けた場合には、見積装置１０は図８に示す見積表示画面を表示部１６に表示する。
【００３５】
見積表示画面は、画面上側の一覧４１、画面下部の内訳４２および画面右下の合計欄４３を含む。見積装置１０は、一覧４１に修理作業の種別、修理を行う部位名称、使用する部品の品名、品番、数量および単価、修理作業の指数等を表形式で表示する。見積装置１０は、内訳４２に、一覧４１に示されている修理を実施する場合の工賃、部品代、材料代および税金の内訳金額を表示する。見積装置１０は、合計欄４３に、一覧４１に示されている修理を実施する場合の合計金額を表示する。
【００３６】
なお、図８ではフロントフェンダー以外の修理部位の入力結果も含めた修理見積を示す。一覧４１の下から４行分が、図７の画面に入力されている各項目に対応する。
【００３７】
図９は、プログラムの処理の流れを示すフローチャートである。図９を使用して本実施の形態の見積装置１０が行う処理の流れを説明する。見積装置１０は、車両情報を受け付ける（ステップＳ５０１）。車両情報は、車種すなわち車両の型式、車体番号、車両の所有者名等の情報である。車両情報は、入力部１４から受け付けても良いし、通信モジュール１７を介して接続された他の情報端末から受け付けても良い。
【００３８】
見積装置１０は、補助記憶装置１３から受け付けた車種に対応する見積基準３３を読み出して表示部１６に図４に示した入力画面を表示する（ステップＳ５０２）。前述の通り、見積装置１０は入力部１４を介して目次選択カーソル５７および内容欄５２のスクロールバーの操作を受け付けて、ユーザが所望するページを表示部１６に表示する。見積装置１０は、ユーザが表示させたページの車種および部位に対応する参考情報をガイドＤＢ３４から抽出して参考情報欄５３に表示する。
【００３９】
見積装置１０は、内容欄５２に表示された文字列のドラッグアンドドロップ操作を、入力部１４を介して受け付ける。文字列が入力欄５４にドロップされたことを受け付けた場合は、見積装置１０はドロップされた文字列を取得する（ステップＳ５０３）。なお、内容欄５２以外の文字列がドラッグアンドドロップ操作された場合および、内容欄５２の文字列が入力欄５４以外の場所にドロップされた場合には、見積装置１０はドラッグアンドドロップ操作を無視する。
【００４０】
見積装置１０は、レコード作成のサブルーチンを起動する（ステップＳ５０４）。レコード作成のサブルーチンは、取得した文字列を見積基準３３の書式に沿って解析して、見積項目ＤＢ３５の各フィールドの項目に対応するように分解した後に、見積項目ＤＢ３５に新規レコードを作成するサブルーチンである。レコード作成のサブルーチンの処理の流れは後述する。
【００４１】
見積装置１０は、見積項目ＤＢ３５のデータを、入力欄５４に表示する（ステップＳ５０５）。見積装置１０は、見積もりの作成を開始するか否かを判定する（ステップＳ５０６）。具体的には、図４から図８に示す見積開始ボタン５９の選択を受け付けた場合、見積装置１０は見積もりを開始すると判定し、見積開始ボタン５９の選択を受け付けていない場合、見積装置１０は見積もりを開始しないと判定する。
【００４２】
見積を開始しないと判定した場合（ステップＳ５０６でＮＯ）、見積装置１０はステップＳ５０３に戻る。見積もりを開始すると判定した場合（ステップＳ５０６でＹＥＳ）、見積装置１０は修理の費用を見積もり、図８の見積書を作成する（ステップＳ５０７）。見積装置１０は、その後処理を終了する。
【００４３】
ステップＳ５０７で見積装置１０が修理費用を見積もる方法は従来から使用されている方法と同一であるので、説明を省略する。
【００４４】
図１０は、レコード作成のサブルーチンの処理の流れを示すフローチャートである。レコード作成のサブルーチンは、取得した文字列を見積基準３３の書式に沿って解析して、見積項目ＤＢ３５の各フィールドの項目に対応するように分解した後に、見積項目ＤＢ３５に新規レコードを作成するサブルーチンである。レコード作成のサブルーチンは、使用する見積基準３３の書式に応じて作成する。したがって、以下に説明するレコード作成のサブルーチンの処理の流れは例示である。以下では、図４から図６の内容欄５２に示す見積基準３３の書式を例としてレコード作成のサブルーチンの処理の流れを説明する。
【００４５】
見積装置１０は、以後の処理で使用する「指数」、「単価」、「品番」および「品名」の各変数を初期化する（ステップＳ５２０）。初期化は、たとえば各変数を空白に設定することにより行う。
【００４６】
見積装置１０は、取得した文字列に対応する「部位名称」を取得する（ステップＳ５２１）。具体的には見積装置１０は、目次選択カーソル５７が表示されている文字列を取得した文字列に対応する「部位名称」であると判定して、補助記憶装置１３に記憶する。
【００４７】
見積装置１０は、文字列分割のサブルーチンを起動する（ステップＳ５２２）。文字列分割のサブルーチンは、取得した文字列を見積基準３３の書式に沿って解析して複数の短い文字列を取り出すサブルーチンである。以後の説明では見積装置１０が文字列分割のサブルーチンで取り出した短い文字列を部分文字列と記載する。文字列分割のサブルーチンの処理の流れは後述する。
【００４８】
見積装置１０は、カウンタＫを初期値１に設定する（ステップＳ５２３）。見積装置１０は、ステップＳ５２２で取り出した第Ｋ部分文字列、すなわちＫ番目の部分文字列が指数を示すか否かを判定する（ステップＳ５２４）。具体的には見積装置１０は、部分文字列が小数点以下一桁の数字である場合または左側に「＃」が付いた小数点以下一桁の数字である場合に、指数を示す部分文字列であると判定する。指数を示すと判定した場合（ステップＳ５２４でＹＥＳ）、見積装置１０は「指数」がＫ番目の部分文字列であることを補助記憶装置１３に記憶する（ステップＳ５２５）。
【００４９】
指数を示さないと判定した場合（ステップＳ５２４でＮＯ）、見積装置１０は、Ｋ番目の部分文字列が単価を示すか否かを判定する（ステップＳ５２８）。具体的には見積装置１０は、部分文字列が小数点以下二桁の数字である場合に単価を示す部分文字列であると判定する。単価を示すと判定した場合（ステップＳ５２８でＹＥＳ）、見積装置１０は、「単価」がＫ番目の部分文字列であることを補助記憶装置１３に記憶する（ステップＳ５２９）。
【００５０】
単価を示さないと判定した場合（ステップＳ５２８でＮＯ）、見積装置１０は、Ｋ番目の部分文字列が品番を示すか否かを判定する（ステップＳ５３１）。具体的には見積装置１０は、部分文字列が４文字以上の英数字である場合に品番を示す部分文字列であると判定する。
【００５１】
ここで４文字以上の英数字とは、アルファベットだけが４文字以上である場合、数字だけが４文字以上である場合およびアルファベットと数字が合計して４文字以上である場合を意味する。なお、見積装置１０は、部分文字列がひらがな、カタカナまたは漢字を含む場合は、品番を示さないと判定する。
【００５２】
品番を示すと判定した場合（ステップＳ５３１でＹＥＳ）、見積装置１０は、「品番」がＫ番目の部分文字列であることを補助記憶装置１３に記憶する（ステップＳ５３２）。
【００５３】
品番を示さないと判定した場合（ステップＳ５３１でＮＯ）、見積装置１０は、Ｋ番目の部分文字列が品名を示すか否かを判定する（ステップＳ５３５）。具体的には見積装置１０は、部分文字列がカタカナを含む場合に品名を示す部分文字列であると判定する。ここでカタカナを含む場合とは、部分文字列に１文字以上のカタカナを含む場合を意味する。カタカナと、漢字、ひらがな、アルファベット、数字または記号とを含む部分文字列である場合も、見積装置１０は品名を示す文字列であると判定する。品名を示すと判定した場合（ステップＳ５３５でＹＥＳ）、見積装置１０は、「品名」がＫ番目の部分文字列であることを補助記憶装置１３に記憶する（ステップＳ５３６）。
【００５４】
ステップＳ５２５、ステップＳ５２９、ステップＳ５３２もしくはＳ５３６の終了後、または品番を示さないと判定した場合（ステップＳ５３５でＮＯ）、見積装置１０は部分文字列の処理が終了したか否かを判定する（ステップＳ５４１）。
【００５５】
具体的には、見積装置１０は、ステップＳ５２２で起動した文字列分割のサブルーチンで取り出したすべての部分文字列の処理が終了したか否かを判定する。したがって、見積装置１０は、ステップＳ５２２で起動した文字列分割のサブルーチンが終了した際のＩの値と同じ数の部分文字列を処理した場合に、すべての部分文字列の処理が終了したと判定する。
【００５６】
見積装置１０は、文字列分割のサブルーチンから部分文字列に加えてサブルーチン終了時のＩを引数として取得して、ステップＳ５２２の判定に使用することができる。また、見積装置１０は、文字列分割のサブルーチンから引数として部分文字列のみを取得し、取得した部分文字列の数をステップＳ５２２の判定に使用しても良い。
【００５７】
終了してないと判定した場合（ステップＳ５４１でＮＯ）、見積装置１０はカウンタＫに１を加算する（ステップＳ５４２）。見積装置１０はステップＳ５２４に戻る。
【００５８】
終了したと判定した場合（ステップＳ５４１でＹＥＳ）、見積装置１０は見積項目ＤＢ３５に新たなレコードを作成して記録する（ステップＳ５４５）。作成するレコードは、部位名称フィールドに「部位名称」を、品名フィールドに「品名」を、品番フィールドに「品番」を、数量フィールドに「１」を、単価フィールドに「単価」を、指数フィールドに「指数」をそれぞれ記録したレコードである。変数に部分文字列が記録されていない場合には、見積装置１０はその変数に対応するフィールドを空欄にする。見積装置１０は、その後処理を終了する。
【００５９】
前述のように、レコード作成のサブルーチンは、使用する見積基準３３の書式に応じて作成する。したがって、「品番」は４桁以上の英数字に限定しない。たとえば５文字以上の英数字を「品番」に使用する見積基準３３を使用する場合には、ステップＳ５３１で見積装置１０は、部分文字列が５文字以上の英数字である場合に品番を示す部分文字列であると判定する。
【００６０】
図１１は、文字列分割のサブルーチンの処理の流れを示すフローチャートである。文字列分割のサブルーチンは、取得した文字列を見積基準３３の書式に沿って解析して複数の部分文字列を取り出すサブルーチンである。文字列分割のサブルーチンは、使用する見積基準３３の書式に応じて作成する。したがって、以下に説明する文字列分割のサブルーチンの処理の流れは例示である。以下では、図４から図６の内容欄５２に示す見積基準３３の書式を例としてレコード作成のサブルーチンの処理の流れを説明する。
【００６１】
見積装置１０は、以後の処理で使用する変数である「Ｉ部分文字列」を初期化する（ステップＳ５５１）。ここでＩは１以上の整数であり、その最大値はたとえば１０である。初期化は、たとえば各変数を空白に設定することにより行う。
【００６２】
見積装置１０は、カウンタＩを初期値１に設定する（ステップＳ５５２）。見積装置１０は、カウンタＪを初期値１に設定する（ステップＳ５５３）。見積装置１０は、処理中の文字列のＪ番目の文字から次のスペース文字または末尾までの部分文字列を取得する（ステップＳ５５４）。
【００６３】
ステップＳ５５４について、詳しく説明する。見積装置１０は、処理中の文字列を１文字ずつ順番に、スペースまたは末尾であるか否かを判定する。スペースであると判定した場合には、そのスペースの前までの部分文字列を取得する。末尾である、すなわち判定するべき文字がこれ以上存在しないと判定した場合にも、末尾までの部分文字列を取得する。なお、処理中の文字列の最後の文字がスペースである場合には、見積装置１０はスペースの前までの部分文字列を取得する。
【００６４】
見積装置１０は、第Ｉ部分文字列すなわちＩ番目の部分文字列はステップＳ５５４で取得した文字列であると判定し、補助記憶装置１３に記憶する（ステップＳ５５５）。
【００６５】
見積装置１０は、取得した文字列の末尾まで処理を終了したか否かを判定する（ステップＳ５５６）。終了していないと判定した場合（ステップＳ５５６でＮＯ）、見積装置１０は、ステップＳ５５４で取得した部分文字列の次のスペース以外の文字を検出し、その文字の番号をカウンタＪに設定する（ステップＳ５５７）。
【００６６】
見積装置１０は、ステップＳ５５７で検出した文字が取得した文字列の末尾であるか否かを判定する（ステップＳ５５８）。末尾ではないと判定した場合（ステップＳ５５８でＮＯ）、見積装置１０はカウンタＩに１を加算する（ステップＳ５５９）。見積装置１０は、ステップＳ５５４に戻る。
【００６７】
末尾であると判定した場合（ステップＳ５５６でＹＥＳまたはステップＳ５５８でＹＥＳ）、見積装置１０は処理を終了する。
【００６８】
文字列分割のサブルーチンは、ステップＳ５５５で記憶した部分文字列を引数として呼び出し元のプログラムに引き渡す。また、文字列分割のサブルーチンは、前述のようにカウンタＩの最終的な値を引数として呼び出し元のプログラムに引き渡しても良い。
【００６９】
前述のように、文字列分割のサブルーチンは、使用する見積基準３３の書式に応じて作成する。したがって、部分文字列間の区切りはスペースに限定しない。たとえば、タブ、カンマ、コロン、セミコロン等を項目間の区切りに使用する見積基準３３を使用することができる。
【００７０】
本実施の形態によると、電子ブック等の人間が読んで理解することを前提とした形式で発行された見積基準３３を使用して修理費用の見積もりを行う見積装置１０を提供することができる。
【００７１】
見積基準３３、ガイドＤＢ３４および見積項目ＤＢ３５は、通信モジュール１７および図示しないネットワークに接続された外部の記憶装置に記録されても良い。
【００７２】
見積装置１０は、入力部１４、表示部１６および通信モジュール１７を備えるクライアントと、図示しないネットワークで接続されたサーバとの組み合わせにより実現しても良い。このようにすることにより、大容量記憶装置を持たないいわゆるシンクライアント端末またはＣＰＵ１１の処理能力の低い携帯端末を使用して見積もりを作成することができる。
【００７３】
見積基準３３には、ワードプロセッサの文書ファイル形式またはＣＳＶ（Comma-Separated Values）形式等、任意の形式のファイルを使用することができる。複数の車種の見積基準３３が１冊の電子書籍にまとめて掲載された見積基準３３を使用しても良い。１つの車種の見積基準３３が複数冊の電子書籍に分かれていても良い。
【００７４】
本実施の形態においては、修理作業を例にして挙げたが、点検作業、検査作業、整備作業等の、種々の作業の見積もりに、本実施の形態の見積装置１０を適用することができる。また、自動車の入庫、受入点検、整備作業、中間点検、完成検査等の、車検に必要な一連の作業の見積もりに、本実施の形態の見積装置１０を適用することができる。さらに、たとえば記録簿の発行、保安基準適合証の発行、陸自申請等の、車検に必要な手続に要する費用を加えた見積もりに、本実施の形態の見積装置１０を適用することもできる。
【００７５】
本実施の形態においては自動車の修理作業を例にして挙げたが、自動二輪車、家電機器、情報機器等、各種の物品の修理作業の見積もりに本見積装置１０を適用することができる。このような場合には、各メーカ、修理業者等が独自に算定している修理作業の所要時間のデータ等を記載した見積基準３３を使用する。
【００７６】
［実施の形態２］
実施の形態２は、見積基準３３から取得した文字列から部品等の左右の区別を判定する見積装置１０に関する。なお、実施の形態１と共通する部分については説明を省略する。
【００７７】
図１２は、実施の形態２の見積装置１０の画面を示す説明図である。図１２は、本実施の形態の見積装置１０が図７の代わりに表示する入力欄表示画面を示す。図１２の画面では、品名欄と品番欄との間に左右欄が表示されている。左右欄は、品名欄に表示した名称の部品の左右の区別を表示する欄である。左右欄に「Ｌ」と表示されている場合には、左側であることを示す。左右欄に「Ｒ」と表示されている場合には、右側であることを示す。左右欄が空欄である場合には、左右の区別が存在しないことを示す。
【００７８】
本実施の形態の表示装置は、図８を使用して説明した見積表示画面の部位名称・品名欄と品番欄との間に左右欄の列を加えた見積表示画面を表示する。同様に本実施の形態の表示装置は、図４から図６を使用して説明した入力画面の品名欄と品番欄との間に左右欄の列を加えた入力画面を表示する。本実施の形態の表示装置が使用する入力欄表示画面および入力画面については図示を省略する。
【００７９】
本実施の形態の見積項目ＤＢ３５は、図１２を使用して説明した画面と同様に、品名フィールドと品番フィールドとの間に左右フィールドを有する。本実施の形態の見積項目ＤＢ３５のレコードレイアウトは図示を省略する。
【００８０】
図４および図１２を使用して、本実施の形態の見積装置１０の動作について説明する。図４において選択枠６１で囲まれた文字列には、「Ｌ」が含まれている。これはユーザにより左側の「フェンダー」が選択されたことを意味する。表示装置１０は、左側の「フェンダー」の選択を受け付けたことを図１２のＮｏ．１の行の左右欄に「Ｌ」で示す。
【００８１】
図６および図１２を使用して、本実施の形態の見積装置１０の別の動作について説明する。図６において選択枠６１で囲まれた文字列には「Ｒ／Ｌ」が含まれている。これはユーザにより左右両方の「塗装：ロアフェンダーサポート」が選択されたことを意味する。表示装置１０は、右側の「塗装：ロアフェンダーサポート」を受け付けたことを図１２のＮｏ．２の行の左右欄に「Ｒ」で示す。同様に表示装置１０は、左側の「塗装：ロアフェンダーサポート」を受け付けたことを図１２のＮｏ．３の行の左右欄に「Ｌ」で示す。以上に説明したように本実施の形態の見積装置１０は左右合わせて２項目の入力を同時に受け付けることができる。
【００８２】
図１３および図１４は、実施の形態２のレコード作成のサブルーチンの処理の流れを示すフローチャートである。本実施の形態のレコード作成のサブルーチンは、図１０を使用して説明したサブルーチンの代わりに使用するサブルーチンである。
【００８３】
見積装置１０は、以後の処理で使用する「左右」、「指数」、「単価」、「品番」および「品名」の各変数を初期化する（ステップＳ５２０）。初期化は、たとえば各変数を空白に設定することにより行う。
【００８４】
見積装置１０は、取得した文字列に対応する「部位名称」を取得する（ステップＳ５２１）。見積装置１０は、文字列分割のサブルーチンを起動する（ステップＳ５２２）。文字列分割のサブルーチンは、図１１を使用して説明したサブルーチンと同一のサブルーチンである。見積装置１０は、カウンタＫを初期値１に設定する（ステップＳ５２３）。
【００８５】
見積装置１０は、見積装置１０は、ステップＳ５２２で取り出した第Ｋ部分文字列、すなわちＫ番目の部分文字列が左右を示すか否かを判定する（ステップＳ５７１）。具体的には見積装置１０は、部分文字列が「Ｒ」「Ｌ」または「Ｒ／Ｌ」のいずれかである場合に左右を示す部分文字列であると判定する。左右を示すと判定した場合（ステップＳ５７１でＹＥＳ）、見積装置１０は、「左右」がＫ番目の部分文字列であることを補助記憶装置１３に記憶する（ステップＳ５７２）。
【００８６】
左右を示さないと判定した場合（ステップＳ５７１でＮＯ）、見積装置１０は、ステップＳ５２２で取り出した第Ｋ部分文字列、すなわちＫ番目の部分文字列が指数を示すか否かを判定する（ステップＳ５２４）。以後ステップＳ５３６までの処理は、実施の形態１と同様であるので説明を省略する。
【００８７】
ステップＳ５７２、ステップＳ５２５、ステップＳ５２９、ステップＳ５３２もしくはステップＳ５３６の終了後、または品名を示さないと判定した場合（ステップＳ５３５でＮＯ）、見積装置１０は部分文字列の処理が終了したか否かを判定する（ステップＳ５４１）。具体的には、見積装置１０は、ステップＳ５２２で起動した文字列分割のサブルーチンで取り出したすべての部分文字列の処理が終了したか否かを判定する。
【００８８】
終了してないと判定した場合（ステップＳ５４１でＮＯ）、見積装置１０はカウンタＫに１を加算する（ステップＳ５４２）。見積装置１０はステップＳ５７１に戻る。
【００８９】
終了したと判定した場合（ステップＳ５４１でＹＥＳ）、見積装置１０は、「左右」に「Ｒ／Ｌ」が記憶されているか否かを判定する（ステップＳ５８１）。「Ｒ／Ｌ」が記憶されていないと判定した場合、見積装置１０は見積項目ＤＢ３５に新たなレコードを作成して記録する（ステップＳ５８２）。作成するレコードは、部位名称フィールドに「部位名称」、品名フィールドに「品名」を、左右フィールドに「左右」を、品番フィールドに「品番」を、数量フィールドに「１」、単価フィールドに「単価」を、指数フィールドに「指数」をそれぞれ記録したレコードである。変数に部分文字列が記録されていない場合には、見積装置１０はその変数に対応するフィールドを空欄にする。見積装置１０は、その後処理を終了する。
【００９０】
「Ｒ／Ｌ」が記憶されていると判定した場合、見積装置１０は「左右」に「Ｒ」を記憶する（ステップＳ５８５）。見積装置１０は、見積項目ＤＢ３５に新たなレコードを作成して記録する（ステップＳ５８６）。ステップＳ５８６で作成するレコードは、ステップＳ５８２で作成するレコードと同様であるので説明を省略する。
【００９１】
見積装置１０は「左右」に「Ｌ」を記憶する（ステップＳ５８７）。見積装置１０は、見積項目ＤＢ３５に新たなレコードを作成して記録する（ステップＳ５８８）。ステップＳ５８８で作成するレコードは、ステップＳ５８２で作成するレコードと同様であるので説明を省略する。ステップＳ５８２またはステップＳ５８８の終了後、見積装置１０は処理を終了する。
【００９２】
本実施の形態によると、見積基準３３から取得した文字列から部品等の左右の区別を判定して記録する見積装置１０を提供することができる。また、本実施の形態によると１回のドラッグアンドドロップ操作で左右合わせて２個の修理項目の入力を受け付ける見積装置１０を提供することができる。
【００９３】
［実施の形態３］
実施の形態３は、汎用のコンピュータ４６とプログラム４７とを組み合わせて動作させることにより、見積装置１０を実現する形態に関する。図１５は、実施の形態３の見積装置１０の装置構成図である。図１５を使用して、本実施の形態の構成を説明する。なお、実施の形態１と共通する部分の説明は省略する。
【００９４】
本実施の形態の見積装置１０は、ＣＰＵ１１、主記憶装置１２、補助記憶装置１３、入力部１４、出力部１５、表示部１６、通信モジュール１７、読取部１８およびバスを備える汎用のコンピュータ４６を使用する。
【００９５】
プログラム４７は、可搬型記録媒体４８に記録されている。ＣＰＵ１１は、読取部１８を介してプログラム４７を読み込み、補助記憶装置１３に保存する。また、コンピュータ４６内に実装されたフラッシュメモリ等の半導体メモリ４９に記憶されたプログラム４７を読出しても良い。さらに、ＣＰＵ１１は、通信モジュール１７および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム４７をダウンロードして補助記憶装置１３に保存しても良い。
【００９６】
コンピュータ４６は、上述した各種ソフトウェア処理を実行するプログラム４７を、可搬型記録媒体４８もしくは半導体メモリ４９から読み取り、またはネットワークを介して他のサーバコンピュータからダウンロードする。プログラム４７は、汎用のコンピュータ４６の制御プログラムとしてインストールされ、主記憶装置１２にロードして実行される。これにより、コンピュータ４６は上述した見積装置１０として機能する。
【００９７】
各実施例で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９８】
１０  見積装置
１１  ＣＰＵ
１２  主記憶装置
１３  補助記憶装置
１４  入力部
１５  出力部
１６  表示部
１７  通信モジュール
１８  読取部
３３  見積基準
３４  ガイドＤＢ
３５  見積項目ＤＢ
４１  一覧
４２  内訳
４３  合計欄  
４６  コンピュータ
４７  プログラム
４８  可搬型記録媒体
５１  目次欄
５２  内容欄
５３  参考情報欄
５５  一覧表ボタン
５７  目次選択カーソル
５８  戻るボタン
５９  見積開始ボタン
６１  選択枠
【図１】
2017120554.tif 000003
【図２】
2017120554.tif 000004
【図３】
2017120554.tif 000005
【図４】
2017120554.tif 000006
【図５】
2017120554.tif 000007
【図６】
2017120554.tif 000008
【図７】
2017120554.tif 000009
【図８】
2017120554.tif 000010
【図９】
2017120554.tif 000011
【図１０】
2017120554.tif 000012
【図１１】
2017120554.tif 000013
【図１２】
2017120554.tif 000014
【図１３】
2017120554.tif 000015
【図１４】
2017120554.tif 000016
【図１５】
2017120554.tif 000017