(57)【特許請求の範囲】
【請求項１】
オペレータによる操作を受けてドロアを開放させる売上データ処理装置であって、
オペレータによるドロアを開放させる複数種の操作毎に各操作の操作時間の履歴を取得する履歴取得手段と、
前記ドロアを開放させる複数種の操作毎に予め設定された標準的操作時間のうち、前記履歴から特定される前記複数種の操作に対応する前記標準的操作時間を取得する基準情報取得手段と、
前記履歴から特定される前記複数種の操作毎に、前記各操作の操作時間と、前記基準情報取得手段により取得された前記標準的操作時間との差異を求め、前記履歴から特定される各操作の中に、前記操作時間が前記標準的操作時間より一定以上長い時間を要した操作が存在する場合、異常なドロア操作として検出する異常検出手段と、
を備える売上データ処理装置。
【請求項２】
前記履歴には、前記オペレータによる操作の操作回数を含み、
前記ドロアを開放させる操作毎に予め設定された標準操作の基準は、操作毎に設定された標準的操作回数を含み、
前記異常検出手段は、前記履歴から特定される各操作の中に、前記操作回数が前記標準的操作回数より一定以上多い操作が存在する場合、異常なドロア操作として検出する、
ことを特徴とする請求項１に記載の売上データ処理装置。
【請求項３】
複数のオペレータのうち所定のオペレータによるログイン操作を受け付け、
前記ドロアを開放させる操作毎に予め設定された標準操作の基準は、前記複数のオペレータ毎にそれぞれ設定されており、
前記履歴取得手段は、前記ログイン操作をした前記所定のオペレータによる操作の履歴を取得し、
前記基準情報取得手段は、前記ログイン操作をした前記所定のオペレータについての、前記標準操作の基準を取得し、
前記異常検出手段は、前記ログイン操作をした前記所定のオペレータについて、前記履歴から特定される前記操作毎に前記標準操作の基準との差異を求め、所定以上の差異がある場合には前記ドロアの異常として検出する、
ことを特徴とする請求項１又は２に記載の売上データ処理装置。
【請求項４】
オペレータによる操作を受けてドロアを開放させる売上データ処理装置のコンピュータを制御するためのプログラムであって、
前記コンピュータを、
前記オペレータによるドロアを開放させる複数種の操作毎に各操作の操作時間の履歴を取得する履歴取得手段、
前記ドロアを開放させる複数種の操作毎に予め設定された標準的操作時間のうち、前記履歴から特定される前記複数種の操作に対応する前記標準的操作時間を取得する基準情報取得手段、
前記履歴から特定される前記複数種の操作毎に、前記各操作の操作時間と、前記基準情報取得手段により取得された前記標準的操作時間との差異を求め、前記履歴から特定される各操作の中に、前記操作時間が前記標準的操作時間より一定以上長い時間を要した操作が存在する場合、異常なドロア操作として検出する異常検出手段、
として機能させるようにしたコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、売上データ処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来より、デパートやスーパー等の小売店では、販売員は、顧客と対面しながら、商品の代金を計算して、計算結果を店の売上として記録する、といった一連の作業をしている。このような作業を電子化すべく、近年、ＥＣＲ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃａｓｈ  Ｒｅｓｉｓｔｅｒ）、ＰＯＳ（Ｐｏｉｎｔ  ｏｆ  Ｓａｌｅｓ）端末等の売上データ処理装置が普及している。即ち、販売員は、オペレータとして、売上データ処理装置を操作しながら、接客する。
【０００３】
売上データ処理装置には、売上金を保管するためのドロアと呼ばれる引き出しが設けられている。ドロアは、通常閉じられており、オペレータによる所定の操作がなされたときのみ、売上データ処理装置の制御により開けられる。なお、一度開けられたドロアは、オペレータの手動操作により閉じられる。
【０００４】
ドロアは、一般的には、オペレータによる所定の作業に伴い開閉される。具体的には、顧客から受け取った代金をドロアに収納する作業や、顧客に渡す釣銭をドロアから引き出す作業に伴い、ドロアは開閉される。従って、このような所定の作業に伴うドロアの開閉は短時間であることから、長時間ドロアが開放されていた場合には、ドロアから不正に現金が引き出された疑いがある。
そこで、ドロアの開放時間が基準値を超えると警告を発する技術が、特許文献１や特許文献２に開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０２−５４３９７号公報
【特許文献２】特開平０６−４７６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１や特許文献２の技術のように単にドロアの開放時間だけに着目しても、ドロアから不正に現金が引き出された疑いがある売上データ処理装置の各種操作を、異常なドロア操作として適切に検出することは困難である。
【０００７】
本発明の課題は、ドロアから不正に現金が引き出された疑いのある操作を、異常なドロア操作として検出することである。
【課題を解決するための手段】
【０００８】
本発明の売上データ処理装置は、
オペレータによる操作を受けてドロアを開放させる売上データ処理装置であって、
オペレータによるドロアを開放させる複数種の操作毎に各操作の操作時間の履歴を取得する履歴取得手段と、
前記ドロアを開放させる複数種の操作毎に予め設定された標準的操作時間のうち、前記履歴から特定される前記複数種の操作に対応する前記標準的操作時間を取得する基準情報取得手段と、
前記履歴から特定される前記複数種の操作毎に、前記各操作の操作時間と、前記基準情報取得手段により取得された前記標準的操作時間との差異を求め、前記履歴から特定される各操作の中に、前記操作時間が前記標準的操作時間より一定以上長い時間を要した操作が存在する場合、異常なドロア操作として検出する異常検出手段と、
を備える。
【発明の効果】
【０００９】
本発明によれば、ドロアから不正に現金が引き出された疑いのある操作を、異常なドロア操作として適切に検出することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る売上データ処理装置の外観構成を示す斜視図である。
【図２】ファンクションの一例を表形式で示す図である。
【図３】図１の売上データ処理装置のハードウェア構成を示すブロック図である。
【図４】図３の売上データ処理装置の機能的構成のうち、履歴生成処理及びドロア異常検出処理を実行するための機能的構成を示す機能ブロック図である。
【図５】操作履歴ファイルの構造例を示す図である。
【図６】ドロア開閉履歴ファイルの構造例を示す図である。
【図７】操作履歴ファイルの構造例を示す図である。
【図８】ドロア開閉管理テーブルの構造例を示す図である。
【図９】オペレータマスターファイルの構造例を示す図である。
【図１０】ファンクションマスターファイルの構造例を示す図である。
【図１１】ドロアオープン異常レポートの一例を示す図である。
【図１２】図３及び図４の売上データ処理装置が実行する履歴生成処理のうち、操作履歴ファイルを生成する処理の流れの一例を説明するフローチャートである。
【図１３】ドロア異常検出処理の流れの一例を説明するフローチャートである。
【図１４】図１３のドロア異常検出処理のうちステップＳ２２の中間マージファイル作成処理の詳細な流れの一例を説明するフローチャートである。
【図１５】図１３のドロア異常検出処理のうちステップＳ２３のドロアオープン異常時間検出処理の詳細な流れの一例を説明するフローチャートである。
【図１６】図１３のドロア異常検出処理のうちステップＳ２３のドロアオープン異常時間検出処理の詳細な流れの一例を説明するフローチャートである。
【図１７】図１６のステップＳ６５の許可時間探索処理の詳細な流れを説明するフローチャートである。
【図１８】図１３のドロア異常検出処理のうちステップＳ２４のドロアオープン異常回数検出処理の詳細な流れの一例を説明するフローチャートである。
【図１９】図１８のステップＳ１２８の許可回数探索処理の詳細な流れを説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を用いて説明する。
【００１２】
図１は、本発明の一実施形態に係る売上データ処理装置の外観構成を示す斜視図である。
【００１３】
図１に示すように、売上データ処理装置１０は、数字キー２１と、ファンクションキー２２と、表示部２３と、印刷部２４と、ドロア２５と、を備えている。
【００１４】
数字キー２１は、図示はしないが各種数字がそれぞれ印字された複数のキーから構成されている。これらの複数のキーの各々には、印字された数字を売上データ処理装置１０の本体に入力する機能が割り当てられている。即ち、オペレータは、数字キー２１のうち、所望の数字が印字されたキーを押下操作することで、当該所望の数字を売上データ処理装置１０に対して入力することができる。
【００１５】
ファンクションキー２２は、図示はしないが各種ファンクション名称がそれぞれ印字された複数のキーから構成されている。これらの複数のキーの各々には、印字された名称のファンクションを売上データ処理装置１０の本体に対して通知する機能が割り当てられている。
ここで、ファンクションとは、オペレータが売上データ処理装置１０を操作して行う作業を意味している。実行可能なファンクションはオペレータ毎に決定されており、オペレータは、ファンクションキー２２のうち、現在行う又は直近で行ったファンクション名称が印字されたキーを押下操作する。売上データ処理装置１０は、押下操作された当該キーに印字されたファンクションを、オペレータが現在行う又は直近で行ったファンクションとして認識する。
なお、ファンクションの詳細については、図２を参照して後述する。
【００１６】
表示部２３は、液晶ディスプレイ等で構成され、オペレータの作業にとって必要な各種情報を画像として表示する。
印刷部２４は、オペレータの作業にとって必要な各種情報や、客に手渡すレシート等を紙媒体に印字して出力する。
ドロア２５は、売上金を保管するための引き出しであり、通常閉じられているが、オペレータによる所定の操作がなされると、売上データ処理装置１０の制御により開けられる。なお、一度開けられたドロア２５は、オペレータの手動操作により閉じられる。
【００１７】
ここで、オペレータによる売上データ処理装置１０の操作（以下、適宜「売上データ処理用操作」と呼ぶ）の概略について説明する。
【００１８】
オペレータは、先ず、売上データ処理用操作を開始するために、数字キー２１等を押下操作して、オペレータ番号を入力することで、ログイン操作をする。
売上データ処理装置１０は、入力されたオペレータ番号が登録されているか否かを確認し、登録されている場合にはログイン処理を実行し、登録されていない場合にはログイン処理を禁止する。売上データ処理装置１０は、ログイン中のオペレータ番号を内部のメモリ（後述する図３の記憶部４０等）に記憶する。
【００１９】
ログイン処理が実行されると、オペレータは、予め設定されている１以上のファンクションを使用できるようになる。即ち、オペレータは、これらのファンクションに伴い、売上データ処理装置１０に対する各種キー操作を実行できるようになる。
【００２０】
図２は、ファンクションの一例を表形式で示す図である。
図２の表においては、所定の行は、所定の１のファンクションに対応している。即ち、所定の行において、第１列の項目には、当該行に対応付けられたファンクションを一意に示すコード（以下、「ファンクションコード」と呼ぶ）が記載されている。当該行の第２列の項目には、当該行に対応付けられたファンクションの名称（以下、「ファンクション名称」と呼ぶ）が記載されている。当該行の第３列の項目には、当該行に対応付けられたファンクションの具体的な内容（以下、「ファンクション内容」と呼ぶ）が記載されている。
例えば、１行目のファンクションは、「０００１」のファンクションコードを有し、「釣銭準備」というファンクション名称を有していることがわかる。また、当該「釣銭準備」についてのファンクション内容は、「開店前に売上データ処理装置１０に釣銭を入れるときに使用する。用意した釣銭の合計金額を数字キー２１で入力してファンクションキー２２の釣銭準備キーを押すと、ドロア２５が自動で開くので、釣銭をドロア２５に入れてからドロア２５を手で閉める。」であることがわかる。
なお、釣銭準備キーとは、ファンクションキー２２のうち、「釣銭準備」というファンクション名称が印字されたキーをいう。以下、ファンクションキー２２の他のキーについても、印字されたファンクション名称を頭に冠して表現することにする。
【００２１】
ここで、ファンクションを伴う各種キー操作の具体例として、代金が５００円の第１商品と、代金が２５０円の第２商品とを客が購入する場合に、客の支払額が店舗の売上額として登録されるまでに行われる一連のキー操作について説明する。
【００２２】
この場合、オペレータは、数字キー２１等を押下操作して、第１商品の代金として５００の数字を入力する。同様に、オペレータは、数字キー２１等を押下操作して、第２商品の代金として２５０の数字を入力する。すると、売上データ処理装置１０は、第１商品の代金５００円と第２商品の代金２５０円とを内部のメモリに記憶する。
【００２３】
なお、図示はしないが、売上データ処理装置１０は、各キーに各商品をそれぞれ割り当てて、各商品の代金を内部又は外部から取得する構成を取ることもできる。このような構成を取る売上データ処理装置１０に対して、オペレータは、数字キー２１の代わりに、第１商品が割り当てられたキーを押下操作する。同様に、オペレータは、第２商品が割り当てられたキーを押下操作する。すると、売上データ処理装置１０は、第１商品の代金５００円と第２商品の代金２５０円とを取得して内部のメモリに記憶する。
【００２４】
この段階で、オペレータが、第１商品と第２商品の各代金の合計額から、５０円の値引をするものとする。この場合、図２の２行目のファンクション、即ち「値引」のファンクションがオペレータにより実行されることになる。
具体的には、２行目の「値引」についてのファンクション内容によれば、売上する商品の入力中（各商品の代金の入力中）に、オペレータは、数字キー２１等を押下操作して、値引額として５０の数字を入力する。すると、売上データ処理装置１０は、商品の代金（本例では第１商品の代金５００円と第２商品の代金２５０円）とともに、値引額（本例では−５０円）を内部のメモリに記憶する。
そして、オペレータは、ファンクションキー２２の値引キーを押下操作する。これにより、売上データ処理装置１０は、「値引」のファンクションが実行されたと認識し、これまでに入力された合計額から値引額を減算し、減算結果を表示部２３に表示させる。具体的には本例では、売上データ処理装置１０は、５００円（第１商品の代金）＋２５０円（第２商品の代金）−５０円（値引額）を演算し、その演算結果、即ち７００円を示す画像（７００の数値の画像）を表示部２３に表示させる。
【００２５】
第１商品と第２商品を購買しようとしている客は、売上データ処理装置１０の表示部２３の表示から、支払額を視認することができる。例えば、支払額として上述の７００円が表示部２３に表示されており、客が、現金で１０００円をオペレータに受け渡したものとする。即ち、オペレータは、客からの預かり金として１０００円を受け取ったものとする。
この場合、図２の３行目のファンクション、即ち「現金」のファンクションがオペレータにより実行されることになる。
具体的には、３行目の「現金」についてのファンクション内容によれば、オペレータは、数字キー２１等を押下操作して、客からの預かり金額として１０００の数字を入力し、ファンクションキー２２の現金キーを押下操作する。
すると、売上データ処理装置１０は、「現金」のファンクションが実行されたと認識し、預かり金額から支払額を減算し、減算結果を釣銭額として表示部２３に表示させる。具体的には本例では、売上データ処理装置１０は、１０００円（預かり金額）から、７００円（支払額＝第１商品の代金＋第２商品の代金−値引額）を演算し、その演算結果、即ち釣銭額が３００円であることを示す画像（３００の数値の画像）を表示部２３に表示させる。
そして、売上データ処理装置１０は、ドロア２５を自動で開放させる。オペレータは、１０００円の預かり金をドロア２５に納め、３００円の釣銭をドロア２５から取り出して客に渡す。オペレータは、客に釣銭を渡したことをもって、「現金」のファンクションを完了させ、ドロア２５を手で閉める。
【００２６】
この間、売上データ処理装置１０は、店舗の売上金として７００円を内部のメモリに登録（記憶）する。また、売上データ処理装置１０は、上述の売上データ処理用操作の履歴（以下、「操作履歴」と呼ぶ）を保存する。なお、操作履歴の保存場所は、特に限定されず、売上データ処理装置１０の外部の装置（図示せぬサーバ等）でもよいが、本実施形態では内部のメモリ（後述する図３の記憶部４０等）が採用されている。
【００２７】
ここで、ファンクションは、上述した「値引」のようにドロア２５の開放が伴わないファンクションと、上述した「現金」のようにドロア２５の開放が伴うファンクションとに大別できる。そこで、本実施形態では、これらの２種類のファンクションを明確に区別すべく、ドロア２５の開放が伴わないファンクションに対しては「０」が設定され、ドロア２５の開放が伴うファンクションに対しては「１」が設定されるフラグが採用されている。このようなフラグを、以下、「ドロア自動オープンフラグ」と呼ぶ。
【００２８】
ドロア自動オープンフラグが「１」であるファンクションは、オペレータにとって定型操作の組み合わせにより実行される。例えば、ドロア２５の開閉に直目すれば、ドロア２５を開放するためにファンクションキー２２の押下という定型操作が行われ、その後、開放されたドロア２５を手で締めるという定型操作が行われる。このような所定のファンクションにおける一の定型操作又は複数の定型操作の組み合わせは、当該所定のファンクションの標準的な操作であるといえる。そこで、以下、所定のファンクションにおける一の定型操作又は複数の定型操作の組み合わせを、「所定のファンクションの標準操作」と呼ぶ。
【００２９】
所定のファンクションの標準操作が正常に行われる限り、当該所定のファンクションに伴うドロア２５の開閉時間は、ある程度のオペレータの個人差が存在するにしても、一定時間よりも短くなるはずである。換言すると、所定のファンクションの標準操作であるにも関わらず、ドロア２５の開閉時間が一定時間以上ならば、ドロア２５から不正に現金が引き出された疑いがある操作、即ち異常なドロア操作が行われたことになる。
また、所定のファンクションの標準操作が正常に行われる限り、当該所定のファンクションに伴うドロア２５の開閉回数は、ある程度のオペレータの個人差が存在するにしても、一定回数よりも少なくなるはずである。換言すると、所定のファンクションの標準操作であるにも関わらず、ドロア２５の開閉回数が一定回数以上ならば、ドロア２５から不正に現金が引き出された疑いがある操作、即ち異常なドロア操作が行われたことになる。
【００３０】
このように、所定のファンクションの標準操作に対して、ドロア２５の開閉時間についての一定時間や、ドロア２５の開閉回数についての一定回数といった、異常なドロア操作が行われたか否かを判定するための基準を予め設定しておくことが可能である。
なお、所定のファンクションは、当該所定のファンクションキーが押下操作なされた場合に実行可能になる。従って、ドロア自動オープンフラグが「１」となる所定のファンクションキーの押下操作は、ドロア２５を開放させる操作であると把握することができる。
このように把握した場合には、ドロア２５を開放させる操作毎に、当該操作により実行される所定のファンクションの標準操作の基準を予め設定しておくことが可能である。
【００３１】
この場合、売上データ処理装置１０は、次のような一連の処理を実行することができる。
即ち、売上データ処理装置１０は、オペレータによる各操作の履歴を取得する。
また、売上データ処理装置１０は、ドロア２５を開放させる操作毎に予め設定された標準操作の基準のうち、履歴から特定される操作についての標準操作の基準を取得する。
そして、売上データ処理装置１０は、履歴から特定される操作毎に、取得された標準操作の基準との差異を求め、所定以上の差異がある場合には異常なドロア操作として検出する。
なお、このような一連の処理を以下、「ドロア異常検出処理」と呼ぶ。
【００３２】
ここで、複数のオペレータが売上データ処理装置１０に対して操作をする可能性がある場合、全オペレータに対して一律に標準操作の基準が設定されるようにしてもよいが、オペレータの個人差に伴い、誤検出が発生したり、逆に精度よい検出が困難になったりする。
そこで、本実施形態では、オペレータ毎に標準操作の基準が個別にそれぞれ設定されている。これにより、誤検出を低減し、かつ精度よい検出が実現可能になる。
【００３３】
図３は、ドロア異常検出処理を実行可能な売上データ処理装置１０のハードウェア構成を示すブロック図である。
【００３４】
売上データ処理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３３と、バス３４と、入出力インターフェース３５と、入力部３６と、出力部３７と、ドロア制御部３８と、センサ部３９と、記憶部４０と、通信部４１と、ドライブ４２と、を備えている。
【００３５】
ＣＰＵ３１は、ＲＯＭ３２に記録されているプログラム、又は、記憶部４０からＲＡＭ３３にロードされたプログラムに従って各種の処理を実行する。
ＲＡＭ３３には、ＣＰＵ３１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【００３６】
ＣＰＵ３１、ＲＯＭ３２、及びＲＡＭ３３は、バス３４を介して相互に接続されている。このバス３４にはまた、入出力インターフェース３５も接続されている。入出力インターフェース３５には、入力部３６、出力部３７、ドロア制御部３８、センサ部３９、記憶部４０、通信部４１、及びドライブ４２が接続されている。
【００３７】
入力部３６は、上述した数字キー２１及びファンクションキー２２を含む各種キー及び各種スイッチ等で構成され、オペレータの押下操作に応じて各種情報を入力する。
出力部３７は、上述した表示部２３及び印刷部２４を含み、各種情報を出力する。
ドロア制御部３８は、ＣＰＵ３１の指示に従って、ドロア２５を開放する制御を実行する。なお、一度開放されたドロア２５は、オペレータの手動操作で閉められる。
センサ部３９は、赤外線センサ等によって構成され、ドロア２５の開閉状態を検出する。
記憶部４０は、ハードディスク、或いはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各種データを記憶する。
通信部４１は、インターネットを含むネットワークを介して他の装置との間で行う通信を制御する。
【００３８】
ドライブ４２には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア７１が適宜装着される。ドライブ４２によってリムーバブルメディア７１から読み出されたプログラムは、必要に応じて記憶部４０にインストールされる。
【００３９】
図４は、このような各構成要素を含む売上データ処理装置１０の機能的構成のうち、履歴生成処理及び上述のドロア異常検出処理を実行するための機能的構成を示す機能ブロック図である。
なお、履歴生成処理とは、オペレータによるレジ操作の履歴（ドロア２６の開閉の履歴含む）を示す履歴情報を生成して記録するまでの一連の処理をいう。
【００４０】
ＣＰＵ３１においては、主制御部１０１と、履歴情報生成部１０２と、ドロア異常検出部１０３と、異常情報出力制御部１０４と、が機能する。
記憶部４０の一領域として、基準情報記憶部１３１と、操作履歴情報記憶部１３２と、開閉履歴情報記憶部１３３と、統合履歴情報記憶部１３４と、が設けられている。
【００４１】
主制御部１０１は、履歴生成処理及び上述のドロア異常検出処理を実行する際に、売上データ処理装置１０全体の動作を制御する。
【００４２】
履歴情報生成部１０２は、履歴生成処理を実行すべく、操作履歴情報生成部１１１と、開閉履歴情報生成部１１２と、を備えている。
【００４３】
操作履歴情報生成部１１１は、オペレータによりファンクションキー２２のうちの任意のキーが押下操作される毎に、押下操作されたキーに対応するファンクションに関する操作の履歴を示す操作履歴情報を生成して、図５に示す操作履歴ファイルに格納する。
【００４４】
図５は、操作履歴ファイルの構造例を示す図である。
図５において、所定の行は、ファンクションキー２２のうちの任意のキーが押下操作された際に操作履歴情報生成部１１１により生成された操作履歴情報に対応している。
操作履歴情報は、「日付」、「時刻」、「ファンクションコード」、「ファンクション名称」、「ドロア自動オープンフラグ」、「オペレータ」、及び「金額」のデータの集合体として構成される。
「日付」及び「時刻」は、ファンクションキー２２のうちの任意のキーが押下操作された日時を示すデータである。「ファンクションコード」及び「ファンクション名称」は、押下操作されたキーに対応付けられたファンクションについての、ファンクションコード及びファンクション名称を示すデータであり、上述の図２の表に対応しているものである。「ドロア自動オープンフラグ」は、押下操作されたキーに対応付けられたファンクションの種類が、ドロア２５の開放を伴う種類である場合には「１」が設定され、ドロア２５の開放を伴わない種類である場合には「０」が設定されるフラグである。「オペレータ」は、ファンクションキー２２のうちの任意のキーを押下操作したオペレータの氏を示すデータである。「金額」は、押下操作されたキーに対応付けられたファンクションの最中又は前後において、数字キー２１等で入力された金額を示すデータである。
【００４５】
図４に戻り、開閉履歴情報生成部１１２は、センサ部３９の検出結果に基づいて、ドロア２５が開かれたとき及び閉じられたときの履歴を示すドロア開閉履歴情報を生成して、図６に示すドロア開閉履歴ファイルに格納する。
【００４６】
図６は、ドロア開閉履歴ファイルの構造例を示す図である。
図６において、所定の行は、ドロア２５が開かれたとき又は閉じられたときに開閉履歴情報生成部１１２により生成されたドロア開閉履歴情報に対応している。
ドロア開閉履歴情報は、「日付」、「時刻」、及び「開閉」のデータの集合体として構成される。
「日付」及び「時刻」は、ドロア２５が開かれた又は閉じられたことがセンサ部３９により検出された日時を示すデータである。「開閉」は、ドロア２５が開かれたのか或いは閉じられたのかを示すデータである。具体的には、ドロア２５が開かれたときには「オープン」が「開閉」のデータとして採用され、ドロア２５が閉められたときには「クローズ」が「開閉」のデータとして採用される。
【００４７】
図４に戻り、ドロア異常検出部１０３は、ドロア異常検出処理を実行すべく、履歴情報取得部１２１と、基準情報取得部１２２と、異常検出部１２３と、を備えている。
即ち、主制御部１０１は、ログインしているオペレータが、例えば店長等の、ドロアオープン異常検出処理を実行する権限がある者であると認識した場合に、ドロアオープン異常検出処理を実行すべく、履歴情報取得部１２１と、基準情報取得部１２２と、異常検出部１２３と、を機能させる。
【００４８】
履歴情報取得部１２１は、操作履歴情報記憶部１３２に記憶された操作履歴ファイル（図５参照）における各操作履歴情報のうち、ドロア２５の開放を伴うファンクションについての操作履歴情報、即ち「ドロア自動オープンフラグ」が「１」である操作履歴情報を取得する。
また、履歴情報取得部１２１は、開閉履歴情報記憶部１３３に記憶されたドロア開閉履歴ファイル（図６参照）における各ドロア開閉履歴情報の全てを取得する。
そして、履歴情報取得部１２１は、取得した各操作履歴情報及び各ドロア開閉履歴情報の各々を時系列に並べて統合し、新たに生成したファイルに含める。このように新たに生成されるファイルを、以下、「中間マージファイル」と呼ぶ。
また、履歴情報取得部１２１は、操作履歴情報記憶部１３２に記憶された操作履歴ファイルから、オペレータ毎かつファンクション毎に、ファンクションの発生回数をそれぞれ集計し、新たに生成したファイルに含める。このように新たに生成されるファイルを、以下、「回数集計ファイル」と呼ぶ。
これらの中間マージファイル及び回数集計ファイルは、本実施形態では、統合履歴情報記憶部１３４に記憶される。そこで、以下、中間マージファイル及び回数集計ファイルをまとめて、統合履歴ファイルと呼ぶ。
【００４９】
図７は、統合履歴ファイルの構造例を示す図である。具体的には、図７（ａ）は、中間マージファイルの構造例を示す図である。図７（ｂ）は、回数集計ファイルの構造例を示す図である。
【００５０】
図７（ａ）において、中間マージファイルの所定の行は、履歴情報取得部１２１によって取得された各操作履歴情報又は各ドロア開閉履歴情報に対応している。
従って、所定の行の各項目のデータは、操作履歴情報（図５参照）又はドロア開閉履歴情報（図６参照）の対応する項目のデータに対応しており、これらのデータは上述しているため、ここではその説明は省略する。
【００５１】
図７（ｂ）において、回数集計ファイルの所定の行は、所定のオペレータの所定のファンクションが対応しており、「日付」、「オペレータ」、「ファンクション名称」、及び、「発生回数」のデータの集合体として構成される。
所定行の「日付」は、集計対象となった操作履歴ファイルが生成された日付を示すデータである。当該行の「オペレータ」及び「ファンクション名称」は、当該行に対応付けられたオペレータの氏及びファンクション名称を示すデータである。「発生回数」は、当該行に対応付けられたオペレータ及びファンクションの組み合わせで、当該ファンクションの発生回数を示すデータである。
【００５２】
図４に戻り、基準情報取得部１２２は、ドロア２５を開放させる操作毎に予め設定された標準操作の基準のうち、統合履歴ファイル（図７）から特定される操作（ファンクション）についての標準操作の基準を取得する。
本実施形態では、標準操作の基準として、オペレータ毎及びファンクション毎に設定された標準的操作時間及び標準的操作回数が採用されている。より具体的には本実施形態では、標準的操作時間としては、ドロア２５の開放を継続する時間として許可された時間（以下、「ドロアオープン許可時間」と呼ぶ）が採用されている。また、本実施形態では、標準的操作回数としては、ドロア２５の開閉を繰り返す回数として許可された回数（以下、「ドロアオープン許可回数」と呼ぶ）が採用されている。
このような標準操作の基準、即ち、本実施形態では、オペレータ毎及びファンクション毎の、ドロアオープン許可時間及びドロアオープン許可回数は、所定のテーブルに格納されて基準情報記憶部１３１に予め記憶されている。なお、以下、このような所定のテーブルを、「ドロア開閉管理テーブル」と呼ぶ。
【００５３】
図８は、ドロア開閉管理テーブルの構造例を示す図である。
図８において、所定の行は、所定のオペレータの所定のファンクションが対応しており、「オペレータ」、「ファンクション名称」、「ドロアオープン許可時間」、及び「ドロアオープン許可回数」のデータの集合体として構成される。
所定の行の「オペレータ」及び「ファンクション名称」は、当該行に対応付けられたオペレータの氏及びファンクション名称を示すデータである。「ドロアオープン許可時間」は、当該行に対応付けられたオペレータ及びファンクションの組み合わせについての、ドロアオープン許可時間を示すデータである。「ドロアオープン許可回数」は、当該行に対応付けられたオペレータ及びファンクションの組み合わせについての、ドロアオープン許可回数を示すデータである。
【００５４】
なお、図８の一番上の行の「伊藤」及び「現金」の組み合わせ、及び上から１０行目の「吉田」及び「現金」の組み合わせについては、ドロアオープン許可回数が最大値である「９９９９」が設定されている。このように、ドロアオープン許可回数として最大値が設定されていることは、ドロア２５の開閉の繰り返し回数に制限がないこと（何回開閉しても異常なドロア操作と判定されないこと）を意味する。同様に、図示はしないが、ドロアオープン許可時間として最大値が設定されていることは、ドロア２５の開放の継続時間に制限がないこと（何時間開放しっ放しでも異常なドロア操作と判定されないこと）を意味する。
逆に、所定の行のドロアオープン許可時間又はドロアオープン許可回数として０が設定されている場合は、当該行に対応するオペレータに対して、当該行に対応するファンクションの実行が許可されていないことを意味する。
【００５５】
なお、本実施形態では、オペレータは、ログイン操作として、自己に設定されたオペレータコードを入力する。
このオペレータコードをオペレータ毎に管理するファイルもまた、基準情報記憶部１３１に予め記憶されている。なお、以下、このようなファイルを、「オペレータマスターファイル」と呼ぶ。
【００５６】
図９は、オペレータマスターファイルの構造例を示す図である。
図９において、所定の行は、所定のオペレータに対応しており、「オペレータコード」、及び「オペレータ」のデータの集合体として構成される。
所定の行の「オペレータコード」及び「オペレータ」の各々は、当該行に対応付けられたオペレータについての、オペレータコード及び氏の各々を示すデータである。
【００５７】
また、本実施形態では、売上データ処理装置１０を用いて実行可能なファンクションについての情報が含まれるファイルもまた、基準情報記憶部１３１に予め記憶されている。なお、以下、このようなファイルを、「ファンクションマスターファイル」と呼ぶ。
【００５８】
図１０は、ファンクションマスターファイルの構造例を示す図である。
図１０において、所定の行は、所定のファンクションに対応しており、「ファンクションコード」、「ファンクション名称」、「ドロア自動オープンフラグ」等のデータの集合体として構成される。
所定の行の「ファンクションコード」及び「ファンクション名称」の各々は、当該行に対応付けられたファンクションについての、ファンクションコード及びファンクション名称の各々を示すデータである。「ドロア自動オープンフラグ」は、当該行に対応付けられたファンクションについて、ドロア２５の開放を伴う場合には「１」が設定され、ドロア２５の開放を伴わない場合には「０」が設定されるフラグである。
【００５９】
図４に戻り、異常検出部１２３は、操作履歴ファイル（図７参照）から特定されるオペレータ及びファンクションの組み合わせ毎に、取得された標準操作の基準（図８のドロア開閉管理テーブルのドロアオープン許可時間及びドロアオープン許可回数）との差異を求め、所定以上の差異がある場合には、異常なドロア操作として検出する。
なお、異常検出部１２３による異常なドロア操作の検出の詳細については、図１５乃至図１９を参照して後述する。
【００６０】
異常情報出力制御部１０４は、異常検出部１２３により検出された異常なドロア操作を報知するための情報（以下、「異常情報」と呼ぶ）を生成し、出力部３７から出力させるように制御する。
例えば、異常情報出力制御部１０４は、出力部３７のうち印刷部２４を制御して、図１１に示すような異常情報を紙媒体に印刷する。なお、紙媒体に印刷された異常情報を、以下、「ドロアオープン異常レポート」と呼ぶ。
【００６１】
図１１は、ドロアオープン異常レポートの一例を示す図である。具体的には、図１１（ａ）は、ドロアオープン時間異常レポートの一例を示す図である。図１１（ｂ）は、ドロアオープン回数異常レポートの一例を示す図である。
【００６２】
図１１（ａ）に示すように、ドロアオープン時間異常レポートには、異常なドロア操作を示すものとしてドロア２５の開放時間の異常が検出された場合の各種情報が印字される。具体的には、当該異常が検出された日付及び時刻、当該異常を起こしたオペレータの氏、当該異常の対象となったファンクション名称、当該異常時に入力された金額、及び、当該異常時のドロア２５の開放時間（異常時間）が印字される。
【００６３】
図１１（ｂ）に示すように、ドロアオープン回数異常レポートには、異常なドロア操作を示すものとしてドロア２５の開閉回数の異常が検出された場合の各種情報が印字される。具体的には、当該異常が検出された日付及び時刻、当該異常を起こしたオペレータの氏、当該異常の対象となったファンクション名称、及び、当該異常時のドロア２５の開閉回数（異常回数）が印字される。
【００６４】
次に、図１２乃至図１９のフローチャートを参照して、図４の機能的構成を有する売上データ処理装置１０の各種処理について説明する。
【００６５】
図１２は、売上データ処理装置１０が実行する履歴生成処理のうち、操作履歴ファイルを生成する処理（以下、「操作履歴ファイル生成処理」と呼ぶ）の流れの一例を説明するフローチャートである。
操作履歴ファイル生成処理が実行されると、ＣＰＵ３１において図４の各機能ブロックが機能して、次のような処理が実行される。即ち、以下の各ステップの処理の動作主体は、ハードウェアではＣＰＵ３１が該当する。ただし、本発明の理解を容易なものとすべく、ＣＰＵ３１において機能する各機能ブロックが動作主体であるものとして、以下の各ステップの処理の説明をする。
【００６６】
ステップＳ１において、主制御部１０１は、オペレータによるログイン操作がなされたか否かを判定する。
オペレータによるログイン操作がなされていない場合、ステップＳ１においてＮＯであると判定されて、処理はステップＳ１に戻される。即ち、オペレータによるログイン操作がなされるまでの間、ステップＳ１の判定処理が繰り返し実行される。
その後、オペレータによるログイン操作がなされると、ステップＳ１においてＹＥＳであると判定されて、処理はステップＳ２に進む。
ステップＳ２において、主制御部１０１は、ログイン処理を実行する。
例えば、ログイン操作により入力されたオペレータコードが「０００１」であった場合、主制御部１０１は、「有森」という氏で登録されたオペレータであると認識し（図９参照）、当該オペレータのログインを許可する。
【００６７】
ステップＳ３において、操作履歴情報生成部１１１は、ファンクションキー２２が押下操作されたか否かを判定する。
ファンクションキー２２が押下操作されていない場合、ステップＳ３においてＮＯであると判定されて、処理はステップＳ６に進む。
ステップＳ６において、主制御部１０１は、売上データ処理装置１０の電源がオフ状態であるか否かを判定する。
電源がオン状態の場合には、ステップＳ６においてＮＯであると判定されて、処理はステップＳ３に戻され、それ以降の処理が繰り返される。即ち、電源がオン状態の場合であって、ファンクションキー２２が押下操作されていない場合には、ステップＳ３（ＮＯ）及びステップＳ６（ＮＯ）のループ処理が繰り返され、操作履歴ファイル生成処理は待機状態となる。
この間に、電源がオフ状態になると、ステップＳ６においてＹＥＳであると判定されて、操作履歴ファイル生成処理は終了となる。
一方で、この間に、電源がオン状態を維持したまま、ファンクションキー２２が押下操作された場合には、ステップＳ３においてＹＥＳであると判定されて、処理はステップＳ４に進む。
【００６８】
ステップＳ４において、操作履歴情報生成部１１１は、操作履歴情報を取得して、操作履歴情報ファイル（図５参照）に記憶する。
具体的には、操作履歴情報生成部１１１は、オペレータがファンクションキー２２を押下操作した日時、ファンクションキー２２のうち押下操作されたキーに対応するファンクションについてのファンクションコード及び名称、ドロア自動オープンフラグ、オペレータの氏、並びに入力された金額を、操作履歴情報として取得して操作履歴情報ファイルに記憶する。
【００６９】
ステップＳ５において、主制御部１０１は、ファンクションキー２２のうち押下操作に対応するファンクションの処理を実行する。なお、主制御部１０１は、当該ファンクションがドロア２５の開放を伴う種類の場合、即ちドロア自動オープンフラグが「１」の場合、ドロア制御部３８を介してドロア２５を開ける。
なお、一旦開けられたドロア２５は、オペレータの手動操作により閉められる。
その後、処理はステップＳ３に戻され、それ以降の処理が繰り返される。
即ち、オペレータによりファンクションキー２２の押下操作がなされる毎に、ステップＳ３（ＹＥＳ）、ステップＳ４、及びＳ５のループ処理が繰り返し実行され、その都度取得された操作履歴情報が、操作履歴情報ファイルに追記（記憶）されていく。
その後、電源がオフ状態になると、操作履歴ファイルが終了となる。
【００７０】
なお、この間、開閉履歴情報生成部１１２は、センサ部３９によりドロア２５の開閉が検出される毎に、ドロア開閉履歴情報を生成してドロア開閉履歴ファイルに記憶する（図６参照）。
【００７１】
次に、図１３を参照して、ドロア異常検出処理について説明する。
図１３は、ドロア異常検出処理の流れの一例を説明するフローチャートである。
ドロア異常検出処理は、例えば、一日の営業が終了し、店長等がオペレータとして売上データ処理装置１０にログインした後、売上データ処理装置１０による精算処理の実行中に開始される。
ドロア異常検出処理が実行されると、ＣＰＵ３１において図４の各機能ブロックが機能して、次のような処理が実行される。即ち、以下の各ステップの処理の動作主体は、ハードウェアではＣＰＵ３１が該当する。ただし、本発明の理解を容易なものとすべく、ＣＰＵ３１において機能する各機能ブロックが動作主体であるものとして、以下の各ステップの処理の説明をする。
【００７２】
ステップＳ２１において、基準情報取得部１２２は、ドロア開閉管理テーブル（図８参照）を基準情報記憶部１３１から読み込む。
【００７３】
ステップＳ２２において、履歴情報取得部１２１は、中間マージファイルを作成する処理（以下、「中間マージファイル作成処理」と呼ぶ）を実行する。中間マージファイル作成処理の詳細については、図１４を参照して後述する。
【００７４】
ステップＳ２３において、異常検出部１２３は、ドロアオープン異常時間を検出する処理（以下、「ドロアオープン異常時間検出処理」と呼ぶ）を実行する。ドロアオープン異常時間検出処理の詳細については、図１５乃至図１７を参照して後述する。
【００７５】
ステップＳ２４において、異常検出部１２３は、ドロアオープン異常回数を検出する処理（以下、「ドロアオープン異常回数検出処理」と呼ぶ）を実行する。ドロアオープン異常回数検出処理の詳細については、図１８及び図１９を参照して後述する。
【００７６】
ステップＳ２５において、主制御部１０１は、操作履歴情報及びドロア開閉履歴情報を消去する。
これにより、ドロア異常検出処理は終了する。
【００７７】
次に、図１４を参照して、中間マージファイル作成処理について説明する。
図１４は、図１３のドロア異常検出処理のうちステップＳ２２の中間マージファイル作成処理の詳細な流れの一例を説明するフローチャートである。
【００７８】
ステップＳ４１において、履歴情報取得部１２１は、操作履歴情報記憶部１３２に記憶されている操作履歴ファイルから、ドロア２５の開放を伴うファンクションのレコード（操作履歴情報）のみを読み込む。
具体的には、履歴情報取得部１２１は、操作履歴ファイルに含まれる操作履歴情報の中から、ドロア自動オープンフラグが「１」の操作履歴情報（レコード）のみを読み込む。
図５の例を参照すると、「釣銭準備」、「現金」、「両替」のファンクションのそれぞれの操作履歴情報（レコード）が読み込まれる。
【００７９】
ステップＳ４２において、履歴情報取得部１２１は、読み込んだレコード（操作履歴情報）を統合履歴情報記憶部１３４の中間マージファイルに取り込む。
【００８０】
ステップＳ４３において、履歴情報取得部１２１は、開閉履歴情報記憶部１３３に記憶されたドロア開閉履歴ファイルのレコード（ドロア開閉履歴情報）を全件読み込む。図６の例を参照すると、８行分の全てのドロア開閉履歴情報（レコード）が読み込まれる。
【００８１】
ステップＳ４４において、履歴情報取得部１２１は、取得したレコードを統合履歴情報記憶部１３４の中間マージファイルに取り込む。
【００８２】
ステップＳ４５において、履歴情報取得部１２１は、統合履歴情報記憶部１３４の中間マージファイルのレコード（ドロア２５の開放を伴う操作履歴情報及びドロア開閉履歴情報）を時系列に並び替える。これにより、例えば図７（ａ）に示す中間マージファイルが作成される。
【００８３】
ステップＳ４６において、統合履歴情報生成部１３５は、ステップＳ４５の処理で並び替えた中間マージファイル（図７（ａ）参照）を統合履歴情報記憶部１３４に記憶する。
これにより、中間マージファイル作成処理は終了する。その後、処理は図１３のステップＳ２３のドロアオープン異常検出処理に進む。
【００８４】
そこで、図１５及び図１６を参照して、ドロアオープン異常時間検出処理について説明する。
図１５及び図１６は、図１３のドロア異常検出処理のうちステップＳ２３のドロアオープン異常時間検出処理の詳細な流れの一例を説明するフローチャートである。
【００８５】
ステップＳ６０において、異常検出部１２３は、中間マージファイルの先頭の行にポインタを配置する。ポインタは、読み込み対象の行（レコード）を示すものであるものとする。
ステップＳ６１において、異常検出部１２３は、異常時間検出回数ｉを０に初期設定する。異常時間検出回数ｉについては、後述する。
【００８６】
ステップＳ６２において、異常検出部１２３は、中間マージファイルにおいてポインタの示す位置にレコードが存在するか否かを判定する。
レコードが存在しない場合には、ステップＳ６２においてＮＯであると判定されて、処理はステップＳ７６に進む。ただし、ステップＳ７６以降の処理については後述する。
これに対して、レコードが存在する場合には、ステップＳ６２においてＹＥＳであると判定されて、処理はステップＳ６３に進む。
ステップＳ６３において、異常検出部１２３は、ポインタが指し示すレコードを中間マージファイルから読み込む。
具体的には例えば、図７（ａ）の中間マージファイルにおいて、上から４行目の位置にポイントが配置されているものとする。この場合、異常検出部１２３は、４行目のレコード、即ち、「現金」のファンクションでオペレータが「伊藤」の組み合わせのレコードを読み込む。
【００８７】
図１６のステップＳ６４において、異常検出部１２３は、読み込んだレコードがファンクションのレコードか否かを判定する。
読み込んだレコードが、元々ドロア開閉履歴ファイルのレコードであった場合には、ドロア２５の開閉を示すレコード（オープン又はクローズのレコード）であるため、ステップＳ６４においてＮＯであると判定されて、処理はステップＳ７５に進む。ただし、ステップＳ７５以降の処理については後述する。
これに対して、読み込んだレコードが、元々操作履歴ファイルのレコードであった場合には、ファンクションのレコードであるため、ステップＳ６４においてＹＥＳであると判定されて、処理はステップＳ６５に進む。上述の例、即ち図７（ａ）の中間マージファイルの４行目のレコードが読み込まれた例では、「現金」のファンクションのレコードであるため、ステップＳ６４においてＹＥＳであると判定されて、処理はステップＳ６５に進む。
【００８８】
ステップＳ６５において、異常検出部１２３は、ステップＳ６３の処理で読み込んだレコードに対応するオペレータ及びファンクションについての、ドロアオープン許可時間をドロア開閉管理テーブルから探索する。
なお、このようなステップＳ６５の一連の処理を、以下、「許可時間探索処理」と呼ぶ。許可時間探索処理の詳細については、図１７を参照して後述する。
例えば上述の例、即ち図７（ａ）の中間マージファイルの４行目のレコードが読み込まれた例では、「現金」のファンクションとオペレータが「伊藤」という組み合わせのため、図８のドロア開閉管理テーブルの１行目から、ドロアオープン許可時間が３０秒であることが探索される。
【００８９】
ステップＳ６６において、異常検出部１２３は、ドロアオープン許可時間が最大値か否かを判定する。
ドロアオープン許可時間が最大値であることは、ステップＳ６３の処理で読み込んだレコードに対応するオペレータ及びファンクションの組み合わせについては、ドロア２５の開放時間に制限がないことを意味する。このような場合には、ステップＳ６６においてＹＥＳであると判定されて、処理は図１５のステップＳ７５に進む。ただし、ステップＳ７５以降の処理については後述する。
これに対して、ドロアオープン許可時間が最大値でない場合には、ステップＳ６６においてＮＯであると判定されて、処理はステップＳ６７に進む。例えば上述の例、即ち図８のドロア開閉管理テーブルの１行目から、ドロアオープン許可時間が３０秒であることが探索された例では、ステップＳ６６においてＮＯであると判定されて、処理はステップＳ６７に進む。
【００９０】
ステップＳ６７において、異常検出部１２３は、中間マージファイルにおけるポインタを１レコード分進める。上述の例では、即ち図７（ａ）の中間マージファイルの４行目にポインタが設定されていた例では、５行目にポインタが移行する。
【００９１】
ステップＳ６８において、異常検出部１２３は、中間マージファイルにおいてポインタの示す位置にレコードが存在するか否かを判定する。
レコードが存在しない場合には、ステップＳ６８においてＮＯであると判定されて、処理は図１５のステップＳ７６に進む。ただし、ステップＳ７６以降の処理については後述する。
これに対して、レコードが存在する場合には、ステップＳ６８においてＹＥＳであると判定されて、処理はステップＳ６９に進む。
ステップＳ６９において、異常検出部１２３は、読み込んだレコードがクローズのレコードか否かを判定する。
読み込んだレコードが、元々ドロア開閉履歴ファイルのオープンのレコード（ドロア２５の開を示すレコード）であるか又は元々操作履歴ファイルのレコードであった場合には、ステップＳ６９においてＮＯであると判定されて、処理はステップＳ７７に進む。上述の例では、即ち図７（ａ）の中間マージファイルの５行目にポインタが移行した例では、５行目のレコードはオープンのレコードであるので、ステップＳ６９においてＮＯであると判定されて、処理はステップＳ７７に進む。
【００９２】
ステップＳ７７において、異常検出部１２３は、読み込んだレコードがファンクションのレコードか否かを判定する。
読み込んだレコードが、ファンクションのレコードであった場合には、ステップＳ７７においてＹＥＳであると判定されて、処理はステップＳ７８に進む。ただし、ステップＳ７８以降の処理は後述する。
これに対して、読み込んだレコードが、クローズのレコードでもなく（ステップＳ６９においてＮＯであると判定済み）、ファンクションのレコードでもなかった場合には、即ちオープンのレコードであった場合には、ステップＳ７７においてＮＯであると判定されて、処理はステップＳ６７に戻され、それ以降の処理が繰り返される。
上述の例では、即ち図７（ａ）の中間マージファイルの５行目にポインタが移行した例では、５行目のレコードはオープンのレコードであるので、ステップＳ７７においてＮＯであると判定されて、処理はステップＳ６７に戻される。この場合、図７（ａ）の中間マージファイルの６行目にポインタが移行し（ステップＳ６７）、レコードが存在するが（ステップＳ６８ＹＥＳ）、「現金」のファンクションのレコードであるので、ステップＳ７７においてＹＥＳであると判定されて、処理はステップＳ７８に進む。
【００９３】
ステップＳ７８において、異常検出部１２３は、前ファンクションと現ファンクションとの各レコードの時刻の差が、ドロアオープン許可時間を超えているか否かを判定する。
即ち、ステップＳ７８の判定処理は、前ファンクションから、ドロア２５が閉まらずに（ステップＳ６９ＮＯ参照）開放状態を維持したまま、現ファンクションが実行されたものと把握することできる。従って、前ファンクションと現ファンクションとの各レコードの時刻の差が、ドロア２５の開放状態の維持時間を示している。このドロア２５の開放状態の維持時間が、ドロアオープン許可時間を超えているか否かが判定される。
【００９４】
ドロア２５の開放状態の維持時間がドロアオープン許可時間を超えていない場合、ドロアオープン異常時間が発生していないので、ステップＳ７８においてＮＯであると判定されて、処理はステップＳ６５に戻され、それ以降の処理が繰り返される。即ち、現ファンクションについてのドロアオープン許可時間が探索され、当該ドロアオープン許可時間に基づいて、ドロアオープン異常時間の有無が検出される。
【００９５】
これに対して、ドロア２５の開放状態の維持時間がドロアオープン許可時間を超えている場合、ドロアオープン異常時間が発生していることになるので、ステップＳ７８においてＹＥＳであると判定されて、処理はステップＳ７９に進む。
ステップＳ７９において、異常検出部１２３は、異常時間検出回数ｉを１だけインクリメントする（ｉ＝ｉ＋１）。
ステップＳ８０において、異常検出部１２３は、異常時間検出回数ｉが１であるか否かを判定する。
異常時間検出回数ｉが１である場合とは、ドロアオープン異常時間の検出が初回であることを意味する。このように異常時間検出回数ｉが１である場合には、ステップＳ８０においてＹＥＳであると判定されて、処理はステップＳ８１に進む。ステップＳ８１において、異常情報出力制御部１０４は、印刷部２４を制御して、検出されたドロアオープン異常時間をヘッダとともに印字する。即ち、ドロアオープン異常時間の検出が初回の場合には、初回に検出されたドロアオープン異常時間のみならず、ヘッダも印字される。
【００９６】
上述の例では、即ち図７（ａ）の中間マージファイルの４行目から６行目にポインタが移行した例では、前ファンクションと現ファンクションのレコードの時刻差は１分（０９：２２：０２．１１−２０９：２１：０２．１１２）になる。一方で、ドロアオープン許可時間は３０秒である。従って、ドロアオープン異常時間が発生していることになるので、それが検出されて、ステップＳ７８においてＹＥＳであると判定されて、処理はステップＳ７９に進む。
そして、ステップＳ７９において異常時間検出回数ｉが０から１に更新され、ステップＳ８０においてＹＥＳであると判定されて、ステップＳ８１の処理で、図１１（ａ）に示すように、「ドロアオープン時間異常レポート」というヘッダとともに、「２０１１／３／１２  ０９：２１  伊藤  現金  ・・・６０秒」というドロアオープン異常時間が印字される。
【００９７】
これに対して、異常時間検出回数ｉが１でない場合には、ドロアオープン異常時間の検出が２回目以降であることを意味する。従って、このような場合には、ステップＳ８０においてＮＯであると判定されて、処理はステップＳ８２に進む。ステップＳ８２において、異常情報出力制御部１０４は、印刷部２４を制御して、検出されたドロアオープン異常時間を印字する。即ち、ドロアオープン異常時間の検出が２回目以降の場合には、ヘッダの印字は不要であるので、検出されたドロアオープン異常時間のみが印字される。
【００９８】
以上、中間マージファイルの時系列に並ぶレコードが、２つのファンクションの間に、クローズのレコードを挟まないパターンについての一連の処理について説明した。
次に、中間マージファイルの時系列に並ぶレコードが、２つのファンクションの間に、クローズのレコードを挟むパターンについての一連の処理について説明する。ただし、ステップＳ６９に進むまでの処理は同様であるので、それらの説明は省略する。
【００９９】
ポインタが進んでクローズのレコードを指し示すようになると、ステップＳ６９においてＹＥＳであると判定されて、処理はステップＳ７０に進む。
【０１００】
ステップＳ７０において、異常検出部１２３は、ファンクションとクローズとの各レコードの時刻の差が、ドロアオープン許可時間を超えているか否かを判定する。
即ち、ファンクションとクローズの時刻の差とは、ドロア２５の開放状態の維持時間を示している。ステップＳ７０の判定処理では、このドロア２５の開放状態の維持時間が、ドロアオープン許可時間を超えているか否かが判定される。
【０１０１】
ドロア２５の開放状態の維持時間がドロアオープン許可時間を超えていない場合、ドロアオープン異常時間が発生していないので、ステップＳ７０においてＮＯであると判定されて、処理は図１５のステップＳ７５に進む。
ステップＳ７５において、異常検出部１２３は、中間マージファイルにおけるポインタを１レコード分進め、処理をステップＳ６２に戻し、それ以降の処理を繰り返す。
【０１０２】
これに対して、ドロア２５の開放状態の維持時間がドロアオープン許可時間を超えている場合、ドロアオープン異常時間が発生していることになるので、ステップＳ７０においてＹＥＳであると判定されて、処理はステップＳ７１に進む。
なお、ステップＳ７１乃至Ｓ７４の各々の処理は、上述したステップＳ７９乃至Ｓ８２の各々の処理と同様であるため、ここではその説明は省略する。
【０１０３】
以上の処理が繰り返し実行されると、ポインタが進んでいき、中間マージファイルにおける最後のレコードの次（最後尾）に移行する。このような場合には、図１５のステップＳ６２においてＮＯであると判定されて、処理はステップＳ７６に進む。
ステップＳ７６において、主制御部１０１は、中間マージファイルを削除する。
これにより、ドロアオープン異常時間検出処理は終了となる。
【０１０４】
ここで、図１７を参照して、図１６のステップＳ６５の許可時間探索処理について説明する。
図１７は、図１６のステップＳ６５の許可時間探索処理の詳細な流れを説明するフローチャートである。
許可時間探索処理は、中間マージファイルからファンクションのレコードが読み込まれた場合に実行される（図１５のステップＳ６３及び図１６のステップＳ６４でＹＥＳ）。
【０１０５】
ステップＳ１０１において、異常検出部１２３は、最大値をドロアオープン許可時間に設定する。即ち、最大値が初期設定値になる。
ステップＳ１０２において、異常検出部１２３は、基準情報記憶部１３１に記憶されたドロア開閉管理テーブルの先頭にポインタを配置する。
【０１０６】
ステップＳ１０３において、異常検出部１２３は、ポインタの指し示す位置にレコードが存在するか否か判定する。
レコードが存在する場合は、ステップＳ１０３においてＹＥＳであると判定されて、処理はステップＳ１０４に進む。ステップＳ１０４において、異常検出部１２３は、ドロア開閉管理テーブルにおけるポインタが指し示す位置のレコードを読み込む。
【０１０７】
ステップＳ１０５において、異常検出部１２３は、ステップＳ６３の処理で中間マージンファイルから読み込んだレコードにおけるオペレータとファンクションとの組み合わせと、ステップＳ１０４の処理でドロア開閉管理テーブルから読み込んだレコードにおけるオペレータとファンクションとの組み合わせが一致するか否かを判定する。
【０１０８】
一致しない場合には、ステップＳ１０４の処理で読み込まれたレコードには、目的のドロアオープン許可時間が含まれていないので、ステップＳ１０５においてＮＯであると判定されて、処理はステップＳ１０６に進む。
ステップＳ１０６において、異常検出部１２３は、ポインタの位置を１レコード分進める。その後、処理はステップＳ１０３に戻され、それ以降の処理が繰り返される。
即ち、ステップＳ１０３（ＹＥＳ），Ｓ１０４，Ｓ１０５（ＮＯ），Ｓ１０６のループ処理が繰り返され、ポインタが順次移行していく。
そして、ステップＳ６３の処理で中間マージンファイルから読み込んだレコードにおけるオペレータとファンクションとの組み合わせと、ステップＳ１０４の処理でドロア開閉管理テーブルから読み込んだレコードにおけるオペレータとファンクションとの組み合わせが一致した場合には、ステップＳ１０５においてＹＥＳであると判定されて、処理はステップＳ１０７に進む。
【０１０９】
ステップＳ１０７において、異常検出部１２３は、ステップＳ１０４の処理でドロア開閉管理テーブルから読み込んだレコードにおいて、オペレータに割り当てられたドロアオープン許可時間を設定する。これにより許可時間探索処理は終了となる。
なお、上述のループ処理が繰り返している最中に、ポインタが最後まで移行して、読み出し可能なレコードが存在しなくなった場合にも、ステップＳ１０３においてＮＯであると判定されて、許可時間探索処理は終了となる。
許可時間探索処理が終了すると、即ち、図１６のドロアオープン異常時間検出処理のステップＳ６５の処理が終了すると、処理はステップＳ６６に進む。
【０１１０】
以上、図１３のドロア異常検出処理のうち、ステップＳ２３のドロアオープン異常時間検出処理について説明した。
このようなドロアオープン異常回数検出処理が終了すると、処理は図１３のステップＳ２４のドロアオープン異常回数検出処理に進む。
【０１１１】
そこで、図１８を参照して、ドロアオープン異常回数検出処理について説明する。
図１８は、図１３のドロア異常検出処理のうちステップＳ２４のドロアオープン異常回数検出処理の詳細な流れの一例を説明するフローチャートである。
【０１１２】
ステップＳ１２１において、履歴情報取得部１２１は、操作履歴情報記憶部１３２に記憶された操作履歴ファイルのレコード（操作履歴情報）をオペレータ別に読み込む。
ステップＳ１２２において、履歴情報取得部１２１は、ファンクション別にレコード件数を集計する。
ステップＳ１２３において、履歴情報取得部１２１は、集計したオペレータ別ファンクション別レコード件数を、回数集計ファイル（図７（ｂ）参照）として統合履歴情報記憶部１３４に保存する。
【０１１３】
ステップＳ１２４において、異常検出部１２３は、回収集計ファイルの先頭にポインタを配置する。
ステップＳ１２５において、異常検出部１２３は、異常回数検出回数ｊを０に設定する。
【０１１４】
ステップＳ１２６において、異常検出部１２３は、回数集計ファイルにおいてポインタの示す位置にレコードが存在するか否かを判定する。
レコードが存在しない場合には、ステップＳ１２６においてＮＯであると判定されて、処理はステップＳ１３６に進む。ただし、ステップＳ１３６以降の処理については後述する。
これに対して、レコードが存在する場合には、ステップＳ１２６においてＹＥＳであると判定されて、処理はステップＳ１２７に進む。
ステップＳ１２７において、異常検出部１２３は、ポインタが指し示すレコードを回数集計ファイルから読み込む。
具体的には例えば、図７（ｂ）の回数集計ファイルにおいて、上から１行目の位置にポイントが配置されているものとする。この場合、異常検出部１２３は、１行目のレコード、即ち、「両替」のファンクションでオペレータが「伊藤」についての、ドロア２５の開閉の発生回数は「１５回」であることを示すレコードを読み込む。
【０１１５】
ステップＳ１２８において、異常検出部１２３は、ステップＳ１２７の処理で読み込んだレコードに対応するオペレータ及びファンクションについての、ドロアオープン許可回数をドロア開閉管理テーブルから探索する。
なお、このようなステップＳ１２８の一連の処理を、以下、「許可回数探索処理」と呼ぶ。許可回数探索処理の詳細については、図１９を参照して後述する。
例えば上述の例、即ち図７（ｂ）の集計回数ファイルの１行目のレコードが読み込まれた例では、「両替」のファンクションとオペレータが「伊藤」という組み合わせのため、図８のドロア開閉管理テーブルの３行目から、ドロアオープン許可回数が１０回であることが探索される。
【０１１６】
ステップＳ１２９において、異常検出部１２３は、ドロアオープン許可回数が最大値か否かを判定する。
【０１１７】
ドロアオープン許可回数が最大値であることは、ステップＳ１２７の処理で読み込んだレコードに対応するオペレータ及びファンクションの組み合わせについては、ドロア２５の開閉回数に制限がないことを意味する。このような場合には、ステップＳ１２９においてＹＥＳであると判定されて、処理はステップＳ１３５に進む。
ステップＳ１３５において、異常検出部１２３は、ポインタを１レコード分進める。その後、処理はステップＳ１２６に戻され、それ以降の処理が繰り返される。
【０１１８】
これに対して、ドロアオープン許可時間が最大値でない場合には、ステップＳ１２９においてＮＯであると判定されて、処理はステップＳ１３０に進む。
【０１１９】
ステップＳ１３０において、異常検出部１２３は、レコードの発生回数がドロアオープン許可回数を超えているか否かを判定する。
レコードの発生回数がドロアオープン許可回数を超えていない場合、ドロアオープン異常回数が発生していないので、ステップＳ１３０においてＮＯであると判定されて、処理はステップＳ１３５に戻され、それ以降の処理が繰り返される。
【０１２０】
これに対して、レコードの発生回数がドロアオープン許可回数を超えている場合、ドロアオープン異常回数が発生していることになるので、ステップＳ１３０においてＹＥＳであると判定されて、処理はステップＳ１３１に進む。
ステップＳ１３１において、異常検出部１２３は、異常回数検出回数ｊを１だけインクリメントする（ｊ＝ｊ＋１）。
ステップＳ１３２において、異常検出部１２３は、異常回数検出回数ｊが１であるか否かを判定する。
異常回数検出回数ｊが１である場合とは、ドロアオープン異常回数の検出が初回であることを意味する。このように異常回数検出回数ｊが１である場合には、ステップＳ１３２においてＹＥＳであると判定されて、処理はステップＳ１３３に進む。
ステップＳ１３３において、異常情報出力制御部１０４は、印刷部２４を制御して、検出されたドロアオープン異常回数をヘッダとともに印字する。即ち、ドロアオープン異常回数の検出が初回の場合には、初回に検出されたドロアオープン異常回数のみならず、ヘッダも印字される。
【０１２１】
上述の例では、即ち図７（ｂ）の集計回数ファイルの１行目にポインタがある例では、レコードの発生回数は１５回になる。一方で、ドロアオープン許可回数は１０回である。従って、ドロアオープン異常回数が発生していることになるので、それが検出されて、ステップＳ１３０においてＹＥＳであると判定されて、処理はステップＳ１３１に進む。
そして、ステップＳ１３１において異常回数検出回数ｊが０から１に更新され、ステップＳ１３２においてＹＥＳであると判定されて、ステップＳ１３３の処理で、図１１（ｂ）に示すように、「ドロアオープン回数異常レポート」というヘッダとともに、「２０１１／３／１２    伊藤  両替  １５」というドロアオープン異常回数が印字される。
【０１２２】
これに対して、異常回数検出回数ｊが１でない場合には、ドロアオープン異常回数の検出が２回目以降であることを意味する。従って、このような場合には、ステップＳ１３２においてＮＯであると判定されて、処理はステップＳ１３４に進む。ステップＳ１３４において、異常情報出力制御部１０４は、印刷部２４を制御して、検出されたドロアオープン異常回数を印字する。即ち、ドロアオープン異常回数の検出が２回目以降の場合には、ヘッダの印字は不要であるので、検出されたドロアオープン異常回数のみが印字される。
【０１２３】
以上の処理が繰り返し実行されると、ポインタが進んでいき、回数集計ファイルにおける最後のレコードの次（最後尾）に移行する。このような場合には、ステップＳ１２６においてＮＯであると判定されて、処理はステップＳ１３６に進む。
ステップＳ１３６において、主制御部１０１は、回数集計ファイルを削除する。
これにより、ドロアオープン異常回数検出処理は終了となる。
【０１２４】
ここで、図１９を参照して、図１８のステップＳ１２８の許可回数探索処理について説明する。
図１９は、図１８のステップＳ１２８の許可回数探索処理の詳細な流れを説明するフローチャートである。
許可回数探索処理は、回数集計ファイルからレコードが読み込まれた場合に実行される（ステップＳ１２７参照）。
【０１２５】
ステップＳ１５１において、異常検出部１２３は、最大値をドロアオープン許可回数に設定する。即ち、最大値が初期設定値になる。
ステップＳ１５２において、異常検出部１２３は、基準情報記憶部１３１に記憶されたドロア開閉管理テーブルの先頭にポインタを配置する。
【０１２６】
ステップＳ１５３において、異常検出部１２３は、ポインタの指し示す位置にレコードが存在するか否か判定する。
レコードが存在する場合は、ステップＳ１５３においてＹＥＳであると判定されて、処理はステップＳ１５４に進む。ステップＳ１５４において、異常検出部１２３は、ドロア開閉管理テーブルにおけるポインタが指し示す位置のレコードを読み込む。
【０１２７】
ステップＳ１５５において、異常検出部１２３は、ステップＳ１２７の処理で回数集計ファイルから読み込んだレコードにおけるオペレータとファンクションとの組み合わせと、ステップＳ１５４の処理でドロア開閉管理テーブルから読み込んだレコードにおけるオペレータとファンクションとの組み合わせが一致するか否かを判定する。
【０１２８】
一致しない場合には、ステップＳ１５４の処理で読み込まれたレコードには、目的のドロアオープン許可回数が含まれていないので、ステップＳ１５５においてＮＯであると判定されて、処理はステップＳ１５６に進む。
ステップＳ１５６において、異常検出部１２３は、ポインタの位置を１レコード分進める。その後、処理はステップＳ１５３に戻され、それ以降の処理が繰り返される。
即ち、ステップＳ１５３（ＹＥＳ），Ｓ１５４，Ｓ１５５（ＮＯ），Ｓ１５６のループ処理が繰り返され、ポインタが順次移行していく。
そして、ステップＳ１５５の処理で集計回数ファイルから読み込んだレコードにおけるオペレータとファンクションとの組み合わせと、ステップＳ１５４の処理でドロア開閉管理テーブルから読み込んだレコードにおけるオペレータとファンクションとの組み合わせが一致した場合には、ステップＳ１５５においてＹＥＳであると判定されて、処理はステップＳ１５７に進む。
【０１２９】
ステップＳ１５７において、異常検出部１２３は、ステップＳ１５４の処理でドロア開閉管理テーブルから読み込んだレコードにおいて、オペレータに割り当てられたドロアオープン許可回数を設定する。これにより許可回数探索処理は終了となる。
なお、上述のループ処理が繰り返している最中に、ポインタが最後まで移行して、読み出し可能なレコードが存在しなくなった場合にも、ステップＳ１５３においてＮＯであると判定されて、許可回数探索処理は終了となる。
許可回数探索処理が終了すると、即ち、図１８のドロアオープン異常回数検出処理のステップＳ１２８の処理が終了すると、処理はステップＳ１２９に進む。
【０１３０】
以上説明したように、売上データ処理装置１０は、「現金」、「釣銭準備」、「両替」等、客から受け取った代金をドロア２５に収納したり、客に渡す釣銭をドロア２５から引き出す必要のあるファンクションが実行されると、ドロア２５を自動的に開放する。ただし、開放されたドロア２５は、自動的に閉じずに、オペレータの手動操作により閉じられる。
【０１３１】
このようなファンクションに伴うドロア２５の開閉は短時間であり、開閉回数も頻繁でないことから、ドロア２５の開放時間が長時間であった場合や、ドロア２５の開閉回数が多数回であった場合には、ドロア２５から不正に現金が引き出された疑いがある。
そこで、オペレータ毎かつファンクション毎に要する、ドロア２５の標準的開放時間（ドロアオープン許可時間）及び標準的開閉回数（ドロアオープン許可回数）が予め設定されている。売上データ処理装置１０は、このドロア２５の標準的な開放時間及び標準的な開閉回数の各々と、オペレータが実際にファンクションを実行した場合の操作履歴である開放時間及び開閉回数の各々とを比較して、その比較の結果に基づいて、ドロア２５から不正に現金が引き出された疑いがある操作履歴を、異常なドロア操作として検出する。
【０１３２】
具体的には、オペレータによる操作を受けてドロア２５を開放させる売上データ処理装置１０に対して、ドロア２５から不正に現金が引き出された疑いがある操作を、異常なドロア操作として検出するドロア異常検出装置が、売上データ処理装置１０に内蔵されている。
このドロア異常検出装置は、履歴情報取得部１２１と、基準情報取得部１２２と、異常検出部１２３と、を備えている。
履歴情報取得部１２１は、売上データ処理装置１０に対する各操作（各ファンクション）の履歴を取得する。
基準情報取得部１２２は、ドロア２５を開放させる操作毎（ファンクション毎）に予め設定された標準操作の基準（ドロアオープン許可時間及びドロアオープン許可回数）のうち、履歴から特定される操作についての標準操作の基準を取得する。
異常検出部１２３は、履歴から特定される操作毎に、基準情報取得部１２２により取得された標準操作の基準との差異を求め、所定以上の差異がある場合には異常なドロア操作として検出する。
このようにして、ドロア２５から不正に現金が引き出された疑いのある売上データ処理装置１０の操作履歴を、ドロア２５の異常操作として適切に、かつ高精度で、効率的に検出することが可能になる。
【０１３３】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【０１３４】
例えば本実施形態では、売上データ処理装置の各機能は、本実施形態では１の筺体に収められていたが、特にこの必要はなく、分散させてもよい。
特に、基準情報記憶部１３１乃至統合履歴情報記憶部１３４の少なくとも一部は、売上データ処理装置１０の記憶部４０に設ける必要は特になく、売上データ処理装置１０の外部の装置（サーバ等）に設けるようにしてもよい。
【０１３５】
また、基準情報記憶部１３１にドロアオープン許可時間、ドロアオープン許可回数が存在しない場合は、基準情報記憶部１３１のオペレータ毎、ファンクション毎の操作履歴情報から、過去の平均的なドロア２５の開放時間及びドロア２５の開閉回数を算出し、ドロアオープン許可時間、ドロアオープン許可回数として取得するようにしてもよい。
上述の実施形態では、本発明が適用される売上データ処理装置１０を例として説明したが、特にこれに限定されない。例えば、本発明は、ドロア２５を有する電子機器一般に適用することができる。
【０１３６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図３の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図３の例に限定されない。
また、１つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【０１３７】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【０１３８】
このようなプログラムを含む記録媒体は、オペレータにプログラムを提供するために装置本体とは別に配布される図３のリムーバブルメディア７１により構成されるだけでなく、装置本体に予め組み込まれた状態でオペレータに提供される記録媒体等で構成される。リムーバブルメディア７１は、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、又は光磁気ディスク等により構成される。光ディスクは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等により構成される。光磁気ディスクは、ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）等により構成される。また、装置本体に予め組み込まれた状態でオペレータに提供される記録媒体は、例えば、プログラムが記録されている図２のＲＯＭ３２や、記憶部４０に含まれるハードディスク等で構成される。
【０１３９】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【０１４０】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１４１】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
オペレータによる操作を受けてドロアを開放させる売上データ処理装置であって、
オペレータによる操作の履歴を取得する履歴取得手段と、
前記ドロアを開放させる操作毎に予め設定された標準操作の基準のうち、前記履歴から特定される操作についての前記標準操作の基準を取得する基準情報取得手段と、
前記履歴から特定される前記操作毎に、前記基準情報取得手段により取得された前記標準操作の基準との差異を求め、所定以上の差異がある場合には異常なドロア操作として検出する異常検出手段と、
を備えることを特徴とする売上データ処理装置。
［付記２］
前記履歴には、前記売上データ処理装置に対する操作の操作時間を含み、
前記標準操作の基準は、操作毎に設定された標準的操作時間を含み、
前記異常検出手段は、前記履歴から特定される各操作の中に、前記操作時間が前記標準的操作時間より一定以上長い時間を要した操作が存在する場合、異常なドロア操作として検出する、
ことを特徴とする付記１に記載の売上データ処理装置。
［付記３］
前記履歴には、前記オペレータによる操作の操作回数を含み、
前記標準操作の基準は、操作毎に設定された標準的操作回数を含み、
前記異常検出手段は、前記履歴から特定される各操作の中に、前記操作回数が前記標準的操作回数より一定以上多い操作が存在する場合、異常なドロア操作として検出する、
ことを特徴とする付記１又は２に記載の売上データ処理装置。
［付記４］
複数のオペレータのうち所定のオペレータによるログイン操作を受け付け、
前記操作毎に予め設定された前記標準操作の基準は、前記複数のオペレータ毎にそれぞれ設定されており、
前記履歴取得手段は、前記ログイン操作をした前記所定のオペレータによる操作の履歴を取得し、
前記基準情報取得手段は、前記ログイン操作をした前記所定のオペレータについての、前記標準操作の基準を取得し、
前記異常検出手段は、前記ログイン操作をした前記所定のオペレータについて、前記履歴から特定される前記操作毎に前記標準操作の基準との差異を求め、所定以上の差異がある場合には前記ドロアの異常として検出する、
ことを特徴とする付記１乃至３のうち何れか１つに記載の売上データ処理装置。
［付記６］
コンピュータを、
オペレータによる操作を受けてドロアを開放させる売上データ処理装置に対する、オペレータによる操作の履歴を取得する履歴取得手段、
前記ドロアを開放させる操作毎に予め設定された標準操作の基準のうち、前記履歴から特定される操作についての前記標準操作の基準を取得する基準情報取得手段、
前記履歴から特定される前記操作毎に、前記基準情報取得手段により取得された前記標準操作の基準との差異を求め、所定以上の差異がある場合には異常なドロア操作として検出する異常検出手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【０１４２】
１０・・・売上データ処理装置、２１・・・数字キー、２２・・・ファンクションキー、２３・・・表示部、２４・・・印刷部、２５・・・ドロア、３１・・・ＣＰＵ、３２・・・ＲＯＭ、３３・・・ＲＡＭ、３４・・・バス、３５・・・入出力インターフェース、３６・・・入力部、３７・・・出力部、３８・・・ドロア制御部、３９・・・センサ部、４０・・・記憶部、４１・・・通信部、４２・・・ドライブ、７１・・・リムーバブルメディア、１０１・・・主制御部、１０２・・・履歴情報生成部、１０３・・・ドロア異常検出部、１０４・・・異常情報出力制御部、１１１・・・操作履歴情報取得部、１１２・・・開閉履歴情報生成部、１２１・・・開閉履歴情報取得部、１２２・・・基準情報取得部、１２３・・・異常検出部、１３１・・・基準情報記憶部、１３２・・・操作履歴情報記憶部、１３３・・・開閉履歴情報記憶部、１３４・・・統合履歴情報取得部
【図１】
0005397433.tif 000002
【図２】
0005397433.tif 000003
【図３】
0005397433.tif 000004
【図４】
0005397433.tif 000005
【図５】
0005397433.tif 000006
【図６】
0005397433.tif 000007
【図７】
0005397433.tif 000008
【図８】
0005397433.tif 000009
【図９】
0005397433.tif 000010
【図１０】
0005397433.tif 000011
【図１１】
0005397433.tif 000012
【図１２】
0005397433.tif 000013
【図１３】
0005397433.tif 000014
【図１４】
0005397433.tif 000015
【図１５】
0005397433.tif 000016
【図１６】
0005397433.tif 000017
【図１７】
0005397433.tif 000018
【図１８】
0005397433.tif 000019
【図１９】
0005397433.tif 000020