(57)【要約】【課題】ユーザの利便性を高めた画像形成装置を提供することである。【解決手段】画像形成装置において、任意の機能の複数のアプリケーションのそれぞれを実行する実行手段と、前記複数のアプリケーションのいずれかで入力された検索条件を受け付ける受付手段と、前記受付手段で受け付けた検索条件に従って検索を実行する検索手段と、前記検索手段が実行した検索の検索条件を検索履歴として記録する記録手段と、前記記録手段に記録された前記検索履歴を前記複数のアプリケーションのうちの任意のアプリケーションで復元する第１復元手段と、を有することを特徴とする。【選択図】  図８
2020178215.tif 000002
【特許請求の範囲】
【請求項１】
任意の機能の複数のアプリケーションのそれぞれを実行する実行手段と、
前記複数のアプリケーションのいずれかで入力された検索条件を受け付ける受付手段と、
前記受付手段で受け付けた検索条件に従って検索を実行する検索手段と、
前記検索手段が実行した検索の検索条件を検索履歴として記録する記録手段と、
前記記録手段に記録された前記検索履歴を前記複数のアプリケーションのうちの任意のアプリケーションで復元する第１復元手段と、
を有することを特徴とする画像形成装置。
【請求項２】
前記第１復元手段は、前記記録手段に記録された前記検索履歴のうち復元する検索履歴を選択する第１選択画面を表示する、
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記検索履歴は、検索を実施するフォルダを示す情報であるフォルダ情報を含み、
前記第１復元手段は、前記フォルダ情報を復元するか否かを判断する第１判断手段を有し、
前記第１復元手段は、
前記第１判断手段が前記フォルダ情報を復元すると判断した場合は、前記フォルダ情報が示すフォルダで検索するように前記検索履歴の復元を行い、
前記第１判断手段が前記フォルダ情報を復元しないと判断した場合は、現在のフォルダで検索するように、前記フォルダ情報を除いた前記検索履歴の復元を行う、
ことを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記複数のアプリケーションのそれぞれについて検索可能であるか否かを登録可能な登録手段をさらに有し、
前記第１復元手段は、前記登録手段に検索可能と登録されたアプリケーションの前記検索履歴を復元の対象とする、
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
前記登録手段は、前記複数のアプリケーションのうち権限を有するアプリケーションを登録の対象とする、
ことを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記検索履歴の復元時に検索を実行するか否かを判断する第２判断手段をさらに有し、
前記検索手段は、前記第２判断手段が検索を実行すると判断した場合は、前記第１復元手段が復元した前記検索履歴を検索条件として検索を実行する、
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像形成装置。
【請求項７】
前記記録手段は、前記検索手段が前記検索履歴の復元時に検索を行ったときに、前記検索履歴を上書きするか否かを判断し、前記検索履歴を上書きすると判断した場合は前記検索履歴を上書きし、前記検索履歴を上書きしないと判断した場合は前記検索履歴を新規に記録する、
ことを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記検索履歴の復元時に、前記フォルダ情報が示すフォルダにアクセスできないときに警告を表示する表示手段をさらに有する、
ことを特徴とする請求項３に記載の画像形成装置。
【請求項９】
前記第１復元手段は、前記検索履歴の復元時に、前記フォルダ情報が示すフォルダにアクセスできないときに、現在のフォルダで前記フォルダ情報以外の前記検索履歴を復元する、
ことを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
前記複数のアプリケーションの実行の履歴であるアプリケーション履歴を保存する第１保存手段と、
前記第１保存手段に保存された前記アプリケーション履歴を復元する第２復元手段と、
をさらに有し、
前記アプリケーション履歴は、当該アプリケーションを実行したときの前記検索手段による検索の検索条件を含み、
前記第２復元手段は、前記保存された前記アプリケーション履歴に含まれる前記検索条件を復元する、
ことを特徴とする請求項１乃至９のいずれか１項に記載の画像形成装置。
【請求項１１】
前記第２復元手段は、前記検索条件を復元するアプリケーションを選択する第２選択画面を表示する、
ことを特徴とする請求項１０に記載の画像形成装置。
【請求項１２】
前記第２選択画面は、復元する前記検索条件を保存時に実行したアプリケーションを、他のアプリケーションと判別可能に表示する、
ことを特徴とする請求項１１に記載の画像形成装置。
【請求項１３】
前記検索手段で検索した検索結果を保存する第２保存手段をさらに有し、
前記記録手段は、前記第２保存手段に保存された検索結果に紐づけて前記検索履歴を記録し、
前記第１復元手段は、前記検索履歴の復元時に、前記検索履歴に紐づけられた検索結果を表示する、
ことを特徴とする請求項１乃至１２のいずれか１項に記載の画像形成装置。
【請求項１４】
前記第２保存手段は、検索実行日時を保存し、
前記第１復元手段は、検索実行日時が現在日時から一定期間以上前の検索結果は表示しない、
ことを特徴とする請求項１３に記載の画像形成装置。
【請求項１５】
前記記録手段は、前記検索履歴をユーザ毎に記録する、
ことを特徴とする請求項１乃至１４のいずれか１項に記載の画像形成装置。
【請求項１６】
任意の機能の複数のアプリケーションのそれぞれを実行する実行工程と、
前記複数のアプリケーションのいずれかで入力された検索条件を受け付ける受付工程と、
前記受付工程で受け付けた検索条件に従って検索を実行する検索工程と、
前記検索工程が実行した検索の検索条件を検索履歴として記録する記録工程と、
前記記録工程に記録された前記検索履歴を前記複数のアプリケーションのうちの任意のアプリケーションで復元する第１復元工程と、
を有することを特徴とする画像形成装置の制御方法。
【請求項１７】
コンピュータを請求項１乃至１５のいずれか１項に記載の画像形成装置が備える各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成装置の制御方法、及びプログラムに関し、特に検索機能を備えた画像形成装置に関するものである。
【背景技術】
【０００２】
近年、画像形成装置は様々な機能を備え、画像形成装置内にＨＤＤなど大容量ストレージを持ち、ストレージ内にスキャンした文書を保存したり、あるいは、保存された文書をストレージから読み出してプリントしたりすることが可能になっている。また、画像形成装置内部のストレージだけでなく、ネットワーク上の外部のファイルサーバや、画像形成装置に接続したメモリメディアに対して、文書を保存したり、プリントしたりすることが行われている。
大容量のストレージに格納された大量のファイル、フォルダから所望のものに辿り着くためには、ユーザが深い階層のフォルダの構成を覚えて、それを画像形成装置のパネルを操作して、フォルダを辿る必要があり、ユーザにとっては手間となる。
また、フォルダ階層を正確に覚えておかないと、所望のファイル、フォルダに辿り着くことができない。そこで、画像形成装置のストレージを利用するアプリケーションで、検索機能を持つものがある。これにより、ユーザは、所望のファイル、フォルダの保管場所を正確に覚えておく必要がなく、また、深い階層を辿る必要がなくなる。
【０００３】
また、検索を利用するものとして、ユーザ毎に検索対象の階層と、検索条件を記憶し、ユーザと階層が合致したときに、キーワードの履歴を提示するものがある（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−９８７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、先行技術においては、検索条件をフォルダ単位で記憶するだけであり、複数のアプリケーション間で検索履歴を共有することができず、また異なるフォルダで別のフォルダの検索条件を利用できない。例えば、スキャンを実行するアプリケーションで、所望の格納先のフォルダを検索して、文書をストレージに保存する。その後、印刷を実行するアプリケーションで、当該文書の印刷を行う場合、当該文書に辿り着くためにスキャン時に利用したフォルダを思い出して、フォルダ階層を辿るか、再度、同じ検索を実行する必要がある。
画像形成装置のようなデバイスの小さい画面では、複数のアプリケーション間でコピー＆ペーストを行うことが難しい。また、文書をスキャンして保存したあと、時間が経ってからその文書を印刷するなど、時間が空くケースもあり、以前に保存した文書のパスを忘れることがある。このように従来の画像形成装置にはユーザの利便性の向上において改善の余地があった。
本発明は、ユーザの利便性を高めた画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態の画像形成装置は、任意の機能の複数のアプリケーションのそれぞれを実行する実行手段と、前記複数のアプリケーションのいずれかで入力された検索条件を受け付ける受付手段と、前記受付手段で受け付けた検索条件に従って検索を実行する検索手段と、前記検索手段が実行した検索の検索条件を検索履歴として記録する記録手段と、前記記録手段に記録された前記検索履歴を前記複数のアプリケーションのうちの任意のアプリケーションで復元する第１復元手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ユーザの利便性を高めた画像形成装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第一の実施形態に係るＭＦＰ１０１のコントローラユニットを示す図である。
【図２】本発明の第一の実施形態に係るＭＦＰ１０１のプログラム構成を示す図である。
【図３】本発明の第一の実施形態に係るメインメニュー画面の画面例である。
【図４Ａ】本発明の第一の実施形態に係る「スキャンして保存」アプリケーションの保存先選択画面例である。
【図４Ｂ】本発明の第一の実施形態に係る「スキャンして保存」アプリケーションの検索画面例である。
【図４Ｃ】本発明の第一の実施形態に係る「スキャンして保存」アプリケーションの検索結果画面例である。
【図５】本発明の第一の実施形態に係るアプリ情報テーブルの一例である。
【図６Ａ】本発明の第一の実施形態に係る検索履歴テーブルの一例である。
【図６Ｂ】本発明の第一の実施形態に係る更新後の検索履歴テーブルの一例である。
【図７Ａ】本発明の第一の実施形態に係る検索履歴の画面例である。
【図７Ｂ】本発明の第一の実施形態に係る検索パスを復元しない検索履歴復元後の画面例である。
【図７Ｃ】本発明の第一の実施形態に係る検索パスを復元する検索履歴復元後の画面例である。
【図７Ｄ】本発明の第一の実施形態に係る検索パスにアクセスできないときの画面例である。
【図８】本発明の第一の実施形態に係る検索履歴の登録処理についてのフローチャートである。
【図９】本発明の第一の実施形態に係る検索履歴の表示処理についてのフローチャートである。
【図１０】本発明の第一の実施形態に係る検索履歴の復元処理についてのフローチャートである。
【図１１Ａ】本発明の第二の実施形態に係るタイムラインの画面例である。
【図１１Ｂ】本発明の第二の実施形態に係る検索履歴を復元するアプリケーション選択画面例である。
【図１２】本発明の第二の実施形態に係るタイムラインテーブルの一例である。
【図１３】本発明の第二の実施形態に係るタイムラインへの検索履歴の登録処理についてのフローチャートである。
【図１４】本発明の第二の実施形態に係るタイムラインでの検索履歴の表示処理についてのフローチャートである。
【図１５Ａ】本発明の第三の実施形態に係る検索結果テーブルの一例である。
【図１５Ｂ】本発明の第三の実施形態に係る検索結果ファイルの一例である。
【図１６】本発明の第三の実施形態に係る検索履歴テーブルの一例である。
【図１７】本発明の第三の実施形態に係る確認ダイアログの画面例である。
【図１８Ａ】本発明の第三の実施形態に係る検索結果の登録処理についてのフローチャートである。
【図１８Ｂ】本発明の第三の実施形態に係る検索結果の登録処理についてのフローチャートである。
【図１９Ａ】本発明の第三の実施形態に係る検索結果の復元処理の登録処理についてのフローチャートである。
【図１９Ｂ】本発明の第三の実施形態に係る検索結果の復元処理の登録処理についてのフローチャートである。
【図２０】本発明の第三の実施形態に係る検索履歴の上書設定の画面例である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１０】
＜第一の実施形態＞
図１は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１０１のハードウェア構成の一例を示す図である。図１は、本発明の第一の実施形態における説明のための一例を示したものであり、他の構成要素を含んだり、あるいは、本実施形態と同様の効果のある構成であったりしても構わないことは言うまでもない。
【００１１】
システムバス１１０に対してＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、入力制御Ｉ／Ｆ１１４、表示制御Ｉ／Ｆ１１５、記憶装置Ｉ／Ｆ１１６、及び通信Ｉ／Ｆコントローラ１１７が接続されている。また、システムバス１１０に対しては、スキャナ１２１やプリンタ１２２も接続されている。システムバス１１０に接続される各部は、システムバス１１０を介して互いにデータのやり取りを行うことができるように構成されている。
【００１２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１１は、各装置の制御やデータの計算・加工を行う装置である。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１２は、揮発性のメモリであり、ＣＰＵ１１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１３は、不揮発性のメモリであり、画像データやその他のデータ、ＣＰＵ１１１が動作するための各種プログラム等が、それぞれ所定の領域に格納されている。ＣＰＵ１１１は、例えばＲＯＭ１１３に格納されるプログラムに従い、ＲＡＭ１１２をワークメモリとして用いて、ＭＦＰ１０１の各部を制御する。尚、ＣＰＵ１１１が動作するためのプログラムは、ＲＯＭ１１３に格納されるのに限られず、記憶装置１２０に記憶されていてもよい。
【００１３】
入力制御Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１１４は、ユーザ操作を受け付け、操作に応じた制御信号を生成し、ＣＰＵ１１１に供給する。例えば、入力制御Ｉ／Ｆ１１４は、ユーザ操作を受け付ける入力デバイスとして、不図示であるキーボードといった文字情報入力デバイスや数値などを直接入力するためのハードキー、あるいはタッチパネル１１８といったポインティングデバイス等と接続される。なお、タッチパネル１１８は、例えば平面的に構成された入力部に対して接触された位置に応じた座標情報が出力されるように構成された入力デバイスである。以下、本実施形態においては、タッチパネルでの操作で説明しているが、本発明はそれに限定されないことは言うまでもない。ＣＰＵ１１１は、入力デバイスに対してなされたユーザ操作に応じて入力制御Ｉ／Ｆ１１４で生成され供給される制御信号に基づき、プログラムに従いＭＦＰ１０１の各部を制御する。これにより、ユーザ操作に応じた動作をＭＦＰ１０１に行わせることができる。
【００１４】
表示制御Ｉ／Ｆ１１５は、ディスプレイ１１９に対して画像を表示させるための表示信号を出力する。例えば、ＣＰＵ１１１は、プログラムに従い、生成した表示制御信号を表示制御Ｉ／Ｆ１１５に対して供給する。表示制御Ｉ／Ｆ１１５は、この表示制御信号に基づき表示信号を生成してディスプレイ１１９に対して出力する。例えば、表示制御Ｉ／Ｆ１１５は、ＣＰＵ１１１が生成する表示制御信号に基づき、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を構成するＧＵＩ画面をディスプレイ１１９に表示させる。また、タッチパネル１１８は、ディスプレイ１１９と一体的に構成されていても良い。例えば、タッチパネル１１８は光の透過率がディスプレイ１１９の表示を妨げないように構成され、ディスプレイ１１９の表示面の上層に取り付けられる。そして、タッチパネル１１８における入力座標と、ディスプレイ１１９上の表示座標が対応付けられる。これにより、あたかもユーザがディスプレイ１１９上に表示された画面を直接的に操作可能であるかのようなＧＵＩを構成することができる。
【００１５】
記憶装置Ｉ／Ｆ１１６には、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やフラッシュメモリなどの記憶装置１２０が接続されている。ＣＰＵ１１１の制御に基づき、記憶装置１２０からのデータの読み出しや、記憶装置１２０に対するデータの書き込みが行われる。記憶装置１２０をＲＡＭ１１２やＲＯＭ１１３の代わりに使用しても構わない。また、記憶装置Ｉ／Ｆ１１６に接続される記憶装置１２０は1台に限定されず、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリなどのメモリメディアを接続することも可能である。
【００１６】
通信Ｉ／Ｆコントローラ１１７は、ＣＰＵ１１１の制御に基づき、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット、有線、無線等の各種ネットワークに対する通信を行う。ネットワーク１０２には、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）や他のＭＦＰ、プリンタ、サーバ等、様々な装置がＭＦＰ１０１と通信可能に接続される。
【００１７】
スキャナ１２１は、ＣＰＵ１１１の制御に基づき、原稿を読み取り、画像データを生成する。例えば、ＣＰＵ１１１は、入力制御Ｉ／Ｆ１１４を介して入力されたユーザの指示により、スキャナ１２１に対してスキャン処理を実施させる。スキャナ１２１は、原稿台やＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ）に置かれた原稿を読み取り、デジタルデータ化し、画像データを生成する。そして、スキャナ１２１は、生成した画像データを記憶装置Ｉ／Ｆ１１６を介して記憶装置１２０に格納する。格納先は、記憶装置１２０に限定されず、通信Ｉ／Ｆコントローラ１１７を介してネットワーク１０２に接続された外部のファイルサーバ等でも構わない。
【００１８】
プリンタ１２２は、ＣＰＵ１１１の制御に基づき、記憶装置１２０に保存された画像データを印刷処理する。例えば、ＣＰＵ１１１は、入力制御Ｉ／Ｆ１１４を介して入力されたユーザの指示や、通信Ｉ／Ｆコントローラ１１７を介して外部装置から入力されたコマンドの指示によりプリンタ１２２に対して印刷処理を実施させる。プリンタ１２２は、記憶装置１２０から画像データを読出し、印刷可能なデータ形式に変換し、紙原稿に印字する。画像データは、記憶装置１２０に限定されず、通信Ｉ／Ｆコントローラ１１７を介してネットワーク１０２に接続された外部のファイルサーバ等から読み出しても構わない。
【００１９】
本発明におけるＭＦＰ１０１のソフトウェアの構成について、図２を用いて説明する。なお、図２は、本発明の第一の実施形態における説明のための一例を示したものであり、他の構成要素を含んだり、あるいは、本実施形態と同様の効果のある構成であったりしても構わないことは言うまでもない。図２における各制御部は、例えばＲＯＭ１１３に記憶されたプログラムが実行されることで実現される。このプログラムは起動時や機能利用時など必要に応じてＲＡＭ１１２へ展開される。各制御部はＣＰＵ１１１により制御される。
【００２０】
制御バス２００には、表示操作制御部２０１、認証制御部２０２、検索制御部２０３、及び検索履歴制御部２０４などの各制御部が接続されている。制御バス２００には、さらに、コピー制御部２１０、送信制御部２１１、ＦＡＸ制御部２１２、文書保存制御部２１３、文書利用制御部２１４、及びタイムライン制御部２２０などの各制御部が接続されている。制御バス２００は、ＣＰＵ１１１の制御に基づき、各制御部間で受け渡す情報を、ＲＡＭ１１２に一時的に格納して受け渡しする。受け渡しのための情報は、ＲＡＭ１１２ではなく記憶装置１２０に保存しても良い。
【００２１】
また、ＭＦＰ１０１には、コピー、スキャン、ＦＡＸ（ファクシミリ）、ＢＯＸなどのひとつ以上の機能（以下、アプリケーション、もしくはアプリと呼ぶ）があり、それぞれのアプリケーション毎に制御部がある。なお、ＢＯＸとは、ＭＦＰ１０１内の記憶領域や外部のファイルサーバなどに対して文書を保存したり、ＭＦＰ１０１内の記憶領域や外部のファイルサーバなどに保存されている文書を印刷、プレビュー、編集などを行ったりする機能である。複数のアプリケーションのそれぞれは、任意の機能を実現する。
図２には、ＭＦＰ１０１が有するアプリケーションの一例として、コピー制御部２１０、送信制御部２１１、ＦＡＸ制御部２１２、文書保存制御部２１３、及び文書利用制御部２１４が示されている。当然ながら図２に記載のアプリケーション以外のＭＦＰ１０１の処理に関わるアプリケーションが存在し、ＭＦＰ１０１がその制御部を有しても構わないのは言うまでもない。
文書のコピー機能を実行するものが、コピー制御部２１０である。文書をスキャンして外部に送信を行うものが送信制御部２１１である。本実施形態においては、送信制御部２１１は、「スキャンして送信」と言う名称のアプリケーションに相当する。また、ＦＡＸ送受信の機能を提供するものがＦＡＸ制御部２１２である。前述のＢＯＸ機能において、各記憶装置に文書を保存する機能を実行するものが、文書保存制御部２１３である。本実施形態においては、文書保存制御部２１３は、「スキャンして保存」と言う名称のアプリケーションに相当する。各記憶装置に保存されている文書の印刷、プレビュー、編集を実施するものが文書利用制御部２１４である。本実施形態においては、文書利用制御部２１４は、「保存ファイルの利用」と言う名称のアプリケーションに相当する。
【００２２】
表示操作制御部２０１は、ＣＰＵ１１１の制御に基づき、入力制御Ｉ／Ｆ１１４や表示制御Ｉ／Ｆ１１５を制御する。例えば、表示操作制御部２０１は、他の制御部からの指示に基づいて表示操作部１１５を介してディスプレイ１１９で表示を行ったり、入力制御Ｉ／Ｆ１１４を介してタッチパネル１１８にユーザが入力した情報を取得したりすることを行う。なお、表示操作制御部２０１は、取得した情報を、必要に応じて制御バス２００を介して各制御部へ通知する。
【００２３】
以降の記述では、各制御部間で情報やデータを受け渡しする際は、制御バス２００を経由しているものとする。
【００２４】
認証制御部２０２は、ＣＰＵ１１１の制御に基づき、ユーザを識別するための認証処理を行い、ＭＦＰ１０１の操作者がＭＦＰ１０１の正当なユーザか否かの判断を行う。認証処理を行って、正当なユーザの場合に画像形成装置（ＭＦＰ１０１）の利用セッションを開始することをログインと呼ぶ。また認証制御部２０２は、記憶装置１２０上のユーザ情報を格納した不図示の認証情報が格納されたユーザ情報データベースを制御する。ＭＦＰ１０１内部のユーザ情報データベースだけでなく、認証制御部２０２が、通信Ｉ／Ｆコントローラ１１７を介して、外部の認証サーバに接続し、外部の認証サーバの認証結果を利用するようにしても構わない。外部の認証サーバとの認証情報のやり取りは、公知の技術を用いて行う。また、ユーザがＭＦＰ１０１を利用し終わった後に、当該ユーザのセッションを終了することをログアウトと呼ぶ。
【００２５】
次に、検索制御部２０３について説明する。検索制御部２０３は、各アプリケーションの制御部から検索の指示が行われると、指定された検索条件（例えばアプリケーションでユーザが入力した検索条件）に従って、検索が行われる。検索制御部２０３は、記憶装置Ｉ／Ｆ１１６を利用して、記憶装置１２０に接続された記憶装置内や、通信Ｉ／Ｆコントローラ１１７を用いて、ネットワーク上のファイルサーバ内などの検索の実行を行う。また、検索制御部２０３が検索を実行すると、検索履歴制御部２０４に、検索条件について検索履歴として格納（記録）するように指示が行われる。検索履歴制御部２０４は、検索条件ＤＢ２０５に、指定された検索条件を履歴として保存を行う。検索の動作の詳細については、後述する。なお、検索制御部２０３は、本実施形態では独立した制御部として記載されているが、各アプリケーションの制御部に統合される形態でも構わない。
なお、検索履歴を保存した後、次回以降の検索における検索条件として、既に保存してある検索履歴のすべてまたは一部を利用可能なように読み出すことを検索履歴の復元と表現する。
【００２６】
図２には、タイムライン制御部２２０とタイムライン履歴ＤＢ２２１についての記載があるが、これらは本実施形態では参照されないため、後述の第二の実施形態で説明する。
【００２７】
図３は、ＭＦＰ１０１の各機能を呼び出すためのメインメニュー画面の一例である。メインメニュー画面は、表示操作制御部２０１によってディスプレイ１１９に表示される。以下に説明する各画面も、特に断りのない限り、表示操作制御部２０１によってディスプレイ１１９に表示される。メインメニュー画面は、ＭＦＰ１０１の電源投入時やリセット時等に表示される。メインメニュー画面には、ＭＦＰ１０１に搭載された各アプリケーションを呼び出すためのボタンが表示されている。以下の説明において、ユーザによるボタンの押下や文字入力などの各入力は、タッチパネル１１８によって受け付けられる。
ボタン３０１は「コピー」アプリを利用するボタンである。ＣＰＵ１１１は、ユーザによるボタン３０１の押下をタッチパネル１１８によって受け付けると、コピー制御部２１０を呼び出して実行する。
ボタン３０２は「ＦＡＸ」アプリを利用するボタンである。ＣＰＵ１１１は、ユーザによるボタン３０２の押下をタッチパネル１１８によって受け付けると、ＦＡＸ制御部２１２を呼び出して実行する。
ボタン３０３は「スキャンして保存」アプリを利用するボタンである。ＣＰＵ１１１は、ユーザによるボタン３０２の押下をタッチパネル１１８によって受け付けると、文書保存制御部２１３を呼び出して実行する。
ボタン３０４は「スキャンして送信」アプリを利用するボタンである。ＣＰＵ１１１は、ユーザによるボタン３０２の押下をタッチパネル１１８によって受け付けると、送信制御部２１１を呼び出して実行する。
ボタン３０５は「保存ファイルの利用」アプリを利用するボタンである。ＣＰＵ１１１は、ユーザによるボタン３０２の押下をタッチパネル１１８によって受け付けると、文書利用制御部２１４を呼び出して実行する。このようにして、メインメニューから各アプリケーションが実行される。
【００２８】
図４Ａは、「スキャンして保存」アプリを起動したときの画面の一例である。図４Ａは、スキャンしたデータの保存先をユーザが選択して指定する画面の一例である。
ボタン４０１は、スキャンしたデータの保存先をＭＦＰ１０１のローカルのＨＤＤ等のストレージ領域に指定するボタンである。ボタン４０２は、スキャンしたデータの保存先をネットワーク上の外部のファイルサーバに指定するボタンである。ボタン４０３は、スキャンしたデータの保存先をＭＦＰ１０１に接続されたメモリメディアに指定するボタンである。
図４Ｂは、図４Ａでボタン４０１が押下されてローカルが指定され、メインメニュー画面から、ＭＦＰ１０１内のストレージ領域の「／ｓｈａｒｅ／１２３」のフォルダを表示する画面に遷移した例である。図４Ｂにおいて、表示操作制御部２０１は、領域４１０に、現在のフォルダのフォルダパスを表示する。図４Ｂにおいて、表示操作制御部２０１は、領域４１１に、現在のフォルダに含まれるファイルやフォルダを表示する。
入力フィールド４１２は、検索キーワード入力フィールドである。入力フィールド４１２には、検索に用いるキーワードがユーザによって入力される。入力フィールド４１２への入力はタッチパネル１１８によって受け付けられる。
プルダウン４１３は、検索対象プルダウンである。ユーザは、プルダウン４１３によって下層検索条件として「下層フォルダを含む」又は「下層フォルダを含まない」のいずれかを選択して入力する。「下層フォルダを含む」は、検索の実施が、現在のフォルダパスから再帰的にフォルダを辿って実施されることを意味する。「下層フォルダを含まない」は、検索の実施が、現在のフォルダパスに含まれるファイルに限定されることを意味する。
ボタン４１４は、上位階層へ戻るためのボタンである。ＣＰＵ１１１は、図４Ｂでユーザによるボタン４１４の押下をタッチパネル１１８によって受け付ける。ＣＰＵ１１１は、このボタン４１４の押下を受け付けると、現在表示しているフォルダ「／ｓｈａｒｅ／１２３」の上位階層のフォルダ「／ｓｈａｒｅ」に表示対象を移動させた画面を表示操作制御部２０１によって表示する。
ボタン４１５は、フォルダを作成するためのボタンである。ＣＰＵ１１１は、ユーザによるボタン４１５の押下をタッチパネル１１８によって受け付けると、現在のフォルダパスに、新規にフォルダを生成する。
ボタン４１６は、検索実行ボタンである。ＣＰＵ１１１は、ユーザによるボタン４１６の押下をタッチパネル１１８によって受け付けると、入力フィールド４１２に入力されたキーワードと、プルダウン４１３で指定された下層検索条件で、検索を実行する。
ボタン４１７は検索履歴ボタンである。ＣＰＵ１１１は、ユーザによるボタン４１７の押下をタッチパネル１１８によって受け付けると、以前に実行した検索の履歴を表示する。検索履歴の詳細については後述する。
【００２９】
ＣＰＵ１１１は、ユーザによるボタン４１６の押下をタッチパネル１１８によって受け付けると、文書保存制御部２１３に検索を指示する。文書保存制御部２１３は、指定された検索条件として、入力フィールド４１２に入力されたキーワード、プルダウン４１３で指定された下層検索条件、及び領域４１０に表示された現在のフォルダパスを検索制御部２０３に渡して、検索実行を依頼する。検索制御部２０３は、ＭＦＰ１０１内のローカル記憶領域（ＨＤＤ等）やＭＦＰ１０１に接続されたメモリメディアの検索であれば、記憶装置Ｉ／Ｆ１１６を介して、記憶装置１２０にアクセスして検索を行う。検索制御部２０３は、ファイルサーバなど外部のネットワーク上の記憶領域の検索であれば、通信Ｉ／Ｆコントローラ１１７を利用してネットワーク１０２上の記憶装置内の検索を行う。なお、検索技術については、公知のものであるため、説明は割愛する。
【００３０】
検索制御部２０３は、検索が完了すると、検索履歴制御部２０４に対して、検索を実行した検索条件（キーワード、下層検索条件、及びフォルダパス）を渡して、検索履歴を保存するように指示する。検索履歴制御部２０４は、記憶装置Ｉ／Ｆ１１６を介して、ＭＦＰ内のＨＤＤなどの恒久的な記憶装置１２０内の検索条件ＤＢ２０５に、検索履歴を保存する。検索条件ＤＢ２０５に保存される内容の詳細については、後述する。
【００３１】
図４Ｃは、検索を実行した後の検索結果を表示する画面例である。なお、図４Ｂと同一の内容については、図４Ｂと同じ番号を付与して、説明は省略する。ＣＰＵ１１１は、指定された条件で検索してヒットしたファイル、及びフォルダを、表示操作制御部２０１によって領域４２０に表示する。ボタン４２１は、戻るボタンである。ＣＰＵ１１１は、ユーザによるボタン４２１の押下をタッチパネル１１８によって受け付けると、表示操作制御部２０１によって、検索前の画面である図４Ｂの画面を表示する。図４Ｃにおいて、表示操作制御部２０１は、領域４２２に、検索が実行されたフォルダを表示する。なお、ユーザが、図４Ｃにおいて、入力フィールド４１２のキーワードの修正や、プルダウン４１３で指定された下層検索条件の変更をして、ボタン４１６を押下すると、検索制御部２０３は、新たに指定された検索条件で再検索を行う。なお、本実施形態では説明の簡単のために、検索にヒットしたファイル、フォルダのパスを表示していない。しかしながら、本発明は、検索条件として下層フォルダを探索の対象に含めている場合には、検索結果の画面において、検索にヒットしたファイル、フォルダのパスを表示するようにしてもよい。
【００３２】
本実施形態では、フォルダパス、キーワード、及び下層検索条件を、検索条件としているが、本発明はこれに限らず他の検索条件でも構わないのは言うまでもない。例えば、キーワードを正規表現で入力したり、検索対象のファイル種別を指定したりしてもよく、また、キーワードも１つに限らず複数のキーワードを入力でき、検索条件をＡＮＤ条件やＯＲ条件を指定できるようにしてもよい。あるいは、下層検索条件において、下層までフォルダを辿る場合に、何階層までフォルダを辿るのかのレベルを指定出来てもよい。また、ファイル名やフォルダ名の検索だけでなく、ファイル内のテキストの検索を行う全文検索であっても構わないのは言うまでもない。
【００３３】
ここで、検索条件ＤＢ２０５について説明を行う。検索条件ＤＢ２０５は、図５に示すアプリ情報テーブルと、図６Ａ及び図６Ｂに示す検索履歴テーブルと、を含む。
【００３４】
図５のアプリ情報テーブル５０１は、アプリＩＤ５０２、アプリ名称５０３、及び検索対応５０４の各項目を含む。アプリＩＤ５０２は、各アプリを一意に特定するＩＤであり、例えば、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）などで表される。本実施形態では説明を簡単にするため、アプリＩＤ５０２を３桁の数値で表す。アプリ名称５０３は、アプリケーションの名称である。検索対応５０４は当該アプリケーションが検索機能を有しているか否か（検索可能であるか否か）を示すものである。アプリ情報テーブル５０１は、各アプリケーションがＭＦＰ１０１に登録（インストール）されるタイミングで、そのアプリケーションの制御部が、検索制御部２０３に、自身のアプリＩＤ、アプリケーション名称、検索対応しているかを通知する。検索制御部２０３は、アプリケーションから通知された情報を検索履歴制御部２０４に保存するように指示を行う。検索履歴制御部２０４は、検索条件ＤＢ２０５内のアプリ情報テーブル５０１に、インストールされたアプリケーションについての各項目を追加する。追加するアプリケーションについての各項目としては、指定されたアプリＩＤ（アプリＩＤ５０２）、アプリケーション名称（アプリ名称５０３）、検索対応可否（検索対応５０４）の各項目が挙げられる。これにより、ＣＰＵ１１１は、どのアプリケーションが検索対応しているのかを特定することが可能となる。また、３ｒｄパーティー製など標準搭載されていないアプリケーションをＭＦＰ１０１に追加する場合においても本実施形態の検索履歴の機能に対応することが可能となる。なお、３ｒｄパーティー製などの外部製のアプリケーションに対しては検索履歴を共有させたくない場合もある。この場合には、不図示の設定により、権限を持たないアプリケーションは、アプリ情報テーブル５０１への登録を禁止するようにしてもよい。例えば標準アプリケーションのみにアプリ情報テーブル５０１への登録権限を与えるようにすれば、３ｒｄパーティー製などの外部製のアプリケーションは検索履歴を共有することが出来なくなる。
【００３５】
図６Ａは、検索履歴テーブルの一例である。検索履歴テーブルには、アプリ情報テーブル５０１で検索対応であるアプリケーション毎に検索履歴が保存される。検索履歴テーブル６０１は、「スキャンして保存」アプリケーションの検索履歴テーブルである。検索履歴テーブル６０２は、「保存ファイルの利用」アプリケーションの検索履歴テーブルである。検索履歴テーブル６０３は「スキャンして送信」アプリケーションの検索履歴テーブルである。各検索履歴テーブル６０１、６０２及び６０３のそれぞれは、Ｏｒｄｅｒ６１１、キーワード６１２、検索パス６１３、及び下層検索条件６１４の各項目を含む。Ｏｒｄｅｒ６１１は、保存された検索履歴の保存順を表す値である。Ｏｒｄｅｒ６１１は、数が小さいほど、最近に保存された検索履歴であることを示す。本実施形態では、Ｏｒｄｅｒ６１１を順番で指定しているが、Ｏｒｄｅｒ６１１に検索が実行された日時を保存するようにしても構わない。キーワード６１２は、検索のために入力されたキーワードである。検索パス６１３は、検索を実行したときのフォルダパスを表す。検索パス６１３は、検索を実施するフォルダを示す情報であるフォルダ情報の一例である。下層検索条件６１４は、検索時に設定された条件を格納する。本実施形態においては、下層検索条件６１４には、検索対象が下層フォルダを含むか、含まないか、のいずれかが保存される。図６Ａの検索履歴テーブル６０１、６０２及び６０３の構成は一例であり、他の検索条件が追加、変更されれば、それに伴い拡張しても構わない。
【００３６】
なお、アプリ毎の検索履歴テーブルは、ユーザ毎に記録されるものである。以下の説明においては、ユーザ毎に検索履歴テーブルを探索する処理については記載せずに、ユーザ毎に格納されている前提で説明を行う。なお、ユーザ毎に別の検索履歴テーブルを保持するのでなく、全ユーザで共有の検索履歴テーブルを用いることも可能である。
【００３７】
ここで、図４Ｂのように、入力フィールド４１２のキーワードが「売上分析」、プルダウン４１３の下層検索条件が「下層フォルダを含む」、領域４１０のフォルダパスが「／ｓｈａｒｅ／１２３」という条件で検索を実行した場合の処理の例について説明する。
文書保存制御部２１３は、前述の通り、検索制御部２０３を介して、指定された条件で検索を実行する。検索制御部２０３は、検索した結果を文書保存制御部２１３へ返す。文書保存制御部２１３は、検索結果を図４Ｃのようにディスプレイ１１９に表示する。このとき、検索制御部２０３は、検索履歴制御部２０４に対して、検索の指示があったアプリケーションのアプリＩＤ、検索に利用したキーワード、検索パス、検索条件を検索履歴として保存するように指示を行う。この例の場合、「スキャンして保存」アプリなので、アプリ情報テーブル５０１を参照してアプリＩＤは「００３」、キーワードは「売上分析」、検索パスは「／ｓｈａｒｅ／１２３」、検索条件は「下層フォルダを含む」となる。検索履歴制御部２０４は、指定されたアプリＩＤの検索履歴テーブルを探索し、探索結果である検索履歴テーブル６０１に対して、指定されたキーワード、検索パス、及び検索条件を追加する。この例の場合、検索履歴制御部２０４は、検索履歴テーブル６０１において、Ｏｒｄｅｒ６１１＝１として、キーワード６１２に「売上分析」、検索パス６１１に「／ｓｈａｒｅ／１２３」、検索条件６１４に「下層フォルダを含む」を追加する。この検索履歴の保存に伴い、登録済みの検索履歴のＯｒｄｅｒ６１１が１ずつ増加し、図６Ａの検索履歴テーブル６０１は、図６Ｂの検索履歴テーブル６０１となる。
【００３８】
ここで、パスについて説明する。前述の通り、検索する対象はＭＦＰ１０１内のローカルの記憶領域のパス、外部のネットワーク上のファイルサーバ上のパス、メモリメディアなどリムーバブルメディア上のパスの場合などがある。ＭＦＰ１０１内のローカルのパスであれば、通常のファイルパス、ネットワーク上のサーバのパスであれば、ＵＮＣ（Ｕｎｉｖｅｒｓａｌ  Ｎａｍｉｎｇ  Ｃｏｎｖｅｒｔｉｏｎ）で表す。また、メモリメディアの場合は、例えば、「ＵＳＢ：／開発部／開発文書」の「ＵＳＢ：」のようにメモリメディアであることを明示したパスとなる。
【００３９】
次に、アプリケーションで検索履歴を呼び出す動作について説明する。ＣＰＵ１１１は、ユーザによる図４Ｂのボタン４１７の押下をタッチパネル１１８によって受け付けると、表示操作制御部２０１によって、検索履歴選択画面である図７Ａの画面を表示する。この図７Ａの画面は、検索履歴テーブルに記録された検索履歴のうち復元する検索履歴を選択する画面である。図７Ａでは、この画面が検索履歴選択画面であることから、その最上部に「検索履歴選択」と表示しているが、検索履歴選択画面の最上部にこの画面を呼び出したアプリ名（ここでは「スキャンして保存」）を表示してもよい。領域７１０は検索履歴表示領域である。この領域７１０に過去の検索の履歴が表示される。キーワード７０５には、検索キーワードが表示される。条件７０６には、検索条件が表示される。パス７０７には、検索パスが表示される。欄７１１、欄７１２、及び欄７１３のそれぞれには、アプリケーション毎に検索履歴が表示される。欄７１１は、「スキャンして保存」アプリの検索履歴の表示欄である。欄７１２は、「保存ファイルの利用」アプリの検索履歴の表示欄である。欄７１３は、「スキャンして送信」アプリの検索履歴の表示欄である。選択と記載の欄に検索履歴毎に丸印で表示されているラジオボタン７０４は、ユーザが復元したい検索履歴を選択するための選択ラジオボタンである。ラジオボタン７０４は、表示された検索履歴の中で、１つだけ選択することが可能である。ボタン７０１は、検索履歴復元ボタンである。ＣＰＵ１１１は、ユーザによる図７Ａのボタン７０１の押下をタッチパネル１１８によって受け付けると、表示操作制御部２０１によって、ラジオボタン７０４で選択された検索履歴を復元した画面を表示する。このとき、表示操作制御部２０１は、チェックボックス７０２が選択されていれば、以前の検索時に指定した検索パスに移動して、検索画面を復元する。表示操作制御部２０１は、チェックボックス７０２が選択されていなければ、現在のフォルダパスで、キーワード、及び検索条件を復元する（検索パスは復元されない）。
【００４０】
図７Ｂは、現在のフォルダパスが「／ｓｅｃｒｅｔ」のときに、図７Ａで「保存ファイルの利用」の検索履歴７２０が選択され、チェックボックス７０２が選択されていない状態で、ユーザがボタン７０１を押下したときに表示される画面の例である。この場合、表示操作制御部２０１は、領域４１０のフォルダパスは、現在の「／ｓｅｃｒｅｔ」のままで、入力フィールド４１２に「予算」、プルダウン４１３は「下層フォルダを含まない」が設定された画面を表示する。ユーザは、図７Ｂの画面においてボタン４１６を押下することで、復元された検索履歴の条件で、検索を実行することが可能となる。ユーザは、ボタン４１６を押下する前に、キーワードや下層検索条件を変更することもできる。
【００４１】
図７Ｃは、図７Ａで「保存ファイルの利用」の検索履歴７２０が選択され、チェックボックス７０２が選択された状態で、ユーザがボタン７０１を押下したときに表示される画面の例である。この場合、表示操作制御部２０１は、領域７３０の現在のフォルダパスを、検索履歴７２０の検索パスである「／ｓｈａｒｅ／ｆｏｌｄｅｒ／１８８５」に移動した状態で、キーワード、及び下層検索条件を復元する。この後の動作については、上述の図７Ｂの動作と同様である。チェックボックス７０２が選択されたケースで、フォルダが削除などで存在しない場合、ネットワーク上のサーバに接続できない場合、又はメモリメディアが抜かれているなどでアクセスできない場合がある。この場合は、表示操作制御部２０１は、図７Ｄの警告画面を表示する。図７Ｄの警告画面によれば、ユーザは、現在のフォルダでキーワード、及び下層検索条件を復元（フォルダ情報以外を復元）するか（図７Ｄの画面で「はい」）、検索履歴の復元を中止するか（図７Ｄの画面で「いいえ」）を選択することが出来る。
【００４２】
図７Ａのボタン７０３は、検索実行ボタンである。ＣＰＵ１１１は、ユーザによるボタン７０３の押下をタッチパネル１１８によって受け付けると、文書保存制御部２１３に検索を指示する。文書保存制御部２１３は、指定された検索条件として、ラジオボタン７０４で選択された検索履歴７２０のキーワード、下層検索条件、及びチェックボックス７０２の選択状態で定まる検索パスを検索制御部２０３に渡して、検索実行を依頼する。検索制御部２０３は、ＭＦＰ１０１内のローカル記憶領域（ＨＤＤ等）やＭＦＰ１０１に接続されたメモリメディアの検索であれば、記憶装置Ｉ／Ｆ１１６を介して、記憶装置１２０にアクセスして検索を行う。このように、図７Ａでボタン７０３が押下された場合は、図７Ｂ、図７Ｃの説明のように検索履歴が復元された状態で、検索条件の設定画面を表示せずに即座に検索が行われ、結果の表示を行う。したがって、検索履歴の復元時に検索を実行する。検索条件が固定されている場合は、ボタン７０３によりユーザの手間を省くことが可能になる。
【００４３】
図８のフローチャートを用いて本発明の第一の実施形態に係る検索履歴の登録処理の詳細について説明する。図８は、検索制御部２０３、及び検索履歴制御部２０４の処理を示したフローチャートである。検索制御部２０３、及び検索履歴制御部２０４の処理は、ＲＯＭ１１３に記憶されたプログラムがＣＰＵ１１１によって制御されることにより実行される。検索制御部２０３、及び検索履歴制御部２０４は、以下のフローを実行するための要求を各制御部に要求する。
【００４４】
Ｓ８０１で、検索制御部２０３が検索を実行する。検索処理は、本実施形態の本質ではないため説明を割愛する。Ｓ８０２では、指定された検索条件で検索履歴を保存するために、検索履歴制御部２０４が、Ｓ８０１で実施した検索の検索キーワード、下層検索条件、及び検索パスと、検索を依頼したアプリケーションのアプリＩＤと、を検索制御部２０３から取得する。Ｓ８０３では、検索履歴制御部２０４が取得したアプリＩＤに対応する検索履歴テーブルが存在するか判断し、存在している場合（Ｙｅｓ）には、Ｓ８０７へ進み、存在していない場合（Ｎｏ）は、Ｓ８０４へ進む。Ｓ８０４では、検索履歴制御部２０４がアプリ情報テーブル５０１を確認し、アプリ情報テーブル５０１で当該アプリＩＤの検索対応５０４のフィールドを確認し、検索対応５０４が「Ｙｅｓ」の場合（Ｙｅｓ）は、Ｓ８０５へ進む。検索対応５０４が「Ｎｏ」であった場合（Ｎｏ）は、Ｓ８０６へ進む。Ｓ８０６は、Ｓ８０５で検索対応５０４が「Ｎｏ」であった場合であり、アプリＩＤのアプリケーションで検索を実行されているにも関わらず、アプリ情報テーブル５０１で検索対応してないとの登録になっているため、矛盾している。そのため、検索制御部２０３がエラーを表示して終了する。Ｓ８０５では、検索が実行されたアプリケーションのアプリＩＤは、検索対応であるが、検索履歴テーブルが存在していない状態となる。そこで、検索履歴制御部２０４が当該アプリＩＤの検索履歴テーブルを生成して、Ｓ８０７へ進む。
【００４５】
Ｓ８０７では、検索履歴制御部２０４が、当該アプリＩＤに対応する検索履歴テーブルのＯｒｄｅｒ＝１に、Ｓ８０２で取得した検索キーワード、下層検索条件、検索パスを当該アプリＩＤと共に最新の検索履歴として登録を行う。Ｓ８０８では、検索履歴制御部２０４が、検索履歴テーブルにＳ８０７で追加した検索履歴以外に他の検索履歴が存在しないか確認する。もし、他の検索履歴が存在しなければ（Ｎｏ）、検索履歴の登録は完了したため処理を終了する。他の検索履歴が存在していれば（Ｙｅｓ）、Ｓ８０９へ進む。Ｓ８０９では、検索履歴制御部２０４がＳ８０７で追加した検索履歴以外の他の検索履歴のＯｒｄｅｒを１ずつ増加する。Ｓ８１０では、検索履歴制御部２０４が、検索履歴テーブルに登録された検索履歴の保存上限を超えているか確認する。ここで、検索履歴テーブルは、有限数の登録を許容するテーブルであり、一定数（上限）を超えて検索履歴が登録された場合には、一番古い検索履歴から削除されるものとする。検索履歴の保存上限を超えていないと判断された場合（Ｎｏ）は、検索履歴テーブルへの検索履歴の登録が完了したため、終了する。検索履歴の保存上限を超えていると判断された場合（Ｙｅｓ）は、Ｓ８１１へ進む。Ｓ８１１では、検索履歴制御部２０４が、当該アプリＩＤに対応する検索履歴テーブルのＯｒｄｅｒが一番大きい値、つまり一番古い検索履歴を削除して、処理を終了する。
【００４６】
図９のフローチャートを用いて本発明の第一の実施形態に係る検索履歴の表示処理の詳細について説明する。図９は、検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部の処理を示したフローチャートである。検索履歴の表示を行うアプリケーションの制御部は、例えば、「スキャンして保存」アプリケーションであれば、文書保存制御部２１３に相当するなど、アプリケーション毎に制御部が異なり一意に特定することはできない。そのため、任意の検索を実行するアプリケーションの制御部をアプリケーション制御部として表すことにする。以下の説明においても、アプリケーションを特定することが出来ない場合は、該当するアプリケーションの制御部をアプリケーション制御部と記載する。検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部の処理は、ＲＯＭ１１３に記憶されたプログラムがＣＰＵ１１１によって制御されることにより実行される。検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部は、以下のフローを実行するための要求を各制御部に要求する。本フローチャートは、例えば、図７Ａの画面の領域７１０の検索履歴の一覧を表示する動作を説明するものである。
【００４７】
Ｓ９０１で、アプリケーション制御部は、検索制御部２０３へ指示をして、自身のアプリＩＤに対応する検索履歴の取得を行う。具体的には、検索制御部２０３が、検索履歴制御部２０４に所望のアプリＩＤの検索履歴の取得を指示すると、検索履歴制御部２０４が、検索条件ＤＢ２０５に格納された検索履歴テーブルの中からアプリＩＤに対応する検索履歴テーブルを探索する。検索履歴制御部２０４は、探索した検索履歴テーブルから全ての検索キーワード、検索パス、下層検索条件、Ｏｒｄｅｒを読み出して、検索制御部２０３経由で、アプリケーション制御部に返す。Ｓ９０２は、アプリケーション制御部が、Ｓ９０１で受け取った検索キーワード、検索パス、下層検索条件をＯｒｄｅｒ順に並び変えて、ディスプレイ１１９に表示を行う。
【００４８】
Ｓ９０３では、検索履歴制御部２０４が、アプリ情報テーブル５０１から任意の１レコードを取得する。Ｓ９０４では、検索履歴制御部２０４が、Ｓ９０３で取得したレコードの検索対応が「Ｙｅｓ」であるか確認する。検索対応が「Ｙｅｓ」である場合は（Ｙｅｓ）、Ｓ９０５へ進み、検索対応が「Ｎｏ」である場合は（Ｎｏ）、Ｓ９０９へ進む。Ｓ９０５では、検索履歴制御部２０４が、アプリケーション制御部から指定されたアプリＩＤと、Ｓ９０３で取得したレコードのアプリＩＤが一致しているか確認する。アプリＩＤが一致している場合（Ｙｅｓ）は、Ｓ９０２で検索履歴を表示済みのため処理不要なので、Ｓ９０９へ進む。アプリＩＤが一致していない場合（Ｎｏ）は、Ｓ９０６へ進む。Ｓ９０６では、検索履歴制御部２０４が、Ｓ９０３で取得したレコードのアプリＩＤに対応する検索履歴テーブルが存在するか確認する。検索履歴テーブルが存在する場合は（Ｙｅｓ）は、Ｓ９０７へ進み、検索履歴テーブルが存在しない場合は（Ｎｏ）、該アプリＩＤについては、検索履歴が登録されていないためＳ９０９へ進む。Ｓ９０７では、検索履歴制御部２０４が、Ｓ９０３で取得したレコードのアプリＩＤに対応する検索履歴テーブルから全ての検索キーワード、検索パス、下層検索条件、及びＯｒｄｅｒを読み出して、検索制御部２０３経由で、アプリケーション制御部に返す。Ｓ９０８では、アプリケーション制御部が、Ｓ９０７で受け取った検索キーワード、検索パス、及び下層検索条件をＯｒｄｅｒ順に並び変えて、アプリケーション名と共に、ディスプレイ１１９への表示項目を追加する。Ｓ９０９では、検索履歴制御部２０４が、アプリ情報テーブル５０１に登録されている全てのレコードを処理したか判断する。全て処理していない場合は（Ｎｏ）、Ｓ９０３へ戻る。全て処理した場合は、終了する。
【００４９】
これにより、図７Ａの領域７１０の検索履歴の一覧が表示される。
【００５０】
図１０のフローチャートを用いて本発明の第一実施形態に係る検索履歴の復元処理の詳細について説明する。図１０は、検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部の処理を示したフローチャートである。なお、図９と同様に、アプリケーション制御部は、検索履歴を復元するアプリケーションであり、一意に特定することはできないため、アプリケーション制御部と表す。検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部の処理は、ＲＯＭ１１３に記憶されたプログラムがＣＰＵ１１１によって制御されることにより実行される。検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部は、以下のフローを実行するための要求を各制御部に要求する。本フローチャートは、例えば、図７Ａの画面で、任意の検索履歴が選択されて、検索履歴の復元が実行された場合の動作を説明するものである。
【００５１】
Ｓ１００１では、アプリケーション制御部が、復元対象として指定されている検索履歴の検索キーワード、及び下層検索条件を取得する。図７Ａの画面の例であれば、選択されている検索履歴７２０の検索キーワード、下層検索条件を取得する。Ｓ１００２では、アプリケーション制御部が、検索パスの復元が指定されているかどうかを確認する。図７Ａの画面の例であれば、チェックボックス７０２が選択されているか否かを確認する。検索パスの復元が指定されている場合は（Ｙｅｓ）、Ｓ１００３へ進み、検索パスの復元が指定されていない場合は（Ｎｏ）、Ｓ１００８へ進む。Ｓ１００３では、アプリケーション制御部が、復元対象として指定されている検索履歴の検索パスの取得を行う。Ｓ１００４で、アプリケーション制御部が、Ｓ１００３で取得した検索パスにアクセスできるか確認を行う。具体的には、検索パスがＭＦＰ１０１のローカルのパスか、ネットワーク上のファイルサーバのパスか、メモリメディアのパスなのかを確認して、アクセスの確認を行う。ＭＦＰ１０１のローカルのパス、もしくは、メモリメディアのパスであれば、記憶装置Ｉ／Ｆ１１６経由で記憶装置１２０に所定のパスが存在するか確認を行う。検索パスが、ネットワーク上のファイルサーバのパスであれば、通信Ｉ／Ｆコントローラ１１７を介して、ファイルサーバに所定のパスが存在するか確認を行う。検索パスが存在していれば（Ｙｅｓ）、Ｓ１００５へ進む。検索パスが存在していなければ（Ｎｏ）、Ｓ１００６へ進む。Ｓ１００５では、検索パスにアクセスできるため、アプリケーション制御部は、検索履歴の検索パスに移動する。なお、このときのパスの移動はＳ１００４に記載の処理と同様に、記憶装置Ｉ／Ｆ１１６や通信Ｉ／Ｆコントローラ１１７を用いて行われる。Ｓ１００６では、検索パスにアクセスできなかったため、アプリケーション制御部が、ディスプレイ１１９に図７Ｄの警告画面を表示する。Ｓ１００７では、アプリケーション制御部が、図７Ｄの警告画面で、現在のパスで検索履歴を復元するか否かのどちらが選択されたかを確認する。現在のパスで検索履歴を復元することが選択された場合は（Ｙｅｓ）、Ｓ１００８へ進む。現在のパスで検索履歴を復元することが選択されていない場合は（Ｎｏ）、検索履歴の復元を中止することになるため、終了する。Ｓ１００８では、アプリケーション制御部が、検索実行まで行うか否かを判断する。図７Ａの画面の例であれば、アプリケーション制御部は、ボタン７０１が押下されたか、ボタン７０３が押下されたかを判断する。ボタン７０１が押下された場合は、検索履歴の復元を行い、検索の実行までは行わない。ボタン７０３が押下された場合は、検索履歴を復元し、検索の実行まで行う。検索実行までは行わないと判断した場合は（Ｎｏ）、Ｓ１００９へ進み、検索実行まで行うと判断した場合は（Ｙｅｓ）、Ｓ１０１０へ進む。Ｓ１００９では、アプリケーション制御部が、Ｓ１００１で取得した検索キーワード、下層検索条件を設定して、検索画面を表示して、処理を終了する。Ｓ１０１０では、アプリケーション制御部が、Ｓ１００１で取得した検索キーワード、及び下層検索条件と、現在のフォルダパスとを、検索制御部２０３に渡して、検索実行を指示する。検索制御部２０３では、現在のフォルダパスに応じて、記憶装置Ｉ／Ｆ１１６や通信Ｉ／Ｆコントローラ１１７をアクセスして、検索条件にマッチするファイル、フォルダを取得して、アプリケーション制御部に返す。
【００５２】
Ｓ１０１１では、検索制御部２０３が、検索履歴を上書きするか否かを判定する。本フローチャートでは、上書きするか否かが、例えば、図２０の画面でユーザが予め登録して設定されている場合を例に記載しているが、毎回、上書きするか否かを問い合わせる形態でも構わない。Ｓ１０１１で、検索履歴を上書きすると判定された場合は（Ｙｅｓ）は、Ｓ１０１２へ進む。設定履歴を上書きしないと判定された場合は（Ｎｏ）は、Ｓ１０１３へ進む。Ｓ１０１２では、検索制御部２０３が、検索履歴制御部２０４に対して、アプリＩＤとＯｒｄｅｒを渡して、選択された検索履歴を削除するように指示する。検索履歴制御部２０４は、検索制御部２０３から通知されたアプリＩＤに対応する検索履歴テーブルからＯｒｄｅｒに対応する検索履歴の削除を行う。Ｓ１０１３では、検索履歴制御部２０４が、検索制御部２０３から通知されたアプリＩＤに対応する検索履歴テーブルに、今回の検索で利用した検索キーワード、下層検索条件、及び検索パスで検索履歴の追加を行う。Ｓ１０１２及びＳ１０１３を実施することで、検索履歴の上書きが行われる。Ｓ１０１２を実施せずにＳ１０１３を実施することで、検索履歴の新規記録が行われる。
Ｓ１０１２及びＳ１０１３では、詳細は説明しないが、検索履歴制御部２０４は、Ｏｒｄｅｒの値の調整や上限を超えた場合の検索履歴の削除処理も実施する。Ｓ１０１４では、アプリケーション制御部が、Ｓ１０１０で受け取った、検索制御部２０３が実行した検索結果をディスプレイ１１９に表示して、処理を終了する。
【００５３】
本実施形態によれば、検索履歴を複数のアプリ間で共有することができ、あるアプリで利用した検索条件を他のアプリで利用することで、利用者が同一の検索条件を入力する手間を省くことが可能になる。更には、検索履歴の復元に際して、検索パスまで含めて復元するかどうか、検索処理も実行するかどうかなどを利用者が選択することが可能になり、利用者が検索履歴を柔軟に活用することができる。
【００５４】
また、検索対応のアプリケーションを登録可能にすることにより、ＭＦＰ１０１に標準で搭載されていないアプリケーションであっても検索機能を有していれば、他のアプリケーションと検索履歴を共有することができる。
【００５５】
本実施形態において、複数のアプリケーション間で検索履歴を共有する例を説明したが、同一アプリケーション内で自身のアプリケーションの検索履歴を復元する形態であっても構わない。図９のフローチャートで説明したように、自身のアプリケーションの検索履歴が表示されており、この検索履歴をユーザが選択して、図１０のフローチャートが適用されることで、実現は可能である。このように、同一アプリケーション内で、以前に行った検索パスや下層検索条件を復元したい場合にも、本実施形態は有効である。
【００５６】
＜第二の実施形態＞
次に本発明における第二の実施形態について説明する。本実施形態では、ＭＦＰ１０１で実行した処理の履歴を時系列に表示するタイムライン機能において、検索履歴をタイムラインに含める場合の例を示す。
【００５７】
図１１Ａは、本発明の第二の実施形態に係るメインメニュー画面に表示されるタイムラインの表示の一例である。領域１１０１は、タイムライン表示領域である。この領域１１０１に各アプリケーションの実行履歴がボタンとして表示される。図１１Ａの例では、ボタン１１０２、ボタン１１０３、及びボタン１１０４のように３つのボタンが表示され、実行した順に新しいものが上から表示される。ボタン１１０２は、「コピー」アプリでＡ４、両面、カラーの設定で実行された履歴のボタンである。ボタン１１０３は、「保存ファイルの利用」アプリで、「／ｆｏｌｄｅｒ／文書１」に対して２０部印刷を実行した履歴のボタンである。ボタン１１０４は、「スキャンして保存」アプリで、検索パス「／ｓｈａｒｅ／１２３」で検索キーワード「予算」、検索条件「下層フォルダを含む」で検索を実行した履歴のボタンである。
【００５８】
ここで、図２のタイムライン制御部２２０、及びタイムライン履歴ＤＢ２２１について説明する。各アプリケーションが処理を実行したときに、当該アプリケーション制御部が、タイムライン制御部２２０に対して、実行内容を通知して、アプリケーションの実行の履歴の保存を指示する。タイムライン制御部２２０は、タイムライン履歴ＤＢ２２１に、指示を受けたアプリケーションのアプリＩＤとアプリケーション制御部から指定のあった履歴を、例えば後述する図１２のタイムラインテーブル１２０１の形式で保存する。ユーザがボタン１１０２、ボタン１１０３乃至ボタン１１０４のいずれか（以下「タイムライン履歴ボタン」ともいう）を押下すると、ＣＰＵ１１１は、これを受け付ける。ＣＰＵ１１１がこのタイムライン履歴ボタンの押下を受け付けると、タイムライン制御部２２０は、タイムライン履歴ＤＢ２２１に格納されたタイムラインテーブル１２０１から、押下されたタイムライン履歴ボタンに対応するアプリＩＤと履歴を読み出す。タイムライン制御部２２０は、読み出したアプリＩＤに該当するアプリケーション制御部を特定し、当該アプリケーション制御部に履歴を渡して、復元を指示する。なお、タイムラインテーブル１２０１は、ユーザ毎に保存されるが、本実施形態は、予めユーザ毎に保存されている前提で説明している。タイムラインテーブル１２０１は全ユーザ共通としても構わないし、ユーザ毎と全ユーザ共通の両方を有するようにしても構わない。
【００５９】
ユーザが領域１１０１のタイムライン履歴ボタンを押下すると、ＣＰＵ１１１は、これを受け付け、履歴に記載の設定を復元して、当該アプリケーションの画面を表示する。検索の履歴も、前述のボタン１１０４に表示のように、タイムライン履歴ボタンの１つとして表示される。検索のタイムライン履歴ボタンが押下されると、ＣＰＵ１１１は、これを受け付け、当該アプリで検索履歴を復元する。ボタン１１０４が押下された場合であれば、ＣＰＵ１１１は、図７Ｃのように検索パスまで含めた状態で検索履歴を復元して、「スキャンして保存」アプリの画面を表示する。なお、検索パスが存在していない場合は、検索履歴が復元できないため、エラーとなり、ＣＰＵ１１１は、不図示のエラー画面を表示する。
【００６０】
検索履歴で検索が実行されたアプリケーション以外で、検索条件を復元したい場合には、ユーザは、検索のタイムライン履歴ボタンを長押しする。長押しとは、予め定めた一定時間以上ボタンを押し続ける操作である。検索のタイムライン履歴ボタンの長押しを受け付けたＣＰＵ１１１は、検索履歴を復元するアプリケーションを選択する画面を表示する。なお、本実施形態では、タイムライン履歴ボタンの長押しによって検索履歴を復元するアプリケーションを選択する画面を表示しているが、長押しに限らず、他の方法によって検索履歴を復元するアプリケーションを選択する画面を表示しても構わない。
【００６１】
図１１Ｂは、本発明の第二の実施形態に係る検索履歴を復元するアプリケーションを選択する画面の一例である。領域１１１０は、検索条件の表示領域である。領域１１１０には、検索履歴の検索キーワード、下層検索条件、及び検索パスが表示される。領域１１１１には、検索を復元したアプリケーションの候補の一覧が表示される。印１１１２は、領域１１１０に表示している検索履歴を登録したアプリケーションがどれであるかを表す印である。図１１Ｂの画面では、印１１１２によって、復元する検索条件を保存時に実行したアプリケーションを、他のアプリケーションと判別可能に表示している。ボタン１１１３は、開くボタンである。ＣＰＵ１１１は、ボタン１１１３の押下を受け付けると、表示操作制御部２０１によって、領域１１１１のアプリケーションの中から選択されたアプリケーションで、検索履歴を復元して検索画面を開く（検索画面を表示する）。ボタン１１１４は、検索実行ボタンである。ＣＰＵ１１１は、ボタン１１１４の押下を受け付けると、図７Ａのボタン７０３の押下を受け付けたときと同様に、領域１１１１のアプリケーションのうちラジオボタンで選択されたアプリケーションで、検索履歴を復元して、検索まで実行する。図１１Ｂの画面は、検索履歴（検索条件）を復元するアプリケーションを選択する選択画面である。
【００６２】
図１２は、本発明の第二の実施形態に係るタイムライン履歴ＤＢ２２１に登録されるタイムラインテーブルの一例である。タイムラインテーブル１２０１は、Ｏｒｄｅｒ１２０２、アプリＩＤ１２０３、ａｃｔｉｏｎ１２０４、及び履歴データ１２０５から成る。Ｏｒｄｅｒ１２０２は、領域１１０１における各タイムライン履歴ボタンの表示順を示す値であり、数が小さい方が上位に表示される。アプリＩＤ１２０３は、前述の通りアプリケーションを一意に特定するための値である。ａｃｔｉｏｎ１２０４は、当該履歴がどの処理であるかを示すものである。本実施形態では、ａｃｔｉｏｎ１２０４は、コピーや印刷など実際のＭＦＰ１０１の機能を実行したときの履歴であることを示すｅｘｅｃｕｔｅと、検索を実行したときの検索履歴であることを示すｓｅａｒｃｈの２つのどちらかになる。ａｃｔｉｏｎ１２０４は、この２つに限定されるのでなく、他の動作に対して、履歴を保存する場合は、その動作に対応するａｃｔｉｏｎを追加して構わない。履歴データ１２０５は、履歴の内容である。例えば、図１１Ａのボタン１１０２では、履歴データ１２０５は、「Ａ４、両面、カラー」の設定である。ボタン１１０３では、履歴データ１２０５は、「／ｆｏｌｄｅｒ／文書１を２０部印刷」の設定である。ボタン１１０４では、履歴データ１２０５は、「検索パス「／ｓｈａｒｅ／１２３」で検索キーワード「予算」、下層検索条件「下層フォルダを含む」」である。このように、履歴データ１２０５には、それぞれのアプリケーションの実行の履歴であるアプリケーション履歴が格納される。各アプリケーション制御部から指定されたアプリＩＤ１２０３、ａｃｔｉｏｎ１２０４、履歴データ１２０５をタイムライン制御部２２０が受け取ると、タイムライン設定ＤＢ２２１に、Ｏｒｄｅｒ１２０２＝１で登録する。このとき、タイムラインの保存上限を超えている場合は、タイムライン制御部２２０がタイムライン設定ＤＢ２２１から一番古い履歴の削除を行う。
【００６３】
図１１Ａの領域１１０１で、タイムライン履歴ボタンが押下されたとき、タイムライン制御部２２０がこれを受け付ける。タイムライン制御部２２０は、押下されたタイムライン履歴ボタンのＯｒｄｅｒに対応するアプリＩＤ１２０３、ａｃｔｉｏｎ１２０４、履歴データ１２０５をタイムライン設定ＤＢ２２１から読み出す。タイムライン制御部２２０は、読み出したアプリＩＤに対応するアプリケーション制御部に対して、履歴データ１２０５を渡して、ａｃｔｉｏｎ１２０４に応じた処理を実行するように指示する。アプリケーション制御部は、渡された履歴データ１２０５を読み出して、ａｃｔｉｏｎ１２０４に応じた処理を行って画面の表示を行う。
【００６４】
タイムライン履歴ボタンが長押しされた場合、当該タイムライン履歴ボタンのａｃｔｉｏｎ１２０４がｓｅａｒｃｈの場合は、タイムライン制御部２２０は、検索制御部２０３に、検索対応アプリの一覧の問い合わせを行う。検索制御部２０３は、検索履歴制御部２０４を介して、検索条件ＤＢ２０５に格納されたアプリ情報テーブル５０１から検索対応５０４がＹｅｓのアプリケーションの一覧をタイムライン制御部２２０に返す。タイムライン制御部２２０は、取得したアプリケーションの一覧を図１１Ｂの領域１１１１のように表示を行う。領域１１１０に表示される検索キーワード、下層検索条件、及び検索パスは、当該タイムライン履歴ボタンに応じて、タイムライン制御部２２０が履歴データ１２０５から読み出して、表示を行う。
【００６５】
例えば、図１１Ｂでボタン１１１３が押下されると、タイムライン制御部２２０がこれを受け付ける。受け付けたタイムライン制御部２２０は、領域１１１１のラジオボタンで選択されたアプリケーションに対応するアプリケーション制御部に対して、履歴データ１２０５を渡して、検索画面を表示するように指示する。指示を受け取ったアプリケーション制御部は、履歴データ１２０５を読み出して、指定された検索キーワード、下層検索条件、及び検索パスを復元して検索画面を表示する。
ボタン１１１４が押下されると、タイムライン制御部２２０がこれを受け付ける。受け付けたタイムライン制御部２２０は、領域１１１１のラジオボタンで選択されたアプリケーションに対応するアプリケーション制御部に対して、履歴データ１２０５を渡して、検索を実行するように指示する。指示を受け取ったアプリケーション制御部は、履歴データ１２０５を読み出して、指定された検索キーワード、及び下層検索条件、検索パスを復元して、検索制御部２０３に検索を指示する。前述と同じように、検索履歴制御部２０４で検索が実行されて、検索結果がアプリケーション制御部に返されて、アプリケーション制御部が検索結果の表示を行う。
【００６６】
図１３のフローチャートを用いて本発明の第二の実施形態に係るタイムラインへの検索履歴の登録処理の詳細について説明する。図１３は、タイムライン制御部２２０、検索制御部２０３、及び検索履歴制御部２０４の処理を示したフローチャートである。タイムライン制御部２２０、検索制御部２０３、及び検索履歴制御部２０４の処理は、ＲＯＭ１１３に記憶されたプログラムがＣＰＵ１１１によって制御されることにより実行される。タイムライン制御部２２０、検索制御部２０３、及び検索履歴制御部２０４は、以下のフローを実行するための要求を各制御部に要求する。なお、図１３のフローチャートにおいて、図８の検索履歴の登録処理のフローチャートと同様の処理については、同一の符号を付与し、説明は割愛する。
【００６７】
図８で説明したようにＳ８１１までの処理が完了して、検索履歴が、検索条件ＤＢ２０５に検索履歴テーブルが登録された後、Ｓ１３０１へ進み、タイムラインへの検索履歴の登録処理が実施される。Ｓ１３０１では、検索制御部２０３が、タイムライン制御部２２０に、アプリＩＤ、検索キーワード、下層検索条件、及び検索パス等の登録に必要な情報を渡し、タイムラインの登録を指示する。タイムライン制御部２２０は、タイムライン履歴ＤＢ２２１を探索して、タイムラインテーブル１２０１に登録された各レコードのＯｒｄｅｒを１ずつ増加（インクリメント）させる。なお、本フローチャートでは、検索制御部２０３がタイムラインの登録を指示する例を示しているが、アプリケーションからタイムラインへの登録を指示する形態でもよい。具体的には、Ｓ８１１の処理の後に、検索依頼元のアプリケーションに制御を戻し、当該アプリケーションのアプリケーション制御部からタイムライン制御部２２０へタイムラインへの登録を指示する。Ｓ１３０２では、タイムライン制御部２２０が、Ｓ１３０１で検索制御部２０３から受け取った情報をＯｒｄｅｒ１２０２＝１で、タイムラインテーブル１２０１に追加を行う。Ｓ１３０３では、タイムライン制御部２２０がタイムラインの保存上限を超えているか確認する。上限を超えている場合（Ｙｅｓ）は、Ｓ１３０４へ進み、上限を超えていない場合は（Ｎｏ）、処理を終了する。Ｓ１３０４では、タイムライン制御部２２０が、タイムラインテーブル１２０１の中でＯｒｄｅｒが一番大きいレコードの削除を行い、処理を終了する。
【００６８】
なお、図１３のフローチャートにおいては、検索履歴テーブルとタイムラインテーブルの両方に検索履歴を登録する例で説明したが、タイムラインテーブルだけの登録であっても構わない。また、タイムラインテーブルに検索キーワード、下層検索条件、及び検索パスを登録するのでなく、対応する検索履歴テーブルへの参照情報を保存する形態でも構わない。
【００６９】
図１４のフローチャートを用いて本発明の第二の実施形態に係るタイムラインでの検索履歴の表示処理の詳細について説明する。図１４は、タイムライン制御部２２０、検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部の処理を示したフローチャートである。タイムライン制御部２２０、検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部の処理は、ＲＯＭ１１３に記憶されたプログラムがＣＰＵ１１１によって制御されることにより実行される。タイムライン制御部２２０、検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部は、以下のフローを実行するための要求を各制御部に要求する。本フローチャートは、図１１Ａでタイムライン履歴ボタンが押下されたときの処理で、図１１Ｂの検索履歴のタイムラインにおいて、領域１１１１の検索対応アプリケーション一覧を表示する動作を説明するものである。
【００７０】
Ｓ１４０１で、タイムライン制御部２２０が、タイムラインテーブル１２０１の中で、押下されたタイムライン履歴ボタンのＯｒｄｅｒに対応するレコードのアプリＩＤ１２０３、ａｃｔｉｏｎ１２０４、及び履歴データ１２０５を取得する。Ｓ１４０２では、タイムライン制御部２２０が、Ｓ１４０１で取得したａｃｔｉｏｎ１２０４が、ｓｅａｒｃｈか判定する。ｓｅａｒｃｈである場合は（Ｙｅｓ）、Ｓ１４０４へ進む。ｓｅａｒｃｈでない場合、すなわちｅｘｅｃｕｔｅの場合は（Ｎｏ）、Ｓ１４０３へ進む。Ｓ１４０３では、この履歴は検索履歴では無いため、タイムライン制御部２２０は。Ｓ１４０１で取得したアプリＩＤ１２０３に対応するアプリケーション制御部に、タイムラインに記録された履歴の復元作業の指示を行う。Ｓ１４０３の処理は、本実施形態の本質では無いため、詳細な説明は割愛する。Ｓ１４０４では、タイムライン制御部２２０が、履歴データ１２０５に含まれる検索パスを取得する。Ｓ１４０５で、タイムライン制御部２２０が、Ｓ１４０４で取得した検索パスが存在しているか確認する。具体的には、検索パスがＭＦＰ１０１のローカルのパスか、ネットワーク上のファイルサーバのパスか、メモリメディアのパスなのかを確認して、アクセスできるか確認を行う。ＭＦＰ１０１のローカルのパス、もしくは、メモリメディアのパスであれば、記憶装置Ｉ／Ｆ１１６経由で記憶装置１２０に所定のパスが存在するか確認を行う。検索パスが、ネットワーク上のファイルサーバのパスであれば、通信Ｉ／Ｆコントローラ１１７を介して、ファイルサーバに所定のパスが存在するか確認を行う。検索パスが存在していれば（Ｙｅｓ）、Ｓ１４０６へ進む。検索パスが存在していなければ（Ｎｏ）、Ｓ１４１６へ進む。Ｓ１４１６では、タイムライン制御部２２０が、検索パスにアクセスできない旨のエラーをディスプレイ１１９に表示して、処理を終了する。
【００７１】
Ｓ１４０６では、タイムライン制御部２２０が、タイムライン履歴ボタンが押下された時間が一定時間以上か確認する。一定時間以上押下されていた場合は（Ｙｅｓ）、Ｓ１４０９へ進み、一定時間以上押下されていない場合は（Ｎｏ）、Ｓ１４０７へ進む。Ｓ１４０７は、タイムライン履歴ボタンの押下が短時間であるため、検索履歴が登録されたときに検索が実行されたアプリケーションでの検索履歴の復元の指示が行われた場合の処理である。Ｓ１４０７では、タイムライン制御部２２０が、検索対象アプリケーションとしてＳ１４０１で取得したアプリＩＤ１２０３を設定し、Ｓ１４０８へ進む。Ｓ１４０９では、タイムライン制御部２２０が、アプリ一覧取得を行う。具体的には、タイムライン制御部２２０が検索制御部２０３へ検索対応のアプリ一覧取得を指示する。検索制御部２０３は、更に検索履歴制御部２０４に検索対応アプリ一覧取得を指示して、検索履歴制御部２０４が、検索条件ＤＢ２０５のアプリ情報テーブル５０１で、検索対応５０４がＹｅｓのアプリケーションの一覧を返す。Ｓ１４１０では、タイムライン制御部２２０が、Ｓ１４０９で取得した検索対応のアプリケーション一覧を表示する。Ｓ１４１１では、タイムライン制御部２２０が、検索履歴復元の指示入力（例えばボタン１１１３又は１１１４の押下）が行われたか確認する。検索履歴復元の指示入力が行われた場合（Ｙｅｓ）は、Ｓ１４１２へ進む。検索履歴復元の指示入力が行われていない場合（Ｎｏ）は、Ｓ１４１１へ戻る。Ｓ１４１２では、タイムライン制御部２２０が、指定された検索対象アプリケーションを取得して、対応するアプリＩＤを検索対象アプリケーションとして設定を行う。Ｓ１４１３は、タイムライン制御部２２０が、検索履歴復元の指示入力が、検索実行を行うか否かを判断する。検索実行を行う（例えばボタン１１１４の押下）と判断した場合は（Ｙｅｓ）、Ｓ１４１４へ進む。検索実行を行わない（例えばボタン１１１３の押下）と判断した場合、すなわち検索履歴の復元だけを行う場合は（Ｙｅｓ）、Ｓ１４０８へ進む。
【００７２】
Ｓ１４０８では、タイムライン制御部２２０が、検索対象アプリケーションで設定されたアプリＩＤに対応するアプリケーション制御部に、履歴データ１２０５に含まれる検索キーワード、下層検索条件、及び検索パスを渡して、検索画面の復元を指示する。アプリケーション制御部は、指定された検索履歴に従って、検索画面を復元して、表示を行い、処理を終了する。Ｓ１４１４は、タイムライン制御部２２０が、検索制御部２０３に対して、履歴データ１２０５に含まれる検索キーワード、下層検索条件、及び検索パスを渡して、検索の実行を指示して検索を行う。Ｓ１４１５では、タイムライン制御部２２０は、Ｓ１４１４で実行した検索結果を検索対象アプリケーションで設定されたアプリＩＤに対応するアプリケーション制御部に渡し、検索結果を表示するように指示を行い、アプリケーション制御部が表示する。
本実施形態によれば、各アプリケーション画面に入らずにメインメニューのタイムラインから検索履歴を復元することが可能になる。また、検索履歴を復元するときに、検索履歴に登録した検索を実施したアプリケーションだけでなく、別の検索に対応したアプリケーションを選択して同一の検索条件で検索を実行することができる。
【００７３】
なお、第一の実施形態でのアプリケーション内での検索履歴の復元の際に、本実施形態と同様に検索するアプリケーションを選択する仕組みを設けて、選択されたアプリケーションで検索履歴を復元するようにしてもよい。
【００７４】
＜第三の実施形態＞
次に本発明の第三の実施形態について説明する。第三の実施形態は、検索条件の履歴だけでなく、検索の実行結果も合わせて保存する場合の例である。検索結果の保存は、結果の件数が数千、数万になることもあるため、検索条件の保存に比べてサイズが大きくなる。そのため、検索条件を保存したすべての検索結果をＭＦＰ１０１の記憶領域に保存するのは好ましくない。本実施形態では、検索結果として全アプリケーションで、３つ分だけ保存できるものとして説明する。
【００７５】
検索結果は、図１５Ａに示す検索結果テーブル１５０１で管理され、ＭＦＰ１０１の記憶装置１２０のＨＤＤなどに格納される。検索結果テーブル１５０１は、ＩＤ１５０２、検索結果ファイルパス１５０３、検索実行日時１５０４、及び検索条件１５０５の各項目を含む。ＩＤ１５０２は、ＵＵＩＤなどのように他と被ることが無い一意なＩＤである。本実施形態では、説明を簡単にするため、ＩＤ１５０２が４桁の値である場合を例として説明する。検索結果ファイルパス１５０３は、検索結果が格納されたファイルのパスが設定される。検索条件１５０５は、検索キーワード、下層検索条件、及び検索パスが格納された内容となる。検索結果ファイルは、図１５Ｂのように、検索条件にヒットしたファイルやフォルダのパス、ファイルであるかフォルダであるかの種別、サイズ、及び更新日時など検索結果の表示に必要な情報リストが格納される。
【００７６】
図１６は、本実施形態での検索履歴テーブルの一例であり、図６で説明した検索履歴テーブルと同じ内容のものは同一の符号を付与し、説明は省略する。なお、図１６においては、説明のために「スキャンして保存」アプリの検索履歴テーブルのみを示しているが、検索に対応している他のアプリケーションの検索履歴テーブルも同様である。検索結果１６０１は、検索結果ＩＤである。検索結果１６０１は、検索結果テーブル１５０１の対応する検索結果のＩＤ１５０２に格納される値である。検索履歴テーブル６０１の各レコードは、検索結果テーブル１５０１の検索結果に紐づけられて記録される。検索制御部２０３が検索を実行したときに、検索結果を検索履歴制御部２０４に渡して、検索履歴制御部２０４が検索結果を検索結果テーブル１５０１に保存する。具体的には、このとき、検索結果テーブル１５０１に登録するための一意なＩＤが発行され、ＩＤ１５０２に設定される。また、検索結果を図１５Ｂのようにファイル化して、任意のＭＦＰ１０１内のストレージに保存し、そのパスを検索結果ファイルパス１５０３に設定する。検索実行日時１５０４には、現在日時を設定し、検索条件１５０５には、検索に用いた検索キーワード、下層検索条件、及び検索パスが格納される。なお、本実施形態では検索結果をファイル化しているが、検索結果を直接ＤＢに格納する形態でも構わない。
【００７７】
更に、検索履歴制御部２０４が、この検索の検索履歴を登録する際に、このＩＤ１５０２の値を検索結果１６０１に設定する。これにより、検索履歴テーブル６０１のレコードを参照するときに、検索結果１６０１の値を取得し、この検索結果１６０１の値をキーにして、検索結果テーブルのＩＤ１５０２を探索することにより、検索履歴から、検索結果を取得することができる。
【００７８】
先に説明したように本実施形態では、検索結果として３つまで保持するため、３回以上検索が実行されたときは、検索履歴制御部２０４が、検索結果を登録する際に、一番古い検索実行日時１５０４のレコードを削除する。
【００７９】
文書保存制御部２１３は、図７Ａで、検索実行を指示するボタン７０３が押下されたことを受け付けたときに、そのときに用いた検索履歴に紐づけられた検索結果が存在していた場合は、図１７の確認ダイアログを表示する。図１７の確認ダイアログには検索を実行したときの日時が表示される。ボタン１７０１は検索結果表示ボタンである。ＣＰＵ１１１は、ボタン１７０１の押下を受け付けると、検索を実行せずに、以前に検索を行った検索結果を表示する。ボタン１７０２は、検索実行ボタンである。ＣＰＵ１１１は、ボタン１７０２の押下を受け付けると、指定された検索履歴で、検索を実行する。なお、ＣＰＵ１１１は、検索実行日時１５０４が現在日時より一定期間以上前の場合には、検索結果を表示しない。つまり、ＣＰＵ１１１は、確認ダイアログを表示しないで、検索を実行する。これは、例えば１年以上前の検索結果が残っていて、それを表示したとしても変更されている可能性がより高いため、古い検索結果を表示しないようにするためである。本発明は、検索結果に対して、表示するかしないかの判定のための期間や、古い検索結果を表示するか否かなどを、ユーザが設定可能とする形態でも構わない。
【００８０】
図１８Ａ及び図１８Ｂのフローチャートを用いて本発明の第三の実施形態に係る検索履歴と共に検索結果を登録する処理の詳細について説明する。図１８Ａ及び図１８Ｂは、検索制御部２０３、及び検索履歴制御部２０４の処理を示したフローチャートである。検索制御部２０３、及び検索履歴制御部２０４の処理は、ＲＯＭ１１３に記憶されたプログラムがＣＰＵ１１１によって制御されることにより実行される。検索制御部２０３、及び検索履歴制御部２０４は、以下のフローを実行するための要求を各制御部に要求する。なお、図１８Ａ及び図１８Ｂのフローチャートにおいて、図８の検索履歴の登録処理のフローチャートと同様の処理については、同一の符号を付与し、説明は割愛する。
【００８１】
Ｓ８０１で、検索制御部２０３が検索を実行した後に、Ｓ１８０１へ進む。Ｓ１８０１では、検索制御部２０３が検索結果をファイルとして保存する。Ｓ１８０２では、検索制御部２０３が検索履歴制御部２０４に指示し、検索結果テーブル１５０１に同一の検索条件が無いか判断する。具体的には、検索制御部２０３から検索履歴制御部２０４に検索に利用した検索キーワード、下層検索条件、検索パスを渡す。検索履歴制御部２０４は、検索結果テーブル１５０１に格納された各レコードの検索条件１５０５を順次参照して、渡された検索キーワード、下層検索条件、検索パスと一致するかを確認する。一致するものが存在する場合は（Ｙｅｓ）、Ｓ１８０３へ進む。一致するものが存在しない場合は（Ｎｏ）、Ｓ１８０４へ進む。Ｓ１８０３では、検索履歴制御部２０４が、検索結果テーブル１５０１から一致したレコードを削除して、Ｓ１８０６へ進む。Ｓ１８０４では、検索履歴制御部２０４が、検索結果テーブル１５０１に格納されたレコードの件数が、格納上限を超えているかを確認する。上限を超えている場合は（Ｙｅｓ）、Ｓ１８０５へ進み、上限を超えていない場合は（Ｎｏ）、Ｓ１８０６へ進む。Ｓ１８０５では、検索履歴制御部２０４が、検索結果テーブル１５０１に格納された一番古い検索結果のレコードを削除する。Ｓ１８０６では、検索履歴制御部２０４が、検索結果テーブル１５０１のＩＤ１５０２に格納するための一意なＩＤを発行する。Ｓ１８０７では、検索履歴制御部２０４が、検索結果テーブル１５０１のＩＤ１５０２、検索結果ファイルパス１５０３、検索条件１５０５に登録を行う。ＩＤ１５０２には、Ｓ１８０６で発行されたＩＤが設定される。検索結果ファイルパス１５０３は、Ｓ１８０１で保存した検索結果ファイルのパスが設定される。検索条件１５０５には、検索制御部２０３から指定された検索履歴の内容が登録される。Ｓ１８０８では、検索履歴制御部２０４が検索実行日時１５０４に現在日時を登録して、Ｓ８０２へ進む。
【００８２】
Ｓ８０７では、検索履歴制御部２０４が、検索キーワード、下層検索条件、検索パスを検索履歴として登録を行った後に、Ｓ１８０９へ進む。Ｓ１８０９では、検索履歴制御部２０４が当該アプリＩＤに対応する検索履歴テーブルのＯｒｄｅｒ＝１の項目の検索結果に、Ｓ１８０６で発行されたＩＤの登録を行い、Ｓ８０８へ進む。
【００８３】
図１９Ａ及び図１９Ｂのフローチャートを用いて本発明の第三の実施形態に係る検索履歴と検索結果の復元処理の詳細について説明する。図１９Ａ及び図１９Ｂは、検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部の処理を示したフローチャートである。検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部の処理は、ＲＯＭ１１３に記憶されたプログラムがＣＰＵ１１１によって制御されることにより実行される。検索制御部２０３、検索履歴制御部２０４、及びアプリケーション制御部は、以下のフローを実行するための要求を各制御部に要求する。なお、図１９Ａ及び図１９Ｂのフローチャートにおいて、図１０の検索履歴の登録処理のフローチャートと同様の処理については、同一の符号を付与し、説明は割愛する。
【００８４】
Ｓ１００８で、アプリケーション制御部が、検索実行まで行うと判断した場合（Ｙｅｓ）、Ｓ１９０１へ進む。検索実行まで行わない判断した場合は（Ｎｏ）、Ｓ１００９へ進む。
【００８５】
Ｓ１９０１では、検索履歴制御部２０４が、検索履歴テーブルから復元対象として指定されている検索履歴を探索し、該当する検索結果１６０１を取得する。Ｓ１９０２では、検索履歴制御部２０４が、検索結果テーブル１５０１のＩＤ１５０２とＳ１０９１で取得した検索結果１６０１が一致するか確認する。一致しているものがあった場合は（Ｙｅｓ）、Ｓ１９０３へ進み、一致しているものがない場合は（Ｎｏ）、Ｓ１０１０へ進む。Ｓ１９０３では、検索履歴制御部２０４が、Ｓ１９０１で確認したＩＤ１５０２のレコードにおいて、検索実行日時１５０４を取得する。Ｓ１９０４では、検索履歴制御部２０４が、Ｓ１９０３で取得した検索実行日時１５０４と現在日時の差が一定以内か確認を行う。一定以内であれば（Ｙｅｓ）、Ｓ１９０５へ進み、一定以内でなければ（Ｎｏ）、Ｓ１０１０へ進む。Ｓ１９０５では、検索履歴制御部２０４が、図１７のような検索結果確認画面を表示する。Ｓ１９０６では、検索履歴制御部２０４が、保存されている検索結果を表示するように指示が行われたか（例えばボタン１７０１の押下の受付）否か（例えばボタン１７０２の押下の受付）を判断する。保存されている検索結果を表示する場合は（Ｙｅｓ）、Ｓ１９０７へ進む。保存されている検索結果を表示しない場合（Ｎｏ）、すなわち、指定された条件で再度検索を実行する場合は、Ｓ１０１０へ進む。Ｓ１９０７では、検索履歴制御部２０４が、検索結果テーブル１５０１の検索結果ファイルパス１５０３を取得して、該ファイルパスへアクセスして検索結果を読み出す。Ｓ１９０８では、検索履歴制御部２０４が、Ｓ１９０７で読み出した検索結果を、検索制御部２０３を介して該当するアプリケーション処理部に返し、Ｓ１０１４へ進む。前述の通り、Ｓ１０１４では、アプリケーション処理部は、受け取った検索結果の表示を行って、処理を終了する。
【００８６】
本実施形態によれば、検索履歴と共に検索結果が格納されることにより、検索結果が残っている場合には、検索を実行せずに検索結果を素早く表示することが可能となる。ユーザが過去の検索結果を表示するか、検索を実行するかを決定することができる。また、検索を実行した時間が保存されるので、所定の時間を経過した検索結果を表示しないようにすることも可能となる。
【００８７】
以上説明したように、本発明によれば、アプリケーションを跨る場合でも、以前に検索した別のアプリケーションの検索履歴を用いて検索を行うことができる。このため、ユーザがパスの深い階層を覚えたり、階層を辿ったりする必要がなくなり、ユーザの利便性を高めることができる。
【００８８】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８９】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００９０】
１０１  ＭＦＰ
１１１  ＣＰＵ
【図１】
2020178215.tif 000003
【図２】
2020178215.tif 000004
【図３】
2020178215.tif 000005
【図４Ａ】
2020178215.tif 000006
【図４Ｂ】
2020178215.tif 000007
【図４Ｃ】
2020178215.tif 000008
【図５】
2020178215.tif 000009
【図６Ａ】
2020178215.tif 000010
【図６Ｂ】
2020178215.tif 000011
【図７Ａ】
2020178215.tif 000012
【図７Ｂ】
2020178215.tif 000013
【図７Ｃ】
2020178215.tif 000014
【図７Ｄ】
2020178215.tif 000015
【図８】
2020178215.tif 000016
【図９】
2020178215.tif 000017
【図１０】
2020178215.tif 000018
【図１１Ａ】
2020178215.tif 000019
【図１１Ｂ】
2020178215.tif 000020
【図１２】
2020178215.tif 000021
【図１３】
2020178215.tif 000022
【図１４】
2020178215.tif 000023
【図１５Ａ】
2020178215.tif 000024
【図１５Ｂ】
2020178215.tif 000025
【図１６】
2020178215.tif 000026
【図１７】
2020178215.tif 000027
【図１８Ａ】
2020178215.tif 000028
【図１８Ｂ】
2020178215.tif 000029
【図１９Ａ】
2020178215.tif 000030
【図１９Ｂ】
2020178215.tif 000031
【図２０】
2020178215.tif 000032