(57)【特許請求の範囲】
【請求項１】
所定の画面の画面情報に基づいて、前記所定の画面を特徴付ける値を生成し、
画面を特徴付ける値と、前記画面上での入力が確定した文字列と、前記文字列が入力された前記画面における座標位置とを対応付けたテーブルから、生成した前記所定の画面を特徴付ける値と前記所定の画面上での入力に関する操作位置とに対応する文字列を探索し、
探索した前記文字列を出力する、
制御部を有することを特徴とする入力支援装置。
【請求項２】
前記制御部は、
前記所定の画面上で文字列の入力が確定した場合、前記文字列が正当であるか否かを示す情報を取得し、
取得した前記情報に基づいて前記文字列が正当であると判定した場合、前記所定の画面を特徴付ける値と前記文字列と前記文字列が入力された前記所定の画面における座標位置とを対応付けて前記テーブルに登録することを特徴とする請求項１に記載の入力支援装置。
【請求項３】
前記制御部は、
前記所定の画面の各画素の値に基づいて、前記所定の画面を分割した分割領域に対応して、前記分割領域を特徴付ける値を決定し、
決定した前記分割領域を特徴付ける値に基づいて、前記所定の画面を特徴付ける値を生成することを特徴とする請求項１または２に記載の入力支援装置。
【請求項４】
前記制御部は、
前記所定の画面における罫線の座標位置、または前記所定の画面における文字入力領域の座標位置に基づいて、前記所定の画面を特徴付ける値を生成することを特徴とする請求項１または２に記載の入力支援装置。
【請求項５】
前記操作位置は、
前記所定の画面上で入力中の入力文字列のうちのいずれかの文字が入力された前記所定の画面における座標位置であることを特徴とする請求項１〜４のいずれか一つに記載の入力支援装置。
【請求項６】
前記制御部は、
前記テーブルから、前記所定の画面を特徴付ける値と前記いずれかの文字と前記いずれかの文字が入力された前記所定の画面における座標位置とに対応する文字列を探索することを特徴とする請求項５に記載の入力支援装置。
【請求項７】
入力支援装置と、所定の画面の画面情報を前記入力支援装置に送信する情報処理装置とが接続される入力支援システムにおいて、
前記入力支援装置は、
前記情報処理装置から受信した前記画面情報に基づいて、前記所定の画面を特徴付ける値を生成し、
画面を特徴付ける値と、前記画面上での入力が確定した文字列と、前記文字列が入力された前記画面における座標位置とを対応付けたテーブルから、生成した前記所定の画面を特徴付ける値と前記所定の画面上での入力に関する操作位置とに対応する文字列を探索し、
探索した前記文字列を出力する、
ことを特徴とする入力支援システム。
【請求項８】
前記入力支援装置は、
前記操作位置を前記情報処理装置に送信して前記テーブルからの前記操作位置に対応する文字列の探索結果を前記情報処理装置から受信することにより、前記操作位置に対応する文字列を探索することを特徴とする請求項７に記載の入力支援システム。
【請求項９】
コンピュータが、
所定の画面の画面情報に基づいて、前記所定の画面を特徴付ける値を生成し、
画面を特徴付ける値と、前記画面上での入力が確定した文字列と、前記文字列が入力された前記画面における座標位置とを対応付けたテーブルから、生成した前記所定の画面を特徴付ける値と前記所定の画面上での入力に関する操作位置とに対応する文字列を探索し、
探索した前記文字列を出力する、
処理を実行することを特徴とする入力支援方法。
【請求項１０】
コンピュータに、
所定の画面の画面情報に基づいて、前記所定の画面を特徴付ける値を生成し、
画面を特徴付ける値と、前記画面上での入力が確定した文字列と、前記文字列が入力された前記画面における座標位置とを対応付けたテーブルから、生成した前記所定の画面を特徴付ける値と前記所定の画面上での入力に関する操作位置とに対応する文字列を探索し、
探索した前記文字列を出力する、
処理を実行させることを特徴とする入力支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力支援装置、入力支援システム、入力支援方法、および入力支援プログラムに関する。
【背景技術】
【０００２】
従来、利用者が文字を入力する際、登録された文字列の集合から入力候補となる文字列を出力することにより、利用者による文字入力にかかる操作量を削減することができるという、利用者による文字入力操作を支援する技術がある。関連する先行技術として、例えば、特定の利用者とは異なる他の利用者の購入品リストを参照して、特定の利用者の購入品リストに挿入する推奨品リストを決定して、購入品リストと推奨品リストとを混在した一覧表示を行うものがある。また、確定前の入力文字列に部分一致するキーワード候補である第１推奨キーワードと、第１推奨キーワードが属するキーワードグループに含まれる第１推奨キーワード以外の他の候補である第２推奨キーワードとを、検索キーワードとした検索を行う技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−８４１６５号公報
【特許文献２】特開２０１３−１９６４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、所定の画面上で利用者が文字を入力する際に、利用者が入力したい入力文字列に応じた文字列を出力することが難しい。
【０００５】
１つの側面では、本発明は、所定の画面上での入力に関する操作位置に対応する過去に入力された文字列を出力することができる入力支援装置、入力支援システム、入力支援方法、および入力支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、所定の画面上での入力が確定した文字列と文字列が入力された所定の画面における座標位置とを対応付けたテーブルから、所定の画面上での入力に関する操作位置に対応する文字列を探索し、探索した文字列を出力する入力支援装置、入力支援システム、入力支援方法、および入力支援プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、所定の画面上での入力に関する操作位置に対応する過去に入力された文字列を出力することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、入力支援装置１０１の動作例を示す説明図である。
【図２】図２は、業務システム２００の接続例を示す説明図である。
【図３】図３は、サーバ２０１のハードウェア構成例を示すブロック図である。
【図４】図４は、クライアント端末２０２のハードウェア構成例を示すブロック図である。
【図５】図５は、業務画面の一例を示す説明図である。
【図６】図６は、クライアント端末２０２の機能構成例を示すブロック図である。
【図７Ａ】図７Ａは、業務画面特徴値の第１の生成例を示す説明図（その１）である。
【図７Ｂ】図７Ｂは、業務画面特徴値の第１の生成例を示す説明図（その２）である。
【図８】図８は、業務画面データのフォーマット例を示す説明図である。
【図９】図９は、業務画面特徴値の第２の生成例を示す説明図である。
【図１０】図１０は、入力候補テーブル６１１の記憶内容の一例を示す説明図である。
【図１１】図１１は、入力候補文字列の一例を示す説明図である。
【図１２Ａ】図１２Ａは、確定文字列の正当性を判定する一例を示す説明図（その１）である。
【図１２Ｂ】図１２Ｂは、確定文字列の正当性を判定する一例を示す説明図（その２）である。
【図１３】図１３は、入力完了後の画面例を示す説明図である。
【図１４】図１４は、入力候補テーブル作成処理手順の一例を示すフローチャートである。
【図１５】図１５は、業務処理手順の一例を示すフローチャート（その１）である。
【図１６】図１６は、業務処理手順の一例を示すフローチャート（その２）である。
【図１７】図１７は、業務処理手順の一例を示すフローチャート（その３）である。
【図１８】図１８は、業務画面特定処理手順の一例を示すフローチャート（その１）である。
【図１９】図１９は、業務画面特定処理手順の一例を示すフローチャート（その２）である。
【図２０】図２０は、入力文字列取得処理手順の一例を示すフローチャートである。
【図２１】図２１は、入力候補探索処理手順の一例を示すフローチャートである。
【図２２】図２２は、確定文字列正当判定処理手順の一例を示すフローチャートである。
【図２３】図２３は、確定文字列格納処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、開示の入力支援装置、入力支援システム、入力支援方法、および入力支援プログラムの実施の形態を詳細に説明する。
【００１０】
図１は、入力支援装置１０１の動作例を示す説明図である。入力支援装置１０１は、入力が確定された文字列の履歴から入力中の入力文字列に類似する文字列を出力するコンピュータである。入力支援装置１０１は、例えば、パーソナル・コンピュータである。また、入力支援装置１０１は、携帯端末であってもよい。入力文字列に類似する文字列を出力することにより、利用者が入力しようとする文字列を出力することができれば、利用者による文字入力を省くことができる。利用者が入力しようとする文字列を推定する技術は、入力補完や、自動補完等と呼ばれる技術である。
【００１１】
以下、利用者が入力しようとする文字列を推定する技術を単に、「入力補完」と呼称する。また、入力補完により出力された文字列を、「入力候補文字列」と呼称する。
【００１２】
例えば、入力補完を行う装置は、キー入力された後、入力処理が行われたことにより、キー入力により入力された入力文字列に基づいて入力候補文字列を探索し、入力候補文字列を表示する。そして、入力補完を行う装置は、入力補完文字列、または入力文字列のいずれかを選択して、再度の入力処理を行い、文字列の入力を確定する。ここで、入力処理は、文字列を変換または確定する処理である。例えば、入力補完を行う装置は、ＥＮＴＥＲキーが押されることにより、入力処理を行う。以下、入力が確定した文字列を、「確定文字列」と呼称する場合がある。
【００１３】
ここで、入力補完は、入力途中の入力文字列について、入力文字列と完全一致もしくは部分一致する文字列を含む文字列を記憶領域に登録された文字列の集合の中から取得し、取得された文字列を入力候補文字列として出力する。例えば、入力補完として、画面内の文字入力領域の識別情報に対応して入力された文字列を記憶しておき、入力操作が行われた文字入力領域に応じて、記憶した文字列を出力することが考えられる。しかしながら、ある画面を形成するソフトウェアが、入力補完を行うソフトウェアとは別である場合、入力された文字列が、ある画面内のどの文字入力領域に対応するのかを特定することは困難である。また、ある画面上で入力された全ての文字列から、入力文字列に応じて入力補完となる文字列を出力すると、利用者にとって関係のない文字列が出力される恐れがある。
【００１４】
そこで、図１に示す入力支援装置１０１は、画面上で入力が確定した文字列と文字列が入力された座標位置とを対応付けたテーブルから、画面上における操作位置に対応する文字列を探索する。これにより、入力支援装置１０１は、画面上における操作位置下にある文字入力領域の入力履歴を提示できて、利用者の文字入力操作を支援することができる。
【００１５】
まず、入力支援装置１０１は、所定の画面を表示する。例えば、所定の画面は、ある業務サービスを提供するソフトウェアにより描画された画面である。または、所定の画面は、ある業務サービスを提供する情報処理装置から送信された画面情報を基に描画された業務画面でもよい。または、所定の画面は、他のコンピュータの画面をリモートで制御するリモート画面制御ソフトウェアにより描画された画面でもよい。例えば、図１に示す画面１１１は、業務画面を表示する。
【００１６】
具体的には、画面１１１は、「担当者コード」という文字列と、担当者コードを入力する文字入力領域と、「得意先コード」という文字列と、得意先コードを入力する文字入力領域と、を有する。そして、図１に示す入力支援装置１０１は、担当者コードを入力する文字入力領域に、入力支援装置１０１の利用者の操作により「３１５」という文字列が入力されて確定された状態である。さらに、図１に示す入力支援装置１０１は、得意先コードを入力する文字入力領域に、「１」という入力中の入力文字列がある状態である。
【００１７】
そして、入力支援装置１０１は、入力候補テーブル１１２から、所定の画面１１１上での入力に関する操作位置に対応する文字列を探索する。入力に関する操作位置は、所定の画面１１１上で入力中の入力文字列のうちのいずれかの文字が入力された所定の画面１１１における座標位置でもよいし、所定の画面１１１上におけるカーソルの位置やフォーカスの位置であってもよい。図１の例では、入力支援装置１０１は、所定の画面１１１上で入力中の入力文字列が入力された所定の画面１１１における座標位置に対応する文字列を探索する。
【００１８】
ここで、入力候補テーブル１１２は、所定の画面１１１上での入力が確定された確定文字列と確定文字列が入力された所定の画面１１１における座標位置とを対応付けて記憶するテーブルである。図１に示す入力候補テーブル１１２は、Ｘ座標ｘ１、Ｙ座標ｙ１で入力された確定文字列が「３１５」ということを示すレコード１１２−１と、Ｘ座標ｘ１、Ｙ座標ｙ２で入力された確定文字列が「１１６」ということを示すレコード１１２−２とを有する。
【００１９】
図１の例では、入力支援装置１０１は、入力候補テーブル１１２から、「１」という入力中の入力文字列が入力された所定の画面１１１における座標位置であるＸ座標ｘ１、Ｙ座標ｙ２と同一の座標位置であるレコード１１２−２を検出する。そして、入力支援装置１０１は、検出したレコード１１２−２の確定文字列「１１６」を出力する。ここで、確定文字列「１１６」の出力先として、入力支援装置１０１は、所定の画面１１１内に出力してもよいし、所定の画面１１１外部の下側に出力してもよい。入力支援装置１０１は、出力した文字列が選択された状態で入力処理が行われた場合、出力した文字列「１１６」を、所定の画面１１１内の得意先コードを入力する文字入力領域に格納する。
【００２０】
次に、入力支援装置１０１と、所定の画面１１１の画面情報を入力支援装置１０１に送信する情報処理装置とが接続される入力支援システムを、業務システムに適用した例を、図２で説明する。
【００２１】
図２は、業務システム２００の接続例を示す説明図である。業務システム２００は、サーバ２０１と、クライアント端末２０２とを有する。ここで、クライアント端末２０２は、図１で示した入力支援装置１０１に相当する。
【００２２】
クライアント端末２０２は、業務システム２００内に１台有ってもよいし、複数台有ってもよい。サーバ２０１と、クライアント端末２０２とは、ネットワーク２０３を経由して接続される。業務システム２００は、ディスプレイエミュレータを用いたシステムである。ここで、ディスプレイエミュレータは、サーバ２０１が提供する業務サービスを利用するクライアント装置を模倣するソフトウェアである。また、ディスプレイエミュレータは、クライアント端末２０２上で動作するソフトウェアである。また、ディスプレイエミュレータは、文字入力インターフェースにより提供される画面を形成する。
【００２３】
サーバ２０１は、業務画面の画面情報をクライアント端末２０２に送信する情報処理装置である。具体的には、サーバ２０１は、サーバ２０１上で動作する業務プログラムの制御により、サーバ２０１内のデータベースやディスプレイエミュレータに対して読出や書込を行う。サーバ２０１のハードウェアの一例は、図３で後述する。また、クライアント端末２０２は、ディスプレイエミュレータにより、サーバ２０１から送信された画面情報から業務画面を表示し、クライアント端末２０２の利用者により操作される。
【００２４】
次に、図３を用いてサーバ２０１のハードウェア構成例を説明するとともに、図４を用いてクライアント端末２０２のハードウェア構成例を説明する。
【００２５】
図３は、サーバ２０１のハードウェア構成例を示すブロック図である。図３において、サーバ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、サーバ２０１は、ディスクドライブ３０４およびディスク３０５と、通信インターフェース３０６と、を含む。また、ＣＰＵ３０１〜ディスクドライブ３０４、通信インターフェース３０６はバス３０７によってそれぞれ接続される。
【００２６】
ＣＰＵ３０１は、サーバ２０１の全体の制御を司る演算処理装置である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００２７】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０４には、例えば、磁気ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ３０４が磁気ディスクドライブである場合、ディスク３０５には、磁気ディスクを採用することができる。また、ディスクドライブ３０４がソリッドステートドライブである場合、ディスク３０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００２８】
通信インターフェース３０６は、ネットワーク２０３と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース３０６は、通信回線を通じてネットワーク２０３を介して他の装置に接続される。通信インターフェース３０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００２９】
また、業務システム２００の管理者が、サーバ２０１を直接操作する場合、サーバ２０１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
【００３０】
図４は、クライアント端末２０２のハードウェア構成例を示すブロック図である。クライアント端末２０２は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、を含む。また、クライアント端末２０２は、ディスクドライブ４０４と、ディスク４０５と、通信インターフェース４０６と、を含む。また、クライアント端末２０２は、ディスプレイ４０７と、キーボード４０８と、マウス４０９とを含む。また、ＣＰＵ４０１〜ディスクドライブ４０４と、通信インターフェース４０６〜マウス４０９とは、バス４１０によってそれぞれ接続される。
【００３１】
ＣＰＵ４０１は、クライアント端末２０２の全体の制御を司る演算処理装置である。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される揮発性メモリである。
【００３２】
ディスクドライブ４０４は、ＣＰＵ４０１の制御に従ってディスク４０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ４０４には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ４０４が磁気ディスクドライブである場合、ディスク４０５には、磁気ディスクを採用することができる。また、ディスクドライブ４０４が光ディスクドライブである場合、ディスク４０５には、光ディスクを採用することができる。また、ディスクドライブ４０４がソリッドステートドライブである場合、ディスク４０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３３】
通信インターフェース４０６は、ネットワーク２０３と内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース４０６は、通信回線を通じてネットワーク２０３を介して他の装置に接続される。通信インターフェース４０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３４】
ディスプレイ４０７は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ４０７には、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３５】
キーボード４０８は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード４０８は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４０９は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス４０９は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００３６】
図５は、業務画面の一例を示す説明図である。図５では、業務画面の一例として、受注入力画面５０１を示す。図５の例では、カーソル５０２は、受注入力画面５０１内の、希望納期を入力する入力項目内に存在する。本実施の形態における業務画面は、全て、カーソルの大きさを単位面積として、２４行×８０列の領域を有する。また、業務画面内には、カーソルの座標位置を示す文字列を表示するカーソル座標表示領域がある。例えば、受注入力画面５０１は、カーソル座標表示領域５０３内に、カーソル５０２の座標位置である「３：６６」を表示する。また、業務画面内には、業務画面の状態を示す文字列を表示する領域がある。例えば、受注入力画面５０１は、受注入力画面の状態を示す文字列を表示する状態表示領域５０４を有する。図５の例では、状態表示領域５０４には何も文字列が表示されていない。
【００３７】
業務画面の入力項目には、数字を受け付けて他の文字を受け付けない場合や、英数字を受け付けて他の文字を受け付けない場合が多い。例えば、受注入力画面５０１の受注日付の入力項目や希望納期の入力項目は、英数字を受け付けて他の文字を受け付けない入力項目である。
【００３８】
（クライアント端末２０２の機能構成例）
図６は、クライアント端末２０２の機能構成例を示すブロック図である。クライアント端末２０２は、決定部６０１と、生成部６０２と、探索部６０３と、出力部６０４と、取得部６０５と、登録部６０６とを含む。制御部となる決定部６０１〜登録部６０６は、記憶装置に記憶されたプログラムをＣＰＵ４０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、ディスク４０５などである。また、各部の処理結果は、ＣＰＵ４０１のレジスタや、ＣＰＵ４０１のキャッシュメモリ等に格納される。
【００３９】
また、クライアント端末２０２は、入力候補テーブル６１１にアクセス可能である。入力候補テーブル６１１は、ＲＡＭ４０３、ディスク４０５といった記憶装置に格納される。また、入力候補テーブル６１１は、サーバ２０１が有しており、複数のクライアント端末２０２がアクセス可能としてもよい。
【００４０】
入力候補テーブル６１１は、業務画面として、業務画面上での入力が確定した確定文字列と確定文字列が入力された業務画面における座標位置とを対応付けて記憶する。また、入力候補テーブル６１１は、業務画面を特徴付ける値と、業務画面上での入力が確定した文字列と、前述の文字列が入力された業務画面における座標位置とを対応付けて記憶してもよい。入力候補テーブル６１１は、１つの業務画面に関する情報を記憶してもよいし、複数の業務画面に関する情報を記憶してもよい。入力候補テーブル６１１の記憶内容の一例については図１０で後述する。
【００４１】
決定部６０１は、業務画面の各画素の値に基づいて、業務画面を分割した分割領域に対応して、分割領域を特徴付ける値を決定する。分割する領域は、どのような大きさでもよく、決定部６０１は、例えば、カーソルの大きさで業務画面を分割する。また、決定部６０１は、業務画面を分割した分割領域の全てに対して特徴付ける値を決定してもよいし、業務画面を分割した分割領域の一部に対して特徴付ける値を決定してもよい。
【００４２】
以下、特徴付ける値を、単に、「特徴値」と呼称する。また、業務画面の特徴値を、「業務画面特徴値」と呼称する。
【００４３】
例えば、決定部６０１は、分割領域の各画素の値が全て背景色である場合、特徴値を、背景であることを示す「０」に決定する。より具体的な特徴値の決定例は、図７Ａ、図７Ｂで後述する。
【００４４】
生成部６０２は、業務画面の画面情報に基づいて、業務画面の特徴値を生成する。業務画面の画面情報は、業務画面を形成することが可能な情報であり、例えば、業務画面の各画素の値であったり、業務画面内の罫線の座標位置と文字入力領域の座標位置であったりする。例えば、生成部６０２は、決定部６０１が決定した分割領域の特徴値に基づいて、業務画面の特徴値を生成してもよい。また、生成部６０２は、業務画面における罫線の座標位置、または業務画面における文字入力領域の座標位置に基づいて、業務画面の特徴値を生成してもよい。業務画面における罫線の座標位置、または業務画面における文字入力領域の座標位置から、業務画面特徴値を生成する例は、図８、図９で後述する。
【００４５】
探索部６０３は、入力候補テーブル６１１から、業務画面上での入力に関する操作位置に対応する文字列を探索する。ここで、入力に関する操作位置は、業務画面上で入力中の入力文字列のうちのいずれかの文字が入力された業務画面における座標位置であってもよい。また、入力に関する操作位置は、業務画面が文字入力インターフェースにより提供される画面である場合、業務画面上におけるカーソルの位置でもよい。また、入力に関する操作位置は、業務画面がグラフィカルユーザインターフェースにより提供される画面である場合、業務画面上におけるフォーカスの位置やマウスカーソルの位置でもよい。また、マウスカーソルの位置を採用する際には、探索部６０３は、入力候補テーブル６１１から、座標位置がマウスカーソルの位置から所定の範囲内にある確定文字列を探索してもよい。
【００４６】
また、探索部６０３は、入力候補テーブル６１１から、生成部６０２が生成した業務画面の特徴値と操作位置とに対応する文字列を探索する。また、探索部６０３は、入力候補テーブル６１１から、入力中の入力文字列のうちのいずれかの文字といずれかの文字が入力された業務画面における座標位置とに対応する文字列を探索してもよい。例えば、探索部６０３は、入力候補テーブル６１１から、操作位置と同一の座標位置であり、かつ、入力文字列の先頭文字が一致するレコードを探索してもよい。
【００４７】
また、サーバ２０１が入力候補テーブル６１１を有しており、複数のクライアント端末２０２がアクセス可能であるとする。この場合、探索部６０３は、操作位置をサーバ２０１に送信して入力候補テーブル６１１から操作位置に対応する文字列の探索結果をサーバ２０１から受信することにより、操作位置に対応する文字列を探索する。
【００４８】
出力部６０４は、探索部６０３が探索した文字列を出力する。出力形式としては、ディスプレイ４０７への表示である。
【００４９】
取得部６０５は、業務画面上で文字列の入力が確定した場合、文字列が正当であるか否かを示す情報を取得する。具体的には、取得部６０５は、文字列が正当であるか否かを示す情報を、状態表示領域５０４内に表示された画像を解析することにより取得してもよいし、ディスプレイエミュレータから取得可能であれば取得してもよい。また、正当でない文字列の例として、例えば、業務画面上における、半角数字を入力すべき文字入力領域に対して、全角数字で形成する文字列である。
【００５０】
登録部６０６は、取得部６０５が取得した情報に基づいて入力文字列が正当であると判定した場合、入力文字列が示す文字列と入力文字列が入力された業務画面における座標位置とを対応付けて入力候補テーブル６１１に登録する。入力文字列が正当であるか否かの判定方法について、例えば、クライアント端末２０２は、予め正当でないという文字列を登録しておく。そして、クライアント端末２０２は、取得部６０５が取得した情報が、予め正当でないという文字列とは異なる場合、取得部６０５が取得した情報が正当であると判定する。
【００５１】
次に、業務画面特徴値の生成例について説明する。業務画面特徴値の生成例は、大きく分けて２つある。以下、図７Ａ、図７Ｂで第１の生成例について説明し、図８で第２の生成例で用いる、業務画面データのフォーマット例について説明し、図９で第２の生成例について説明する。
【００５２】
図７Ａは、業務画面特徴値の第１の生成例を示す説明図（その１）である。また、図７Ｂは、業務画面特徴値の第１の生成例を示す説明図（その２）である。業務画面特徴値の第１の生成例は、業務画面のビットマップから業務画面特徴値を生成する方法である。クライアント端末２０２は、現在表示する画面の全てを業務画面の特定に利用してもよいし、現在表示する画面の一部を業務画面の特定に利用してもよい。本実施の形態では、クライアント端末２０２は、図７Ａで示すように、現在表示する受注入力画面５０１のうちの左上の１／４部分の領域、具体的には、カーソルの大きさを単位面積として１２行×４０列の領域を、業務画面の特定に利用する。また、業務画面のビットマップの取得方法として、例えば、クライアント端末２０２は、ディスプレイエミュレータが業務画面のビットマップを書き込んだＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）から取得する。
【００５３】
左上の１／４部分の領域は、図７Ａで示すように、業務画面の題名である「受注入力」を含んでおり、かつ、現在の日付である「２０１３／０７／０２」を含んでいない。業務画面の題名を含むであろう領域を選ぶことにより、画面の特定精度を向上させることができる。また、現在の日付を含まないであろう領域を選ぶことにより、同じ画面であるにも関わらず、別の画面として特定してしまうことを抑制することができる。
【００５４】
次に、クライアント端末２０２は、１２行×４０列の領域内の、各カーソルの位置に対応する特徴値を決定する。ここでは、クライアント端末２０２は、各カーソルの範囲に対して、特徴値として「１」か「０」を設定する。ここで、クライアント端末２０２は、特徴値を、各カーソルの位置に含まれるビットマップに基づいて決定する。
【００５５】
例として、背景色がＲＧＢ値０ｘＦＦＦＦＦＦである白であるとする。この場合、クライアント端末２０２は、あるカーソルの位置に含まれる各ビットの全てのＲＧＢ値が０ｘＦＦＦＦＦＦであれば、特徴値として「０」を設定し、他のＲＧＢ値があれば特徴値として「１」を設定する。また、図７Ｂの（ａ）の例では、カーソル７０１の位置に含まれるビットには、ＲＧＢ値が０ｘ００００００である黒のビットがあるため、クライアント端末２０２は、カーソル７０１の位置に対応する特徴値を「１」に設定する。
【００５６】
そして、クライアント端末２０２は、各行において、各カーソル位置に対応する特徴値を決定する。図７Ｂの（ｂ）で示す表７０２は、各行における各カーソル位置に対応する値をまとめたものである。図７Ｂの（ｂ）で示す表７０２は、レコード７０２−１〜１２を有する。
【００５７】
表７０２は、行番号と、各カーソル位置に対応する特徴値と、「１」の個数の合計というフィールドを有する。行番号フィールドには、各行の行番号が格納される。各カーソル位置に対応する特徴値フィールドには、各行における各カーソル位置に対応する特徴値が格納される。「１」の個数の合計フィールドには、各行における特徴値が「１」の個数の合計を２桁の文字列としたデータが格納される。例えば、レコード７０２−２は、２番目の行について、「１」が８個であるため、「１」の個数の合計が「０８」であることを示す。
【００５８】
次に、クライアント端末２０２は、各行における「１」の個数の合計を文字列として連結したデータを、業務画面特徴値として生成する。図７Ｂの（ｃ）の例では、クライアント端末２０２は、表７０２で示す「０００８２７２０２０２０００１１００００００００」を、受注入力画面５０１の業務画面特徴値として生成する。
【００５９】
業務画面特徴値の第１の生成例を実行することにより、クライアント端末２０２は、画面構成が類似する業務画面を１つの業務画面として登録することができる。具体的には、例えば、受注入力画面５０１と発注業務画面とは、各カーソル位置に同一の内容を入力することが多い。例えば、受注入力画面５０１内の担当者コード、得意先コード、納入先コードの入力項目は、発注業務画面の同名の入力項目と同一の文字列を入力することが多い。そこで、業務画面特徴値の第１の生成例では、画面のビットマップをそのまま画面の特定に用いるのではなく、各カーソル位置に対応する値に置き換えることにより、画面構成が類似する業務画面を１つの業務画面として登録することができる。
【００６０】
図８は、業務画面データのフォーマット例を示す説明図である。業務画面特徴値の第２の生成例は、サーバ２０１から送信される業務画面データから業務画面特徴値を生成する方法である。そこで、図８では、業務画面データのフォーマット例について説明する。
【００６１】
ここで、本実施の形態において、サーバ２０１から送信される業務画面データは、図８で示すフォーマットに従う。具体的には、業務画面データは、制御データまたは文字データの繰り返しにより形成される。制御データは、横罫線や縦罫線の描画指示を示すデータや、文字入力領域の位置の指示を示すデータである。文字データは、文字の座標位置と描画する文字列とのデータである。制御データか文字データかの判定方法として、クライアント端末２０２は、業務画面データの先頭のバイトの値が０ｘ２０未満であれば制御データであり、０ｘ２０以上であれば文字データであると判定する。制御データであれば、制御する内容とデータ長とが予め決まっており、クライアント端末２０２は、制御データを処理した後、制御データのデータ長で指定される次のバイトの値を参照して、再び制御データか文字データかを判定する。
【００６２】
制御データの一例を、図８で示す。例えば、横罫線の描画指示を示す制御データである横罫線描画指示は、０ｘ１Ａで始まり、行位置、開始列、終了列という４バイトのデータである。クライアント端末２０２は、業務画面データの中から横罫線描画指示を検出すると、指示された行位置の下側に、開始列から終了列まで横罫線を描画する。また、文字入力領域の位置の指示を示す制御データである文字入力領域位置指示は、０ｘ１Ｃで始まり、行位置、開始列、終了列という４バイトのデータである。クライアント端末２０２は、業務画面データの中から文字入力領域位置指示を検出すると、指示された行位置の開始列から終了列までを文字入力領域に設定する。
【００６３】
図９は、業務画面特徴値の第２の生成例を示す説明図である。クライアント端末２０２は、サーバ２０１から受信した業務画面データから文字データを除いたデータを、業務画面特徴値として生成する。この時、クライアント端末２０２は、業務画面データから文字データを除いた全てのデータを業務画面特徴値としてもよいし、業務画面データから文字データを除いたデータのうちの一部を業務画面特徴値としてもよい。また、クライアント端末２０２は、業務画面データのうちの横罫線描画指示と縦罫線描画指示とを結合したデータを業務画面特徴値としてもよいし、業務画面データのうちの文字入力領域位置指示を業務画面特徴値としてもよい。
【００６４】
まず、クライアント端末２０２は、業務画面データから文字データを除いたデータを生成する。図９の例では、業務画面データ９０１をサーバ２０１から受信したとする。業務画面データ９０１を、図８で説明したフォーマットに従って描画すると、業務画面９０２となる。そして、クライアント端末２０２は、生成したデータの先頭から２４バイトのデータ「１Ａ０１０２４Ｅ１Ａ０Ｂ０２４Ｅ１Ｂ０２０１０Ｂ１Ｂ４Ｅ０１０Ｂ１Ｃ０３０５１０１Ｃ０５０５１０」を業務画面特徴値として生成する。以下の例では、第１の生成例により生成された業務画面特徴値を例にして説明を行う。
【００６５】
図１０は、入力候補テーブル６１１の記憶内容の一例を示す説明図である。図１０に示す入力候補テーブル６１１は、レコード１００１−１〜９を記憶する。
【００６６】
入力候補テーブル６１１は、業務画面特徴値と、カーソル位置と、入力履歴と、入力時間と、入力回数というフィールドを含む。業務画面特徴値フィールドには、業務画面の特徴値が格納される。カーソル位置フィールドには、確定文字列が入力された際のカーソルの座標位置が格納される。入力履歴フィールドには、確定文字列が格納される。入力時間フィールドには、確定文字列が入力された時間が格納される。入力回数フィールドには、確定文字列が入力された回数が格納される。
【００６７】
例えば、レコード１００１−１〜３で特定される業務画面では、まだ入力された入力文字列が無いか、または入力されて確定したとしても確定文字列が正当でなかったことを示す。また、レコード１００１−４は、「０７７０８２８１８２５０９３００６０１０８１０１６０８」という特徴値を有する業務画面についての情報であることを示す。さらに、レコード１００１−４は、業務画面特徴値を有する画面において、カーソル位置が「３：６６」で入力された「２０１３０８０８」という文字列が、２０１３年７月８日１６時８分に初めて入力されたことを示す。
【００６８】
図１１は、入力候補文字列の一例を示す説明図である。例えば、カーソルが枠１１０１にある場合、クライアント端末２０２は、入力候補文字列１１１１を表示する。入力候補文字列１１１１は、半角数字４桁の文字列の集合である。同様に、カーソルが枠１１０２〜１１０５にある場合、クライアント端末２０２は、それぞれ、入力候補文字列１１１２〜１１１５を表示する。入力候補文字列１１１２、１１１３は、半角数字２桁の文字列の集合である。入力候補文字列１１１４、１１１５は、半角数字３桁の文字列の集合である。
【００６９】
入力候補文字列が表示された後、クライアント端末２０２は、入力処理としてＥＮＴＥＲキーが押下されたことを検出して、入力文字列を確定文字列としてサーバ２０１に送信する。サーバ２０１に確定文字列を送信した後、クライアント端末２０２が、サーバ２０１からの応答を利用して確定文字列の正当性を判定する例を、図１２Ａと図１２Ｂとを用いて説明する。
【００７０】
図１２Ａは、確定文字列の正当性を判定する一例を示す説明図（その１）である。また、図１２Ｂは、確定文字列の正当性を判定する一例を示す説明図（その２）である。図１２Ａの例では、確定文字列をサーバ２０１に送信した後、サーバ２０１から応答があり、状態表示領域５０４には「数字のみ入力可能です」という文字列が表示されている。また、図１２Ｂの例では、確定文字列をサーバ２０１に送信した後、サーバ２０１から応答があり、状態表示領域５０４には何も文字が表示されていない。
【００７１】
クライアント端末２０２は、状態表示領域５０４に表示された文字列がエラーメッセージであるか否かにより、確定文字列が正当であるかを判定する。図１２Ａの例では、「数字のみ入力可能です」という文字列がエラーメッセージにあたるため、クライアント端末２０２は、確定文字列が正当でないと判定する。一方、図１２Ｂの例では、状態表示領域５０４には何も文字が表示されていないため、クライアント端末２０２は、確定文字列が正当であると判定する。クライアント端末２０２は、正当であると判定した確定文字列を、入力履歴として入力候補テーブル６１１に格納する。より具体的な格納例については、図２３で示すフローチャートを用いて説明する。
【００７２】
図１３は、入力完了後の画面例を示す説明図である。図１３に示す受注入力画面５０１は、担当者コード、得意先コード、納入先コード、のそれぞれの入力項目と、ＣＯＤＥのＩＤと、ＣＯＤＥに対応する商品名、数量、単価の入力が完了した状態である。
【００７３】
次に、図１４〜図２３を用いて、業務システム２００が行う処理を、フローチャートを用いて説明する。業務システム２００が行う処理は、業務サービスを行う前に行う前処理と、業務サービス中に行う業務処理とがある。前処理として、クライアント端末２０２は、日本語入力ソフトウェアが用いる入力候補データベースを作成する処理と、入力候補テーブル６１１を作成する入力候補テーブル作成処理とを実行する。入力候補データベースを作成する処理については説明を省略する。入力候補テーブル作成処理を、図１４を用いて説明する。また、業務処理と、業務処理から呼ばれる処理群とを、図１５〜図２３を用いて説明する。
【００７４】
図１４は、入力候補テーブル作成処理手順の一例を示すフローチャートである。入力候補テーブル作成処理は、入力候補テーブル６１１を作成する処理である。
【００７５】
クライアント端末２０２は、指定した異常値で入力候補テーブル６１１を作成する（ステップＳ１４０１）。異常値は、例えば、「ＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡ」である。次に、クライアント端末２０２は、入力候補テーブル６１１の内容が指定した異常値か否かを判断する（ステップＳ１４０２）。入力候補テーブル６１１の内容が指定した異常値でない場合（ステップＳ１４０２：Ｎｏ）、クライアント端末２０２は、ステップＳ１４０１の処理に移行する。一方、入力候補テーブル６１１の内容が指定した異常値である場合（ステップＳ１４０２：Ｙｅｓ）、クライアント端末２０２は、入力候補テーブル作成処理を終了する。入力候補テーブル作成処理を実行することにより、クライアント端末２０２は、業務サービスを行う前に、入力候補テーブル６１１を用意しておくことができる。
【００７６】
図１５は、業務処理手順の一例を示すフローチャート（その１）である。また、図１６は、業務処理手順の一例を示すフローチャート（その２）である。また、図１７は、業務処理手順の一例を示すフローチャート（その３）である。業務処理は、業務サービスを実行する処理である。
【００７７】
クライアント端末２０２は、サーバ２０１から業務画面データを受信したか否かを判断する（ステップＳ１５０１）。サーバ２０１から業務画面データを受信していない場合（ステップＳ１５０１：Ｎｏ）、クライアント端末２０２は、ステップＳ１５０１の処理を再び実行する。
【００７８】
一方、サーバ２０１から業務画面データを受信した場合（ステップＳ１５０１：Ｙｅｓ）、クライアント端末２０２は、ディスプレイエミュレータにより、業務画面を表示する（ステップＳ１５０２）。次に、クライアント端末２０２は、業務画面特定処理を実行する（ステップＳ１５０３）。業務画面特定処理は、図１８と、図１９とで後述する。そして、クライアント端末２０２は、キー入力があるか否かを判断する（ステップＳ１５０４）。キー入力がない場合（ステップＳ１５０４：Ｎｏ）、クライアント端末２０２は、再びステップＳ１５０４の処理を実行する。
【００７９】
一方、キー入力がある場合（ステップＳ１５０４：Ｙｅｓ）、クライアント端末２０２は、入力文字列取得処理を実行する（ステップＳ１５０５）。入力文字列取得処理は、図２０で後述する。次に、クライアント端末２０２は、入力候補探索処理を実行する（ステップＳ１５０６）。入力候補探索処理は、図２１で後述する。そして、クライアント端末２０２は、入力候補文字列があるか否かを判断する（ステップＳ１５０７）。
【００８０】
入力候補文字列がない場合（ステップＳ１５０７：Ｎｏ）、クライアント端末２０２は、日本語入力ソフトウェアの入力候補処理を実行する（ステップＳ１６０１）。次に、クライアント端末２０２は、入力処理を実行するか否かを判断する（ステップＳ１６０２）。入力処理を実行しない場合（ステップＳ１６０２：Ｎｏ）、クライアント端末２０２は、再びステップＳ１６０２の処理を実行する。入力処理を実行する場合（ステップＳ１６０２：Ｙｅｓ）、クライアント端末２０２は、日本語入力ソフトウェアによって確定した確定文字列をサーバ２０１へ送信する（ステップＳ１６０３）。ステップＳ１６０３の処理終了後、クライアント端末２０２は、業務処理を終了する。
【００８１】
一方、入力候補文字列がある場合（ステップＳ１５０７：Ｙｅｓ）、クライアント端末２０２は、入力候補文字列を表示する（ステップＳ１７０１）。次に、クライアント端末２０２は、入力処理を実行するか否かを判断する（ステップＳ１７０２）。入力処理を実行しない場合（ステップＳ１７０２：Ｎｏ）、クライアント端末２０２は、再びステップＳ１７０２の処理を実行する。一方、入力処理を実行する場合（ステップＳ１７０２：Ｙｅｓ）、クライアント端末２０２は、入力処理により確定された確定文字列をサーバ２０１へ送信する（ステップＳ１７０３）。
【００８２】
次に、クライアント端末２０２は、サーバ２０１から確定文字列に対応する応答を受信したか否かを判断する（ステップＳ１７０４）。サーバ２０１から確定文字列に対応する応答を受信していない場合（ステップＳ１７０４：Ｎｏ）、クライアント端末２０２は、再びステップＳ１７０４の処理を実行する。
【００８３】
一方、サーバ２０１から確定文字列に対応する応答を受信した場合（ステップＳ１７０４：Ｙｅｓ）、クライアント端末２０２は、確定文字列正当性判定処理を実行する（ステップＳ１７０５）。確定文字列正当性判定処理は、図２２で後述する。次に、クライアント端末２０２は、確定文字列が正当であると判定したか否かを判断する（ステップＳ１７０６）。確定文字列が正当であると判定した場合（ステップＳ１７０６：Ｙｅｓ）、クライアント端末２０２は、確定文字列格納処理を実行する（ステップＳ１７０７）。確定文字列格納処理は、図２３で後述する。
【００８４】
ステップＳ１７０７の処理終了後、または、確定文字列が正当でないと判定した場合（ステップＳ１７０６：Ｎｏ）、クライアント端末２０２は、業務処理を終了する。業務処理を実行することにより、クライアント端末２０２は、サーバ２０１が提供する業務サービスを利用することができる。
【００８５】
図１８は、業務画面特定処理手順の一例を示すフローチャート（その１）である。また、図１９は、業務画面特定処理手順の一例を示すフローチャート（その２）である。業務画面特定処理は、業務画面を特定する処理である。
【００８６】
クライアント端末２０２は、現在の業務画面データに対する業務画面特徴値をＮＵＬＬに設定する（ステップＳ１８０１）。次に、クライアント端末２０２は、ａを０に設定する（ステップＳ１８０２）。また、クライアント端末２０２は、ｓｕｍを０に設定する（ステップＳ１８０３）。次に、クライアント端末２０２は、現在の業務画面データのａ行目の各カーソル位置に対応して、特徴値を「０」か「１」に設定する（ステップＳ１８０４）。そして、クライアント端末２０２は、ｂを０に設定する（ステップＳ１８０５）。
【００８７】
次に、クライアント端末２０２は、ａ行目のｂ番目のカーソル位置に対応する特徴値が「１」か否かを判断する（ステップＳ１８０６）。ａ行目のｂ番目のカーソル位置に対応する特徴値が「１」である場合（ステップＳ１８０６：Ｙｅｓ）、クライアント端末２０２は、ｓｕｍをインクリメントする（ステップＳ１８０７）。
【００８８】
ステップＳ１８０７の処理終了後、または、ａ行目のｂ番目のカーソル位置に対応する特徴値が「０」である場合（ステップＳ１８０６：Ｎｏ）、クライアント端末２０２は、ｂをインクリメントする（ステップＳ１８０８）。次に、クライアント端末２０２は、ｂが４０より小さいか否かを判断する（ステップＳ１８０９）。ｂが４０より小さい場合（ステップＳ１８０９：Ｙｅｓ）、クライアント端末２０２は、ステップＳ１８０６の処理に移行する。
【００８９】
一方、ｂが４０以上である場合（ステップＳ１８０９：Ｎｏ）、クライアント端末２０２は、業務画面特徴値に、ｓｕｍが示す文字列を結合する（ステップＳ１９０１）。次に、クライアント端末２０２は、ａをインクリメントする（ステップＳ１９０２）。そして、クライアント端末２０２は、ａが１２より小さいか否かを判断する（ステップＳ１９０３）。ａが１２より小さい場合（ステップＳ１９０３：Ｙｅｓ）、クライアント端末２０２は、ステップＳ１８０３の処理に移行する。
【００９０】
一方、ａが１２以上である場合（ステップＳ１９０３：Ｎｏ）、クライアント端末２０２は、特定した業務画面特徴値と同じ値が、入力候補テーブル６１１に登録されているか否かを判断する（ステップＳ１９０４）。入力候補テーブル６１１に登録されていない場合（ステップＳ１９０４：Ｎｏ）、クライアント端末２０２は、入力候補テーブル６１１に、特定した業務画面特徴値を含むレコードを追加する（ステップＳ１９０５）。
【００９１】
ステップＳ１９０５の処理終了後、または、入力候補テーブル６１１に登録されている場合（ステップＳ１９０４：Ｙｅｓ）、クライアント端末２０２は、業務画面特定処理を終了する。業務画面特定処理を実行することにより、クライアント端末２０２は、業務画面を特定することができる。
【００９２】
図２０は、入力文字列取得処理手順の一例を示すフローチャートである。入力文字列取得処理は、入力文字列を取得する処理である。クライアント端末２０２は、入力処理を実行するか否かを判断する（ステップＳ２００１）。入力処理を実行しない場合（ステップＳ２００１：Ｎｏ）、クライアント端末２０２は、再びステップＳ２００１の処理を実行する。
【００９３】
一方、入力処理を実行する場合（ステップＳ２００１：Ｙｅｓ）、クライアント端末２０２は、現在のカーソル位置を取得する（ステップＳ２００２）。次に、クライアント端末２０２は、現在のカーソル位置を取得できたか否かを判断する（ステップＳ２００３）。現在のカーソル位置を取得できていない場合（ステップＳ２００３：Ｎｏ）、クライアント端末２０２は、ステップＳ２００２の処理に移行する。
【００９４】
一方、現在のカーソル位置を取得できた場合（ステップＳ２００３：Ｙｅｓ）、クライアント端末２０２は、入力された入力文字列を取得する（ステップＳ２００４）。次に、クライアント端末２０２は、入力文字列を取得できたか否かを判断する（ステップＳ２００５）。入力文字列を取得できていない場合（ステップＳ２００５：Ｎｏ）、クライアント端末２０２は、ステップＳ２００４の処理に移行する。
【００９５】
一方、入力文字列を取得できた場合（ステップＳ２００５：Ｙｅｓ）、クライアント端末２０２は、入力処理を実行するか否かを判断する（ステップＳ２００６）。入力処理を実行しない場合（ステップＳ２００６：Ｎｏ）、クライアント端末２０２は、ステップＳ２００１の処理に移行する。一方、入力処理を実行する場合（ステップＳ２００６：Ｙｅｓ）、クライアント端末２０２は、入力文字列取得処理を終了する。入力文字列取得処理を実行することにより、クライアント端末２０２は、入力文字列を取得することができる。
【００９６】
図２１は、入力候補探索処理手順の一例を示すフローチャートである。入力候補探索処理は、入力文字列に関連する入力候補文字列を探索する処理である。
【００９７】
クライアント端末２０２は、入力候補テーブル６１１に、特定した業務画面特徴値と同一であり、かつ、現在のカーソル位置と同一であり、入力文字列と入力履歴の先頭部分が一致するレコードがあるか否かを判断する（ステップＳ２１０１）。ステップＳ２１０１の処理において、例えば、クライアント端末２０２は、下記ＳＱＬコードを発行することにより、ステップＳ２１０１の処理を実行する。
【００９８】
ＳＥＬＥＣＴ  入力候補テーブル６１１．入力履歴  ＦＲＯＭ  入力候補テーブル６１１  ＷＨＥＲＥ  入力候補テーブル６１１．業務画面特徴値＝特定した業務画面特徴値  ＡＮＤ  入力候補テーブル６１１．カーソル位置＝現在のカーソル位置  ＡＮＤ  入力候補テーブル６１１．入力履歴  ＬＩＫＥ  “入力文字列％”
【００９９】
ここで、上記ＳＱＬ文における「％」は、１文字以上のいずれかの文字列を示す識別子である。
【０１００】
入力文字列と入力履歴の先頭部分が一致するレコードがある場合（ステップＳ２１０１：Ｙｅｓ）、クライアント端末２０２は、検出したレコードの入力履歴を、入力候補文字列として特定する（ステップＳ２１０２）。また、一致するレコードが複数ある場合、クライアント端末２０２は、ステップＳ２１０１で検出した順番で各レコードの入力履歴を表示してもよい。
【０１０１】
ステップＳ２１０２の処理終了後、または、入力文字列と入力履歴の先頭部分が一致するレコードがない場合（ステップＳ２１０１：Ｎｏ）、クライアント端末２０２は、入力候補探索処理を終了する。入力候補探索処理を実行することにより、クライアント端末２０２は、入力文字列に関連する入力候補文字列を検出することができる。
【０１０２】
また、ステップＳ２１０１の処理において、クライアント端末２０２は、入力候補テーブル６１１の入力時間フィールドや、入力回数フィールドを用いてもよい。
【０１０３】
例えば、入力時間フィールドを用いる例として、クライアント端末２０２は、ステップＳ２１０１の処理において、複数のレコードを検出した場合、現在の入力時間と類似する入力時間を有するレコードを優先的に表示してもよい。また、入力回数フィールドを用いる例として、クライアント端末２０２は、ステップＳ２１０１の処理において、複数のレコードを検出した場合、入力回数が多いレコードを優先的に表示してもよい。ここで、優先的に表示するとは、クライアント端末２０２の利用者にとって選択しやすい位置で表示することである。例えば、クライアント端末２０２は、現在の入力時間と類似する入力時間を有するレコードを、先頭に表示することで、優先的に表示してもよい。
【０１０４】
例えば、入力時間フィールドを用いる例として、クライアント端末２０２は、検出した複数のレコードのうち、現在の入力時間と同月のレコードや同四半期のレコードを優先的に表示する。
【０１０５】
図２２は、確定文字列正当判定処理手順の一例を示すフローチャートである。確定文字列正当判定処理は、確定文字列が正当であるか否かを判定する処理である。
【０１０６】
クライアント端末２０２は、業務画面の状態表示領域を監視する（ステップＳ２２０１）。次に、クライアント端末２０２は、業務画面の状態表示領域にエラーメッセージが表示されたか否かを判断する（ステップＳ２２０２）。業務画面の状態表示領域にエラーメッセージが表示されていない場合（ステップＳ２２０２：Ｎｏ）、クライアント端末２０２は、確定文字列のカーソル位置を取得したか否かを判断する（ステップＳ２２０３）。確定文字列のカーソル位置を取得した場合（ステップＳ２２０３：Ｙｅｓ）、クライアント端末２０２は、確定文字列が入力された入力時間を取得したか否かを判断する（ステップＳ２２０４）。
【０１０７】
確定文字列のカーソル位置を取得していない場合（ステップＳ２２０３：Ｎｏ）、または、確定文字列が入力された入力時間を取得していない場合（ステップＳ２２０４：Ｎｏ）、クライアント端末２０２は、ステップＳ２２０３の処理に移行する。ステップＳ２２０３：Ｎｏ、ステップＳ２２０４：Ｎｏとなる場合として、例えば、確定文字列正当判定処理を実行するスレッドが、ディスプレイエミュレータに、確定文字列のカーソル位置や確定文字列が入力された入力時間を問い合わせて応答がない場合である。応答がない場合、確定文字列正当判定処理を実行するスレッドは、一定時間経過後に再び問い合わせる。
【０１０８】
確定文字列が入力された入力時間を取得した場合（ステップＳ２２０４：Ｙｅｓ）、クライアント端末２０２は、確定文字列を正当なデータとして判定する（ステップＳ２２０５）。一方、業務画面の状態表示領域にエラーメッセージが表示された場合（ステップＳ２２０２：Ｙｅｓ）、クライアント端末２０２は、確定文字列を正当でないデータとして判定する（ステップＳ２２０６）。ステップＳ２２０５、または、ステップＳ２２０６の処理終了後、クライアント端末２０２は、確定文字列正当判定処理を終了する。確定文字列正当判定処理を実行することにより、クライアント端末２０２は、確定文字列が正当であるか否かを判定することができる。
【０１０９】
図２３は、確定文字列格納処理手順の一例を示すフローチャートである。確定文字列格納処理は、確定文字列を入力候補テーブル６１１に格納する処理である。
【０１１０】
クライアント端末２０２は、入力候補テーブル６１１のうちの特定した業務画面特徴値を有するレコードが、入力履歴を有するか否かを判断する（ステップＳ２３０１）。ステップＳ２３０１の処理において、例えば、クライアント端末２０２は、下記ＳＱＬコードを発行することにより、ステップＳ２３０１の処理を実行する。
【０１１１】
ＳＥＬＥＣＴ  入力候補テーブル６１１．入力履歴  ＦＲＯＭ  入力候補テーブル６１１  ＷＨＥＲＥ  入力候補テーブル６１１．業務画面特徴値＝特定した業務画面特徴値
【０１１２】
入力履歴を有する場合（ステップＳ２３０１：Ｙｅｓ）、クライアント端末２０２は、続けて、入力候補テーブル６１１に、特定した業務画面特徴値と同一であり、かつ、現在のカーソル位置と同一であり、確定文字列が一致するレコードがあるか否かを判断する（ステップＳ２３０２）。ステップＳ２３０２の処理において、例えば、クライアント端末２０２は、下記ＳＱＬコードを発行することにより、ステップＳ２３０２の処理を実行する。
【０１１３】
ＳＥＬＥＣＴ  入力候補テーブル６１１．入力履歴  ＦＲＯＭ  入力候補テーブル６１１  ＷＨＥＲＥ  入力候補テーブル６１１．業務画面特徴値＝特定した業務画面特徴値  ＡＮＤ  入力候補テーブル６１１．カーソル位置＝現カーソル位置  ＡＮＤ  入力候補テーブル６１１．入力履歴＝確定文字列
【０１１４】
確定文字列が一致するレコードがない場合（ステップＳ２３０２：Ｎｏ）、クライアント端末２０２は、入力候補テーブル６１１に、特定した業務画面特徴値と、現在のカーソル位置と、確定文字列と、入力時間と、を含むレコードを追加する（ステップＳ２３０３）。
【０１１５】
一方、入力文字列が一致するレコードがある場合（ステップＳ２３０２：Ｙｅｓ）、クライアント端末２０２は、確定文字列が入力された入力時間で、検出したレコードの入力時間を更新する（ステップＳ２３０４）。次に、クライアント端末２０２は、検出したレコードの入力回数をインクリメントする（ステップＳ２３０５）。
【０１１６】
入力履歴を有さない場合（ステップＳ２３０１：Ｎｏ）、クライアント端末２０２は、入力候補テーブル６１１のうちの特定した業務画面特徴値を有するレコードに、現在のカーソル位置と、確定文字列と、入力時間と、を書き込む（ステップＳ２３０６）。
【０１１７】
ステップＳ２３０３、ステップＳ２３０５、ステップＳ２３０６のいずれかの処理終了後、クライアント端末２０２は、確定文字列格納処理を終了する。確定文字列格納処理を実行することにより、クライアント端末２０２は、確定文字列を入力候補テーブル６１１に格納することができる。
【０１１８】
以上説明したように、クライアント端末２０２によれば、画面上で入力が確定した文字列と文字列が入力された座標位置とを対応付けた入力候補テーブル６１１から、画面上における操作位置に対応する文字列を探索する。これにより、クライアント端末２０２は、画面上における操作位置下にある文字入力領域の入力履歴を提示できて、利用者の文字入力操作を支援することができる。例えば、クライアント端末２０２の利用者は、表示された入力候補文字列を選択することにより、利用者による文字入力にかかる操作量を削減することができる。また、例えば、クライアント端末２０２の利用者は、表示された入力候補文字列を閲覧することにより、文字入力領域に入力する文字列の手掛かりとして、該当の文字入力領域に入力された文字列の一例を知ることができる。
【０１１９】
また、クライアント端末２０２によれば、入力文字列が正当であると判定した場合、入力文字列が示す文字列と入力文字列が入力された業務画面における座標位置とを対応付けて入力候補テーブル６１１に登録してもよい。これにより、入力候補テーブル６１１には、業務画面に対して正当な文字列が格納され、業務画面に対して誤った文字列が格納されないため、クライアント端末２０２は、文字列の補完精度を高めることができる。
【０１２０】
また、クライアント端末２０２によれば、業務画面に関する情報に基づいて、業務画面特徴値を生成し、入力候補テーブル６１１から、生成した業務画面特徴値と操作位置とに対応する文字列を探索してもよい。これにより、特徴値が類似する業務画面であれば、利用者が入力しようとする入力文字列も類似する可能性が高いため、利用者が初めて入力する業務画面であっても、特徴値が類似する業務画面があれば、クライアント端末２０２は、入力補完を行うことができる。
【０１２１】
また、クライアント端末２０２によれば、業務画面の画素値に基づいて、業務画面を分割した分割領域に対応して、分割領域の特徴値を決定し、決定した分割領域の特徴値に基づいて、業務画面特徴値を生成してもよい。これにより、クライアント端末２０２は、サーバ２０１からの業務画面の画面データが暗号化されており、画面データが取得できない場合であっても、業務画面の特徴値を生成することができる。
【０１２２】
また、クライアント端末２０２によれば、業務画面における罫線の座標位置、または業務画面における文字入力領域の座標位置に基づいて、業務画面特徴値を生成してもよい。業務画面における罫線の座標位置や業務画面における文字入力領域の座標位置は、サーバ２０１からの業務画面の画面データから抽出するだけで得ることができる。従って、クライアント端末２０２は、業務画面の画素値から業務画面特徴値を生成するよりも少ない処理量で、業務画面特徴値を生成することができる。
【０１２３】
また、クライアント端末２０２によれば、入力候補テーブル６１１から、業務画面上で入力中の入力文字列のうちのいずれかの文字が入力された業務画面における座標位置に対応する文字列を探索してもよい。これにより、クライアント端末２０２は、いずれかの文字が入力された際に限り、入力候補テーブル６１１を探索すればよく、キーボード４０８やマウス４０９から入力の都度入力候補テーブル６１１を探索することに比べて、入力補完にかかる負荷量を削減できる。
【０１２４】
また、クライアント端末２０２によれば、入力候補テーブル６１１から、業務画面上で入力中のいずれかの文字といずれかの文字が入力された業務画面における座標位置とに対応する文字列を探索してもよい。これにより、クライアント端末２０２は、予め登録された文字列から、いずれかの文字に対応する文字列を探索することに比べて、より入力候補文字列を絞り込むことができて、文字列の補完精度を高めることができる。
【０１２５】
また、業務システム２００によれば、操作位置をサーバ２０１に送信して、入力候補テーブル６１１からの操作位置に対応する文字列の探索結果をサーバ２０１から受信することにより、操作位置に対応する文字列を探索してもよい。これにより、業務システム２００は、ある利用者が文字入力を行う際に、他の利用者によって入力が確定した文字列を用いて入力候補とすることができる場合があるため、文字列の補完精度を高めることができる。
【０１２６】
また、クライアント端末２０２は、入力補完を有さないディスプレイエミュレータに、入力補完を導入することができる。また、クライアント端末２０２は、使用場面および入力位置ごとに最適な候補を表示することができる。また、クライアント端末２０２は、最適な候補を表示することにより、クライアント端末２０２の利用者によるキー入力回数を削減することができる。また、クライアント端末２０２は、最適な候補を表示することにより、クライアント端末２０２の利用者による入力ミスの発生を削減することができる。
【０１２７】
また、業務システム２００は、サーバ２０１上で動作する業務プログラムを変更せずに、入力補完を導入することができる。また、業務システム２００は、複数のクライアント端末２０２がある場合、複数のクライアント端末２０２全てに入力補完を導入してもよいし、複数のクライアント端末２０２の一部に入力補完を導入してもよい。
【０１２８】
複数のクライアント端末２０２の一部に入力補完を導入する例として、例えば、複数のクライアント端末２０２のうち不特定多数の利用者が利用するクライアント端末２０２には、入力補完を導入しない、ということを行ってもよい。これにより、業務システム２００は、入力補完により表示される入力候補文字列が不特定多数に閲覧されることを抑止するとともに、入力補完を導入した一部のクライアント端末２０２では入力補完を行うことができる。
【０１２９】
なお、本実施の形態で説明した入力支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本入力支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本入力支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１３０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３１】
（付記１）所定の画面上での入力が確定した文字列と前記文字列が入力された前記所定の画面における座標位置とを対応付けたテーブルから、前記所定の画面上での入力に関する操作位置に対応する文字列を探索し、
探索した前記文字列を出力する、
制御部を有することを特徴とする入力支援装置。
【０１３２】
（付記２）前記制御部は、
前記所定の画面上で文字列の入力が確定した場合、前記文字列が正当であるか否かを示す情報を取得し、
取得した前記情報に基づいて前記文字列が正当であると判定した場合、前記文字列と前記文字列が入力された前記所定の画面における座標位置とを対応付けて前記テーブルに登録することを特徴とする付記１に記載の入力支援装置。
【０１３３】
（付記３）前記テーブルは、画面を特徴付ける値と、前記画面上での入力が確定した文字列と、前記文字列が入力された前記画面における座標位置とを対応付けて記憶しており、
前記制御部は、
前記所定の画面の画面情報に基づいて、前記所定の画面を特徴付ける値を生成し、
前記テーブルから、生成した前記所定の画面を特徴付ける値と前記操作位置とに対応する文字列を探索することを特徴とする付記１または２に記載の入力支援装置。
【０１３４】
（付記４）前記制御部は、
前記所定の画面の各画素の値に基づいて、前記所定の画面を分割した分割領域に対応して、前記分割領域を特徴付ける値を決定し、
決定した前記分割領域を特徴付ける値に基づいて、前記所定の画面を特徴付ける値を生成することを特徴とする付記３に記載の入力支援装置。
【０１３５】
（付記５）前記制御部は、
前記所定の画面における罫線の座標位置、または前記所定の画面における文字入力領域の座標位置に基づいて、前記所定の画面を特徴付ける値を生成することを特徴とする付記３に記載の入力支援装置。
【０１３６】
（付記６）前記操作位置は、
前記所定の画面上で入力中の入力文字列のうちのいずれかの文字が入力された前記所定の画面における座標位置であることを特徴とする付記１〜５のいずれか一つに記載の入力支援装置。
【０１３７】
（付記７）前記制御部は、
前記テーブルから、前記いずれかの文字と前記いずれかの文字が入力された前記所定の画面における座標位置とに対応する文字列を探索することを特徴とする付記６に記載の入力支援装置。
【０１３８】
（付記８）前記操作位置は、
前記所定の画面上におけるカーソルの位置、または前記所定の画面上におけるフォーカスの位置であることを特徴とする付記１〜５のいずれか一つに記載の入力支援装置。
【０１３９】
（付記９）入力支援装置と、所定の画面の画面情報を前記入力支援装置に送信する情報処理装置とが接続される入力支援システムにおいて、
前記入力支援装置は、
前記情報処理装置から受信した前記画面情報から形成した前記所定の画面上での入力が確定した文字列と前記文字列が入力された前記所定の画面における座標位置とを対応付けたテーブルから、前記所定の画面上での入力に関する操作位置に対応する文字列を探索し、
探索した前記文字列を出力する、
ことを特徴とする入力支援システム。
【０１４０】
（付記１０）前記入力支援装置は、
前記操作位置を前記情報処理装置に送信して前記テーブルからの前記操作位置に対応する文字列の探索結果を前記情報処理装置から受信することにより、前記操作位置に対応する文字列を探索することを特徴とする付記９に記載の入力支援システム。
【０１４１】
（付記１１）コンピュータが、
所定の画面上での入力が確定した文字列と前記文字列が入力された前記所定の画面における座標位置とを対応付けたテーブルから、前記所定の画面上での入力に関する操作位置に対応する文字列を探索し、
探索した前記文字列を出力する、
処理を実行することを特徴とする入力支援方法。
【０１４２】
（付記１２）コンピュータに、
所定の画面上での入力が確定した文字列と前記文字列が入力された前記所定の画面における座標位置とを対応付けたテーブルから、前記所定の画面上での入力に関する操作位置に対応する文字列を探索し、
探索した前記文字列を出力する、
処理を実行させることを特徴とする入力支援プログラム。
【符号の説明】
【０１４３】
１０１  入力支援装置
１１１  画面
１１２、６１１  入力候補テーブル
２００  業務システム
２０１  サーバ
２０２  クライアント端末
６０１  決定部
６０２  生成部
６０３  探索部
６０４  出力部
６０５  取得部
６０６  登録部
【図１】
0006337661.tif 000002
【図２】
0006337661.tif 000003
【図３】
0006337661.tif 000004
【図４】
0006337661.tif 000005
【図５】
0006337661.tif 000006
【図６】
0006337661.tif 000007
【図７Ａ】
0006337661.tif 000008
【図７Ｂ】
0006337661.tif 000009
【図８】
0006337661.tif 000010
【図９】
0006337661.tif 000011
【図１０】
0006337661.tif 000012
【図１１】
0006337661.tif 000013
【図１２Ａ】
0006337661.tif 000014
【図１２Ｂ】
0006337661.tif 000015
【図１３】
0006337661.tif 000016
【図１４】
0006337661.tif 000017
【図１５】
0006337661.tif 000018
【図１６】
0006337661.tif 000019
【図１７】
0006337661.tif 000020
【図１８】
0006337661.tif 000021
【図１９】
0006337661.tif 000022
【図２０】
0006337661.tif 000023
【図２１】
0006337661.tif 000024
【図２２】
0006337661.tif 000025
【図２３】
0006337661.tif 000026