図1は、伝票処理支援システムの構成例である。伝票処理支援システムは、伝票処理支援装置1(1−1)、1(1−2)、1(1−3)、と業務管理サーバ3とを有する。伝票処理支援装置1(1−1)、1(1−2)、1(1−3)はいずれも同じ機能を有し、以下の説明においては、伝票処理支援装置1(1−1)、1(1−2)、1(1−3)のいずれか1台を指して伝票処理支援装置1と呼ぶ。業務管理サーバ3及び伝票処理支援装置1は、ネットワーク2を介して接続される。なお、ネットワーク2としては、有線又は無線を問わず、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用しても良い。また、図1に示した例では、業務管理サーバ3に3つの伝票処理支援装置1が接続される場合を示したが、図示の構成に限定されない。
伝票処理支援装置1は、金融業務に関する各種の処理において、伝票に記入された金額のオペレータによる入力処理を支援するコンピュータである。例えば、金融業務は、普通預金の新規口座開設、振り込み、入金、出金、などの業務に対応する。
業務管理サーバ3は伝票処理支援装置1において行われるオペレータの業務の実行をオペレータによる操作に応じた処理を実行するコンピュータである。例えば、業務管理サーバ3は、顧客から伝票を受け取ったオペレータにより入力された金融業務にかかる入力金額等の取引情報を、伝票処理支援装置1から受信する。業務管理サーバ3は、金融業務についての一連の取引処理を行い、取引結果を金額入力支援装置1に表示させる。
[伝票処理支援装置の構成例]
図2は、本発明による伝票処理支援装置1の構成例である。伝票処理支援装置1は、CPU(Central Processing Unit)11、メモリ12、記憶装置13、読取装置14、入力装置15、入力インターフェース16、出力装置17、グラフィックインターフェース18、ネットワークインターフェース19、バス20を有する。
CPU11は、周辺機器や各種ソフトウェアを実行する他に伝票処理支援装置1を制御するプログラムを実行する演算装置である。
メモリ12は、CPU11がプログラムを実行するために使用される記憶装置である。メモリ12には、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)などを使用することができる。RAMは、CPU11のワークエリアから入力したバッファとして使用される。
記憶装置13は、CPU11により実行されるプログラムや、後述する伝票定義テーブル2000、伝票読み取りテーブル3000、桁特定テーブル4000、格納テーブル5000などの各種情報を記憶している。記憶装置13の一例として、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置、ハードディスクドライブが挙げられる。
読取装置14は、伝票等の書類の画像を読み取る装置である。例えば、イメージスキャナは、読取装置14の一例である。
入力装置15は、操作コマンドやデータなど、オペレータによる操作に応じた操作情報をコンピュータへ入力する装置である。例えば、テンキー、マウス、キーボードは、入力装置15の一例である。
入力インターフェース16は、読取装置14および入力装置15をバス20に接続する。入力インターフェース16は、読取装置14から読取画像を入力し、入力した読取画像を、バス20を介してCPU11に出力する。入力インターフェース16は、入力装置15から操作情報を入力し、入力した操作情報を、バス20を介してCPU11に出力する。
出力装置17は、CPU11による処理結果を出力する装置である。例えば、ディスプレイやプリンターは出力装置17の一例である。
グラフィックインターフェース18は、バス20と出力装置17とを接続する。グラフィックインターフェース18は、CPU11で処理されたグラフィックデータを出力装置17に表示させるためのインターフェースである。グラフィックインターフェース18は、CPU11から送られたグラフィックデータを波形電気信号に変換して出力装置17に出力する。
ネットワークインターフェース19は、バス20と、ネットワーク2とを接続する。ネットワークインターフェース19は、CPU11から送られたデータを入力し、入力したデータを、ネットワーク2を介して業務管理サーバ3に送る。
図3は、本実施例に係る伝票処理支援装置1の機能ブロックを示す図である。
本実施例に係る伝票処理支援装置1は、受付部100、処理部200、出力部300、記憶部400を有する。そして、処理部200は、読み取り部210、第一の特定部220、第二の特定部230、パディング部240を有する。
ここで、受付部100は、読取装置14、入力装置15、入力インターフェース16に相当する。また、処理部200、読み取り部210は、CPU11に相当する。さらに、出力部300は、グラフィックインターフェース18、出力装置17に相当し、記憶部400は、メモリ12、記憶装置13に相当する。
受付部100は、1個以上の数字の入力を受け付ける。そして、受付部100は、受け付けた数字に関する情報を、第二の特定部230、パディング部240に出力する。また、受付部100は、伝票画像を読み取る。そして、受付部100は、伝票画像を読み取り部210に出力する。
読み取り部210は、受付部100より伝票画像を受信する。そして、読み取り部210は、伝票画像から金額記入欄に記入された記入金額を読み取る。さらに、読み取り部210は、読み取った記入金額に関する情報を、第一の特定部220へ出力する。
第一の特定部220は、読み取り部210より出力された記入金額に関する情報を受信する。そして、第一の特定部220は、受信した記入金額に関する情報に基づいて伝票に記載された金額の最上位桁の単位を特定する。さらに、第一の特定部220は、最上位桁の単位に関する情報を、第二の特定部230および出力部300に出力する。
第二の特定部230は、第一の特定部220より出力された最上位桁の単位に関する情報を受信する。また、第二の特定部230は、受付部100より出力された数字に関する情報を受信する。そして、数字に関する情報と最上位桁の単位に関する情報から、第二の特定部230は、受信部100から情報を受信した1個以上の数字のそれぞれに対応する桁を最上位桁から順に特定する。第二の特定部230は、1個以上の数字のそれぞれに対応する桁について特定された情報を、パディング部240および出力部300に出力する。
パディング部240は、受付部100から、数字に関する情報を受信する。また、第二の特定部230から、1個以上の数字のそれぞれに対応する桁について特定された情報を受信する。そして、パディング部240は、数字に関する情報と1個以上の数字のそれぞれに対応する桁について特定された情報をもとにして、第二の特定部230により数字を対応付けられなかった桁に0を対応付けて金額に関する情報を生成する。パディング部240は、生成された金額に関する情報を出力部300に出力する。
出力部300は、処理部200により算出された結果を、グラフィックインターフェース18を介して出力装置17に出力する。例えば、第一の特定部220が出力した特定した最上位桁の単位に関する情報、パディング部240が出力した金額に関する情報を受信して、受信された結果を、グラフィックインターフェース18を介して出力装置17であるディスプレイに出力する。
記憶部400は、伝票定義情報2000、伝票読み取りデータ3000、桁特定データ4000、格納テーブル5000などの各種情報を記憶する。
図4は、読取装置14で読み取られる伝票1000の一例である。
伝票1000は、伝票ID1001、口座番号記入欄1002、カナ氏名記入欄1003、漢字氏名記入欄1004、取引金額記入欄1005などの取引データの記入欄を備えている、金融機関に取引を依頼する人によって記入される用紙である。
伝票ID1001は、伝票の種類ごとに付けられた個別の識別情報であり、伝票に印字されている。
口座番号記入欄1002には、預金者の口座を識別するために各預金口座に対して割り当てられる固有の番号が記入される。カナ氏名記入欄1003には、預金者の氏名がカタカナで記入される。漢字氏名記入欄1004には、預金者の氏名が漢字で記入される。取引金額記入欄1005には、取引される金額が記入される。
図5は、記憶部400に記憶された伝票定義テーブル2000の一例である。伝票定義テーブル2000は、項目「伝票ID」2001、項目「口座番号」2002、項目「金額」2003、項目「カナ氏名」2004、項目「漢字氏名」2005を有するレコードを複数レコード分格納している。
項目「伝票ID」2001には、伝票の種類ごとに一意に付けられた識別情報が格納されている。項目「口座番号」2002には、伝票において口座番号に関する情報が記入されている欄を含む矩形領域の位置を特定するための情報が格納されている。項目「金額」2003には、伝票において金額に関する情報が記入されている欄を含む矩形領域の位置を特定するための情報が格納されている。項目「カナ氏名」2004には、伝票においてカナ氏名に関する情報が記入されている欄を含む矩形領域の位置を特定するための情報が格納されている。項目「漢字氏名」2005には、伝票において漢字氏名に関する情報が記入されている欄を含む矩形領域の位置を特定するための情報が格納されている。
図5の2002乃至2005の各項目では、位置を特定するための情報の一例として、各領域につき、伝票の左上端を原点とした場合の各矩形領域それぞれの左上と右下の座標位置を示す情報が格納されている例を示している。読み取られた伝票の全体画像のうち、いずれの領域を処理対象とすべきかを、読み取り部210が特定可能な情報であれば、位置を特定するための情報はどのような形態で格納されていても構わない。
また、図5の例においては、伝票上の領域として2002乃至2005の4項目に関する情報が格納されている例を示しているが、伝票の種類に応じて伝票上にその項目に対応する領域が存在しない、すなわちこれら4項目のうち情報が格納されない項目があっても構わないし、さらに他の領域についての位置を示す情報が格納されても構わない。
ここで、伝票定義テーブル2000のレコードは、伝票1000の種類ごとに格納されている。そして、項目「伝票ID」2001に格納される情報は、図4に示したように伝票に印字されている伝票ID1001と対応付けられている。なお、各伝票において伝票番号が印字されている位置は伝票の各種類に共通して同一の位置にあるものとし、伝票番号が印字されている領域を特定する情報も、2002乃至2005の各項目と同様に、位置を特定可能な情報として予め記憶されているものとする。
また、伝票1000の規格変更、種類追加、フォーマット自体の変更があった場合には、伝票定義テーブル2000に記憶される内容も伝票1000に対応するように変更されるものとする。このとき、オペレータが、伝票定義テーブル2000の登録内容を変更してもよいし、業務管理サーバ3から送信される更新情報をもとにして、伝票処理支援装置1が伝票定義テーブル2000の記憶内容を変更してもよい。
図6は、記憶部400に記憶された伝票読み取りテーブル3000の一例である。伝票読み取りテーブル3000は、項目「識別ID」3001、項目「口座番号情報」3002、項目「金額情報」3003、項目「カナ氏名情報」3004、項目「漢字氏名情報」3005を有している。なお、以下では、項目「口座番号情報」3002と、項目「金額情報」3003と、項目「カナ氏名情報」3004と、項目「漢字氏名情報」3005とを総称して呼ぶ場合には項目という。
項目「識別ID」3001には、読み取り部210が伝票を読み取って生成する読取画像に対し、一意に識別可能に付与する識別番号を示す情報が格納される。
項目「口座番号情報」3002には、読み取り部210が読み取った伝票番号に特定される伝票定義テーブルのレコードで、「口座番号」2002に格納されている情報に従って読取画像から切り出された口座番号の部分画像が登録される。さらに、該部分画像に対する文字認識により特定された認識文字とのデータが登録される。
項目「金額情報」3003には、読み取り部210が読み取った伝票番号に特定される伝票定義テーブルのレコードで、「金額」2003に格納されている情報に従って読取画像から切り出された金額の部分画像が登録される。さらに、該部分画像に対する文字認識により特定された認識文字、金額について処理部200が特定した最上位の桁単位、特定金額のデータがそれぞれ登録される。
項目「カナ氏名情報」3004には、読み取り部210が読み取った伝票番号に特定される伝票定義テーブルのレコードで、「カナ氏名」2004に格納されている情報に従って読取画像から切り出されたカナ氏名の部分画像が登録される。さらに、該部分画像に対する文字認識により特定された認識文字のデータが登録される。
項目「漢字氏名情報」3005には、読み取り部210が読み取った伝票番号に特定される伝票定義テーブルのレコードで、「漢字氏名」2005に格納されている情報に従って読取画像から切り出された漢字氏名の部分画像が登録される。さらに、該部分画像に対する文字認識により特定された認識文字のデータが登録される。
ここで、伝票読み取りテーブル3000は、受付部100が生成した1枚の伝票1000に対する全体画像につき、図6に示される1件分のレコードが作成される。そして、読み取り部210は、伝票1000の全体画像から切り出した各部分画像を、伝票読み取りテーブル3000の項目「口座番号情報」3002、項目「金額情報」3003、項目「カナ氏名情報」3004、項目「漢字氏名情報」3005に部分画像としてそれぞれ記録する。また、読み取り部210が、各部分画像において文字認識により認識された文字を、項目「口座番号情報」3002、項目「カナ氏名情報」3004、項目「漢字氏名情報」3005に認識文字としてそれぞれ記憶する。さらに、第一の特定部220が、伝票1000に記入された金額の最上位の桁の単位を、項目「金額情報」3003に最上位桁の単位として記録する。また、パディング部240が伝票1000に記入された金額として特定した金額を、項目「金額情報」3003に特定金額として記録する。
図7に、記憶部400に記憶された桁特定テーブル4000のテーブルの一例を示す。桁特定テーブル4000は、項目「桁単位」4001と項目「桁数」4002と項目「乗数」4003とのデータを含むレコードを複数レコード分格納している。
項目「桁単位」4001には、数値の位に対応する単位が登録されている。また、項目「桁数」4002には、各々の位に対応する桁数が登録されている。さらに、項目「乗数」4003には、各々の位に対応する数値が登録されている。例えば、3レコード目(1000の位)では、桁特定テーブル4000は、項目「桁単位」4001に登録された「千」と、項目「桁数」4002に登録された「4」と、項目「乗数」4003に登録された「1000」とをそれぞれ対応付けて格納している。
図8に、記憶部400に記憶された格納テーブル5000テーブルの一例を示す。格納テーブル5000は、「1」以上の桁数に対応するフィールドを有し、第二の特定部130が特定した各桁数に対応する1個以上の数字をそれぞれ一時的に格納する。ここでは、桁数が「10」から「1」までの配列構造で、各フィールドに対応する数字が格納される例を示している。
例えば、伝票に記載された金額が「34500000円」の場合は、まず、第二の特定部230による後述の処理により、「3」に対応する桁数は「8」と判別されるので、桁数「8」のフィールドに「3」が格納される。同様、第二の特定部230は、「4」に対応する桁数は「7」と判別され、「5」に対応する桁数は「6」と判別されるので、桁数「7」のフィールドに「4」が、桁数「6」のフィールドに「5」がそれぞれ格納される。そして、パディング部240により、「5」以下のフィールドに「0」が格納される。
以下、図9に示すフローチャートと、図12から図16に示す伝票読込画面を参照して、本発明による伝票処理支援装置1の動作の一例について説明する。
本動作の初期状態として、伝票処理支援装置1のディスプレイに、伝票読込画面として図12に示す初期画面が表示される。伝票読込画面は、伝票口座表示欄と伝票金額表示欄を有する。
ステップS101において読取装置14により伝票1000が読み込まれると、受付部100が、伝票1000の全体画像を読み取る。そして、受付部100が読み取った全体画像を基にして、読み取り部210が、伝票定義テーブル2000を検索する。具体的には、受付部100が読み取った全体画像の中から、読み取り部210が、伝票ID1001を読み込み、伝票IDをキーとして伝票定義テーブル2000の項目「伝票ID」2001がキーに一致するレコードを特定する。そして、特定した項目「伝票ID」2001と対応付けられている2002乃至2005の各項目に格納されているデータを参照する。
ステップS102において、読み取り部210が、ステップS101で参照したデータに基づき、全体画像から部分画像を取得する。具体的には、読み取り部210は、伝票定義情報2000に記憶されている項目「口座番号」2002に示される位置の情報に基づいて、全体画像の中から口座番号記入欄1002に相当する矩形領域を特定し、部分画像として項目「口座番号情報」3002に格納する。また、読み取り部210は、伝票定義情報2000に記憶されている項目「金額」2003に示される位置の情報に基づいて、全体画像の中から取引金額記入欄1005に相当する矩形領域を特定し、部分画像として項目「金額情報」3003に格納する。
また、読み取り部210は、伝票定義情報2000に記憶されている項目「カナ氏名」2004に示される位置の情報に基づいて、全体画像の中からカナ氏名記入欄1003に相当する矩形領域を特定し、部分画像として項目「カナ氏名情報」3004に格納する。また、読み取り部210は、伝票定義情報2000に記憶されている項目「漢字氏名」2005に示される位置の情報に基づいて、全体画像の中から漢字氏名記入欄1004に相当する矩形領域を特定し、部分画像として項目「漢字氏名情報」3005に格納する。
この時、部分画像は、伝票読込画面に出力される。例えば、図13に示すように、口座番号記入欄1002と取引金額記入欄1005についてそれぞれの部分画像が、伝票口座表示欄と伝票金額表示欄の各表示欄と並べて、伝票読込画面に表示される。なお、部分画像は、伝票定義テーブル2000による定義ではなく、オペレータが入力装置を用いて切り出しの開始位置から終了位置までの領域を指定することで定義してもよい。
ステップS103において、読み取り部210が、各部分画像に対して文字認識を行う。読み取り部210が、部分画像に対して文字認識により特定した認識文字は、口座番号記入欄1002について項目「口座番号情報」3002に、取引金額記入欄1005について項目「金額情報」3003に、カナ氏名記入欄1003について項目「カナ氏名情報」3004に、漢字氏名記入欄1004について項目「漢字氏名情報」3005にそれぞれ記憶する。なお、取引金額記入欄1005の部分画像に対して文字認識を行う際に、通貨種類を表す「¥」などの記号や、桁区切りを示す「,」などの数字以外の文字が含まれている場合には、これを無視する。また、出力部300が、取引金額記入欄1005に、数字以外の文字や記号等が記載されている旨の警告を出力装置17に表示してもよい。
ステップS104において、第一の特定部220が、金額情報について最上位桁の単位を特定する。具体的には、第一の特定部220が、金額情報3003に格納された文字データの文字数をカウントし、桁特定テーブル4000の項目「桁数」4002を参照し、桁数として格納されている値がカウント数と一致するレコードを特定する。そして、第一の特定部220が、特定したレコードにおける項目「桁単位」4001を参照することで、最上位桁の単位を特定する。例えば、第一の特定部220が、「34500000」という文字データの文字数をカウントすることで、カウント数「8」を取得する。そして、第一の特定部220が、項目「桁数」において「8」が格納されたレコードを参照する。さらに、第一の特定部220が、参照したレコードにおいて、項目「桁単位」を参照することで、最上位桁の単位「千万」を取得する。
なお、第一の特定部220による最上位桁の単位を特定する処理は、第一の特定部220が認識文字を数字に変換することによって特定してもよい。例えば、取引金額記入欄1005の部分画像に対して文字認識された認識文字を、読み取り部210が、数値データに変換する。読み取り部210が、「34500000」という文字データを「34500000」という数値データに変換する。そして、読み取り部210が、数値データの最上位桁の単位を特定する。
このとき、取得された文字データに数字以外の文字、例えば、文字データの先頭に通貨記号などが含まれているときは、読み取り部210が、通貨記号を数値として変換せず、通貨記号は無いものとして全体の文字データを数値データに変換する。具体的には、文字データ「¥34500000」のように先頭に通貨記号を有した文字データを取得した場合において、読み取り部110が、通貨記号を無視して、文字データを「34500000」という数値データに変更する。なお、文字データから数値データへの変換処理において、無視するものは通貨記号に限られない。例えば、文字データの中に数字以外の文字や記号が含まれている場合には、読み取り部210が、文字や記号を数値として変換せず、文字や記号は無いものとして全体の文字データを数値データに変換してもよい。
ステップS105において、出力部300が、最上位桁の単位を出力装置17に出力する。図14に示す伝票読込画面のように、伝票金額を示す項目と最上位桁の単位とを含む画面を表示する。最上位桁の単位は、例えばプルダウン形式で表示され、第一の特定部220が特定した最上位桁の単位が選択された状態を初期表示として表示される。図14の例においては、伝票読込画面として、伝票口座の項目と伝票金額の項目との両方を含んだ例を示しているが、伝票から読み込まれた項目の全てを表示対象としても良いし、伝票から読み込まれた項目のうちオペレータにより予め指定された項目を表示対象としても良い。
なお、伝票金額の項目には、金融業務に関する情報を表示してもよい。例えば、金融業務ごとに異なる伝票が用いられる場合、すなわち、伝票IDによって金融業務を特定できる場合には、読み取り部210が読み取った伝票1000の伝票ID1001から伝票処理支援装置1は金融業務を特定することができる。そこで、伝票読込画面の伝票金額の項目に、特定した金融業務を表示することが考えられる。例えば、読み取り部210が読み取った伝票IDが、入金業務に関する伝票であれば、項目の欄に「入金金額」もしくは「入金」と出力することが考えられる。
ステップS101からS105の処理により、伝票処理支援装置1は、伝票の金額記入欄から読み取られた金額の最上位桁の単位を特定し、特定した最上位桁の単位をディスプレイへ出力することができる。従って、伝票処理支援装置1は、オペレータが伝票に記載された数字が何桁であるのかを数える手間を削減することができる。ひいては、オペレータによる金融業務の効率化を望むことができる。
ステップS106において、受付部100が、出力装置17に表示された最上位桁の単位を変更する操作を受け付けたか否かを判別する。変更する操作を受け付けた場合は、ステップS107へ移行する(ステップS106:YES)。一方で、変更する操作がなされなかった場合は、ステップS108へ移行する(ステップS106:NO)。
ステップS107において、入力装置15により入力された指示に基づいて、受付部100が、最上位桁の単位を変更する。例えば、図15に示す伝票読込画面のように、オペレータによる操作に応じて、プルダウン形式で表示された最上位桁の単位を異なる単位に変更することができる。
ステップS108において、第一の特定部220が、最上位桁の単位を、伝票読み取りテーブル3000の項目「金額情報」3003に記憶する。
ステップS109において、第二の特定部230が、金額特定処理を行う。第二の特定部が、受付部100により受け付けられた1個以上の数字の入力の順番と第一の特定部220により特定された最上位桁の単位とに基づいて、1個以上の数字のそれぞれに対応する桁を最上位桁から順に特定する。金額特定処理については、あとで詳細に説明する。
ステップS110において、出力部300が、特定された金額を出力装置17に出力する。例えば、図16に示す伝票読込画面のように、伝票金額表示欄に特定された金額が表示される。
図10に、図9のステップS109で実行される金額特定処理の処理フローの一例を示す。
ステップS201において、受付部100が、入力装置15により入力された1個以上の数字を受け付ける。例えば、オペレータはキーボードを利用して伝票に記入された最上位の数字から順番に入力する。例えば「34500000円」の場合は、「3」、「4」、「5」を順番に入力する。ここで本処理においては、オペレータは伝票読込画面にイメージが表示されている金額を構成する数字のうち、必ずしも全ての数字を入力する必要は無い。1の位から上位桁に向けてゼロが連続している場合、該連続したゼロは入力しなくてよい。
ステップS202において、第二の特定部230が、受付部100が1番目に受け付けた入力数字が「0」であるかを判定する。「0」であると判定された場合は、ステップS203へ移行する。一方で「0」でないと判定された場合には、ステップS204へ移行する。
ステップS203において、出力部300が、初回の入力数字が「0」であったことによるエラーメッセージを出力装置17に表示する。最上位桁が0であるはずはないので、1番目に入力された数字が0である場合、誤入力とみなせるからである。ステップS203の処理の完了後は、ステップS201へ移行する。
ステップS204において、第二の特定部230が、受付部100が受け付けた数字の個数が、読取り桁数より大きいかを判別する。具体的には、第二の特定部230が、伝票読み取りテーブル3000の項目「金額情報」3003に記憶された、最上位桁の単位を読み出す。そして、最上位桁の単位をキーとして桁特定テーブル4000の項目「桁単位」4001を参照し、参照した項目「桁単位」4001と対応づけられている項目「桁数」4002を読み出す。さらに、第二の特定部130が、受付部100が受け付けた数字の個数が桁数に示される数を超えているかを判別する。
受付部100が受け付けた数字の個数が、読取り桁数より大きいと判定された場合は、ステップS205へ移行する(ステップS204:YES)。一方で、受付部100が受け付けた数字の数が、読取り桁数より大きいと判定されなかった場合は、ステップS206へ移行する(ステップS204:NO)。
ステップS205において、出力部300が、入力桁数がオーバーしたことによるエラーメッセージを出力装置17に表示する。受付部100が受け付けた数字の数が、読取り桁数より大きいはずはないので、誤入力とみなせるからである。ステップS205の処理の完了後は、ステップS201へ移行する。
ステップS206において、第二の特定部230が、桁特定処理を行う。桁特定処理については、あとで詳細に説明する。ステップS206の処理の完了後は、元の処理、すなわち、図9のステップS110に戻る。
図11に、図10のステップS206で実行される桁特定処理の処理フローの一例を示す。
ステップS301において、第二の特定部230が、変数Nに1を、変数Mに0をそれぞれ代入する。
ステップS302において、第二の特定部230が、受付部100により受け付けられたN番目に入力された数字を、最上位桁数からM桁だけ減らした桁数として特定する。具体的には、第二の特定部230が、伝票読み取りテーブル3000の項目「金額情報」3003に記憶されている最上位桁の単位を取得する。そして、第二の特定部230が、取得した最上位桁数の単位をキーとして桁特定テーブル4000の項目「桁単位」4001を参照し、参照した項目「桁単位」4001と対応付けられている項目「桁数」4002に記憶された桁数を読み出す。さらに、第二の特定部230が、読み出した桁数からMだけ減らした桁数を算出する。そして、第二の特定部230が、受付部100により受け付けられたN番目に入力された数字を、算出された桁数として特定する。
例えば、受付部100が「3」「4」「5」の3個の数字の入力を順に受け付けた場合、最初は、N=1であるので1個目に入力された数字である「3」が、M=0であるので桁数である8から0を引いた8桁目の数字として特定されることになる。
ステップS303において、第二の特定部230が、受付部100により受け付けられたN番目の数字を、格納テーブル5000において該当する桁数についてのフィールドに格納する。
ステップS304において、第二の特定部230が、受付部100が受け付けた全ての数字について処理を行ったか判別する。全ての数字について処理を行ったときはステップS306へ移行する(ステップS304:YES)。一方で、全ての数字について処理を終えていないときは、ステップS305へ移行する(ステップS304:NO)。
ステップS305において、第二の特定部230が、N、Mにそれぞれ1を加算する。
ステップS302からステップS305の処理を繰り返すことにより、前述の例であれば、1個目に入力された数字である「3」が8桁目の数字として、2個目に入力された数字である「4」が7桁目の数字として、3個目に入力された数字である「5」が6桁目の数字として、それぞれ特定されることになる。
ステップS306において、パディング部240が、格納テーブル5000において、数字が格納されている最下位の桁数以下で、数字が格納されていない空のフィールドに数字「0」を格納する。例えば、桁数フィールド「8」に数字「3」が格納されており、桁数フィールド「7」に数字「4」が格納されており、桁数フィールド「6」に数字「5」が格納されている格納テーブル5000の場合は、パディング部240が、「5」以下の各桁数フィールドに数字「0」を格納する。
ステップS307において、パディング部240が、格納テーブル5000に格納された数字を出力する。その後、パディング部240が、格納テーブル5000に記憶された情報を削除する。このとき、パディング部240が、各フィールドに記憶された数字をもとに金額を算出する。具体的には、パディング部240が、格納テーブル5000の数字が格納された桁数をキーとして、桁数に対応する桁特定テーブル4000の項目「桁数」4002を特定する。そして、パディング部240が、特定した項目「桁数」4002と対応付けられた項目「乗数」4003を参照し、乗数を読み出す。さらに、パディング部240が、読み出した乗数と格納テーブル5000の桁数フィールドに格納された数字の積を計算することで、金額を算出する。例えば、格納テーブル5000において、桁数フィールド「8」に数字「3」が、桁数フィールド「7」に数字「4」が、桁数フィールド「6」に数字「5」が、それぞれ格納されており、「5」以下の桁数フィールドに数字「0」が格納されている場合を説明する。このとき、パディング部240が、「3×10000000+4×1000000+5×100000+0×10000+0×1000+0×100+0×10+0×1」より、「34500000」という金額を算出する。算出した金額は、パディング部240が、伝票読み取りテーブル3000の項目「金額情報」3003に特定金額として記憶する。ステップS307の処理の完了後は、ステップS110へ移行する。
桁特定処理S206によれば、伝票処理支援装置1は、オペレータにより入力された1個以上の数字の入力の順番と、特定した最上位桁の単位とに基づいて、1個以上の数字のそれぞれに対応する桁を最上位桁から順に特定し、数字を対応付けられなかった桁に0を対応付けることができる。そして、1個以上の数字のそれぞれに対応する桁を特定した結果と、前記0に対応する桁を特定した結果を対応付けて、ディスプレイへ出力することができる。従って、伝票処理支援装置1によれば、伝票に記入された金額とは、桁の単位や桁数が異なったデータが誤って入力されることを防ぐことができる。また、オペレータが金額に関する数字を入力する際に、1の位から上位桁に向けてゼロが連続している場合には、該連続したゼロを入力する必要をなくすことができる。従って、金額入力時の打鍵数を少なくすることができ、ひいては入力に係る処理時間の短縮化を図ることができる。