以下、図面に従って本発明の実施形態を説明する。図1は、ATM(Automated Teller Machine)1及びATM1に接続されるホストコンピュータ100を示す図である。ATM1は、金融機関に設置され、顧客からの操作指示に応じて、出金、入金や振込等の各種取引を自動的に行うものである。
ATM1は、CPU10、メモリ12、紙幣処理部14、硬貨処理部16、カード処理部18、通帳処理部20、表示パネル22、通信部24、及びハンドセット30を備える。CPU10は、処理プログラムを読込んでATM1全体を統括的に制御する。なお、CPU10を制御部10とも呼ぶ。
メモリ12は、各種処理プログラムを格納すると共に、各種データを記憶する。紙幣処理部14は、紙幣出入口(不図示)に投入された紙幣を鑑別して紙幣収納部(不図示)に収納する処理や、顧客から出金を指示された金額の紙幣を紙幣収納部から紙幣出入口に搬送する処理等を行う。
硬貨処理部16は、硬貨出入口(不図示)に投入された硬貨を鑑別して硬貨収納部(不図示)に収納する処理や、顧客から出金を指示された金額の硬貨を硬貨収納部から硬貨出入口へ搬送する処理等を行う。カード処理部18は、カードの読み取り、レシートの発行処理等を行う。通帳処理部20は、顧客からATM本体1に装填された通帳への記帳等の処理を行う。
表示パネル22は、タッチパネルからなるタッチ入力部と各種情報を表示する表示部からなる。表示部には、取引内容のメニューや操作ガイダンス等が表示され、処理要求などを受け付けたりする。通信部24は、通信回線を通じて接続されるホストコンピュータ100等の外部機器と取引電文等のデータの通信を制御する。
ハンドセット30は、主に視覚障がい者用のインターフェース手段である。表示パネル22は、視覚障がい者にとって操作が困難だからである。ハンドセット30はATM1本体に着脱可能に設けられ、ATM1本体とケーブルで接続される。
ハンドセット30は、入力部32、マイク34及びスピーカ36を有する。入力部32は、操作指示を入力するためのもので、例えば、「0〜9、#、及び*」からなるキーあるいはダイヤルで構成される。マイク34は、質問や依頼が有る場合に、支店の行員と通話するためのものである。スピーカ36は、支店の行員との通話用であったり、音声ガイド(操作ガイダンス)を出力するためのものである。音声ガイドは、取引の種類や操作に応じて顧客に操作を促すためのもので、音声合成データとして予め作成されたものである。
ホストコンピュータ100は、ATM1からの入出金等の各種取引依頼(取引電文)に対して、接続されたデータベース(不図示)を参照して取引の可否を判断し、回答をATM1に返信する。振込指示であれば、指定金額を顧客の口座から引落し、引落した金額を指定(選択)された金融機関へ送金する処理を行う。ATM1は、ホストコンピュータ100からの送金処理終了を受信して、取引を完了する。
図2は、振込先を選択する処理を実行する制御部10とメモリ12からなる機能ブロック図である。制御部10は、名称数字生成部40、最小桁決定部42、抽出部44、音声ガイド制御部46、入力読取部48、金融機関決定部50及びメモリ制御部52を有する。制御部10により実行される振込先を選択する処理を、名称数字生成部40〜金融機関決定部50の機能部として説明する。
名称数字生成部40は、カナ1文字を1桁の数字に変換する変換ルールに従って、金融機関の名称を表す各カナを数字の列に置き換えて、金融機関のカナ名称を数字列からなる金融機関の名称数字を生成するものである。
最小桁決定部42は、複数の金融機関の名称数字の数字列において、先頭から桁をずらしていって、先頭からの数字列が同一となる件数が所定以下となる最少の桁数を決定するものである。
抽出部44は、顧客の振込先金融機関の名称として、変換ルールに従って、金融機関の名称数字の先頭から最少桁までの数字列が前記顧客によって入力された場合に、先頭から最少桁までの部分で前記顧客によって入力された数字列に一致するような名称数字の金融機関を抽出するものである。
音声ガイド制御部46は、視覚障がい者向けの操作ガイドを、操作の順番に応じて、ハンドセット30のスピーカ36から出力させるものである。音声ガイド制御部46は、抽出部44により抽出された金融機関の名称を顧客に読上げる。
入力読取部48は、ハンドセット30の入力部32で押下されたキーを判断して、顧客により入力された情報を読取る。金融機関決定部50は、読上げられた金融機関の名称の中から顧客より選択された金融機関を、振込先として決定するものである。メモリ制御部52は、メモリ12の各データの書込みや読出しを制御する。
メモリ12は、金融機関情報ファイル12a、金融機関情報参照テーブル12b、金融機関名称数字最少桁テーブル12c、及び音声ガイドデータ12dを有する。金融機関情報ファイル12aは、各金融機関の、金融機関コード、支店コード、名称カナ、名称漢字等の各項目に関する情報から構成される。
金融機関情報参照テーブル12bは、金融機関情報ファイル12aに、名称数字生成部40によりカナから変換された名称数字と、業態番号の情報が追加されたものである。金融機関名称数字最少桁テーブル12cは、最小桁決定部42により算出された業態ごとの最小桁を示すテーブルである。音声ガイドデータ12dは、音声ガイド制御部46により用いられる音声ガイド用のデータである。
次に、視覚障がい者向けに設定された振込先を選択する処理を詳しく説明する。振込先を選択する処理について、入力最少桁テーブル生成処理と振込取引処理に分けて説明する。
<I 入力最少桁テーブル生成処理>
入力最少桁テーブル生成処理は、a)金融機関情報参照テーブル作成処理、b)名称数字(金融機関名)最少桁決定処理 からなる。a)金融機関情報参照テーブル作成処理は、主に名称数字生成部40とメモリ制御部52により実行される。b)名称数字(金融機関名)最少桁決定処理は、主に最小桁決定部42により実行される。
a)金融機関情報参照テーブル作成
図3は、ATM起動処理の手順を説明するフローチャートである。ATM1の各ユニットの電源投入を行う(ステップS10)。アプリプログラムを起動する(ステップS12)。CPU10が、メモリ12からアプリプログラムを読出して、アプリプログラムに応じて動作を開始する。CPU10が、メモリ12から、金融機関情報ファイル12aを読込む(ステップS14)。
図8A,図8Bは、金融機関情報ファイル12aの一部の例を示すその1及びその2である。金融機関情報ファイル12aは、各金融機関ごとに、金融機関コード、支店コード、名称カナ、名称漢字等の各項目に関する情報から構成される。金融機関コードは、金融機関の業態別に分けられて、付番される。図8は、金融機関を金融機関コードの小さい順に並べたものである。
図9は、金融機関の10の業態の名称と対応する金融機関コードの範囲を示す表である。業態として、「銀行」、「信用金庫」、「信用組合」、「労働金庫」、「農協」、「ゆうちょ銀行」、「信農連」、「信漁連」、「商工中金」、及び「農林中金」である。例えば「銀行」であれば、0001〜0999のコードが付番される。
図8に戻る。金融機関コードは、本体、本店、支店には同一の番号が付番される。本体は、本店と支店を包括した個別の金融機関をさす。支店コードは、1の金融機関内での、本体(0000)、本店(0001)、支店(0002〜)を区別するコードである。名称カナは、金融機関の名称をカナで示すもので、名称漢字は、金融機関の名称を漢字で示すものである。
図3に戻る。金融機関情報ファイル12aの版数情報を取得する(ステップS16)。メモリ12に記憶されている現在の金融機関情報ファイル12aが最新版であるかを確認するためである。ホストコンピュータ100から最新の金融機関情報ファイルの版数情報を取得する。メモリ12の現在の版数退避領域≠版数情報(最新)であるかを判断する(ステップS18)。版数退避領域=版数情報(最新)であると判断すると(ステップS18No)、メモリ12に記憶されている金融機関情報ファイル12aが最新版であるとしてこの処理を終了する。現在の版数退避領域≠版数情報(最新)であると判断すると(ステップS18Yes)、最新の金融機関情報ファイルに基づいて、金融機関情報参照テーブル生成処理を行う(ステップS20)。金融機関情報参照テーブルも最新ものにするためである。
図4は、金融機関情報参照テーブル生成処理のサブルーチンを示すフローチャートである。最新の金融機関情報ファイル12aをオープンする(ステップS30)。金融機関情報参照テーブル12bをメモリ12からオープンする(ステップS32)。
n←1にする(ステップS34)。nは、金融機関のレコード番号(レコード数)である。図8Aの例では、銀行一(ギンコウイチ)がn=1のレコードである。金融機関情報ファイル12aのn番目のレコードの読み込みを行う(ステップS36)。
EOF(end of file)を判断する(ステップS38)。つまり、金融機関情報ファイル12aの最後のレコードまで達したかを判断する。金融機関情報ファイル12aの全てのレコードの読込みが終了していないと判断すると(ステップS38No)、業態番号生成処理を行う(ステップS40)。金融機関情報ファイル12aには、まだ業態番号は付番されていないからである。業態番号は、図9の右端の欄で示した番号である。
図5は、業態番号生成処理のサブルーチンを示すフローチャートである。金融機関コード(n)は0001〜0999であるかを判断する(ステップS60)。図9で説明したように、金融機関コード0001〜0999の業態は「銀行」である。金融機関コード(n)が、0001〜0999であると判断すると(ステップS60Yes)、業態番号(n)←1(ステップS62)として、終了する。
金融機関コード(n)は、0001〜0999でないと判断すると(ステップS60No)、次に金融機関コード(n)は1000〜1999であるかを判断する(ステップS64)。金融機関コード(n)が1000〜1999であれば(ステップS64Yes)、業態番号(n)←2(ステップS66)とする。
同様にして、金融機関コード(n)は2005〜2949であれば(ステップS68Yes)、業態番号(n)←3(ステップS70)とする。金融機関コード(n)は2950〜2999であれば(ステップS72Yes)、業態番号(n)←4(ステップS74)とする。金融機関コード(n)は3050〜9449であれば(ステップS76Yes)、業態番号(n)←5(ステップS78)とする。
金融機関コード(n)は9900であれば(ステップS80Yes)、業態番号(n)←6(ステップS82)とする。金融機関コード(n)は3001〜3049であれば(ステップS84Yes)、業態番号(n)←7(ステップS86)とする。金融機関コード(n)は9450〜9899であれば(ステップS88Yes)、業態番号(n)←8(ステップS90)とする。
金融機関コード(n)は2004であれば(ステップS92Yes)、業態番号(n)←9(ステップS94)とする。金融機関コード(n)は3000であれば(ステップS96Yes)、業態番号(n)←0(ステップS98)とする。
図4に戻る。金融機関情報ファイル複写を行う(ステップS42)。図6は、金融機関情報ファイル複写のサブルーチンを示すフローチャートである。最新の金融機関情報ファイル12aから各情報を金融機関情報参照テーブル12bに複写する。
金融機関コード(n)←金融機関情報ファイル12aの金融機関コード(n)とする(ステップS100)。前述のようにnは、0001〜9999の金融機関コードである。支店コード(n)←金融機関情報ファイル12aの支店コード(n)とする(ステップS102)。名称カナ(n)←金融機関情報ファイル12aの名称カナ(n)とする(ステップS104)。名称漢字(n)←金融機関情報ファイル12aの名称漢字(n)とする(ステップS106)。
図4に戻る。名称数字生成を行う(ステップS44)。名称数字生成とは、金融機関情報ファイルの金融機関名カナ情報(金融機関本体、本店、支店)を数字化し登録する処理である。図7は、名称数字生成のサブルーチンを示すフローチャートである。
数字化するルールは、ア行→「1」、 カ行→「2」、 サ行→「3」 、タ行→「4」、 ナ行→「5」、 ハ行→「6」、 マ行→「7」、 ヤ行→「8」、 ラ行→「9」 、ワ行+長音→「0」、濁音及び半濁音→「*」である。なお、名称は、現状の名称に則して最大15桁とする。また、各金融機関の名称数字の桁数を15桁に揃えるために、15桁未満の名称にはスペースを挿入する。
m←1にする(ステップS110)。mは、桁数のカウンタで、先頭の1桁目を1桁とする。つまり、m=1〜15となる。また、nは、前述と同じ金融機関のレコード番号(レコード数)である。
名称カナ[n][m]はア〜オか?を判断する(ステップS112)。図8の例で、金融機関コード0001のカナ名称は、「ギンコウイチ」であるから、名称カナ〔1〕〔1〕=「ギ」となる。「ギ」≠ア〜オ であるので、名称カナ[n][m]はア〜オではないと判断される(ステップS112No)。そして、名称カナ[n][m]はカ〜コか?を判断する(ステップS116)。
一方名称カナ[n][m]はア〜オであると判断すると(ステップS112Yes)、名称数字〔n〕〔m〕←1(ステップS114)とする。そして、ステップS158に進む。
名称カナ[n][m]はカ〜コであると判断すると(ステップS116Yes)、名称数字〔n〕〔m〕←2(ステップS118)とする。そして、ステップS158に進む。
同様にして、名称カナ[n][m]はサ〜ソか?を判断して(ステップS120)、ステップS120Yesであれば、名称数字〔n〕〔m〕←3(ステップS122)とする。そして、ステップS158に進む。
また、名称カナ[n][m]はタ〜トか?を判断して(ステップS124)、ステップS124Yesであれば、名称数字〔n〕〔m〕←4(ステップS126)とする。そして、ステップS158に進む。
また、名称カナ[n][m]はナ〜ノか?を判断して(ステップS128)、ステップS128Yesであれば、名称数字〔n〕〔m〕←5(ステップS130)とする。そして、ステップS158に進む。
また、名称カナ[n][m]はハ〜ホか?を判断して(ステップS132)、ステップS132Yesであれば、名称数字〔n〕〔m〕←6(ステップS134)とする。そして、ステップS158に進む。
また、名称カナ[n][m]はマ〜モか?を判断して(ステップS136)、ステップS136Yesであれば、名称数字〔n〕〔m〕←7(ステップS138)とする。そして、ステップS158に進む。
また、名称カナ[n][m]はヤ〜ヨか?を判断して(ステップS140)、ステップS140Yesであれば、名称数字〔n〕〔m〕←8(ステップS142)とする。そして、ステップS158に進む。
また、名称カナ[n][m]はラ〜ロか?を判断して(ステップS144)、ステップS144Yesであれば、名称数字〔n〕〔m〕←9(ステップS146)とする。そして、ステップS158に進む。
また、名称カナ[n][m]はワ、ンまたは長音か?を判断して(ステップS148)、ステップS148Yesであれば、名称数字〔n〕〔m〕←0(ステップS150)とする。そして、ステップS158に進む。
また、名称カナ[n][m]は濁音又は半濁音か?を判断して(ステップS152)、ステップS152Yesであれば、名称数字〔n〕〔m〕←*(ステップS154)とする。そして、ステップS158に進む。残りの空白については、名称数字〔n〕〔m〕←スペース(ステップS156)とする。
ステップS158では、m←m+1とする。m>15かを判断する(ステップS160)。15桁を超えない場合には(ステップS160No)、ステップS112に戻り、カナの次の桁の判断に移る。m>15であると判断すると(ステップS160Yes)、全ての桁まで達したので、このサブルーチンを終了する。
図4に戻る。n←n+1(ステップS46)として、ステップS36に戻る。次の金融機関レコードに進み、次の金融機関の業態番号生成、金融機関情報ファイル複写、名称数字生成を行う。図10は、作成された金融機関情報参照テーブル12bの例である。図10A、図10B、図10Cの3つに分けて示す。金融機関情報参照テーブル12bとして、図8で示した金融機関情報ファイル12aに対して、業態番号と名称数字の欄が追加される。名称数字の欄の「△」は、スペースを示す。
EOFで、金融機関情報ファイル12aの全レコードの読込みが終了したと判断すると(ステップS38Yes)、金融機関情報ファイル12aを閉じ(ステップS48)、金融機関情報参照テーブル12bを閉じて(ステップS50)、この処理を終了する。
b−1)名称数字最少桁決定用のワークテーブル作成処理
図3に戻る。名称数字(金融機関名)最少桁決定を行う(ステップS22)。図11は、名称数字(金融機関名)最少桁決定のサブルーチンを示すフローチャートである。図11A、図11B及び図11Cは、業態別の本体数を算出する処理である。つまり、各業態ごとに本体の数を算出する処理である。本体は、支店コード0000で示されるもので、例えば「銀行一」、「銀行九十九」、「信金一」である。
図11Dは、業態別に金融機関本体のワークテーブルを作成して、各業態別に最小桁を算出する処理である。業態1〜9、0に対応するワークテーブルをそれぞれWORK1〜WORK0とする。銀行に対応するワークテーブルがWORK1となる。
金融機関情報参照テーブル12bを開く(ステップS170)。n←0とする(ステップS172)。nは、レコード番号である。i0〜i9←0とする(ステップS174)。i1、i2・・・i0は、業態別(1、2・・・0)の本体の通し番号である。例えば、i1は銀行の本体の通し番号で、i2は信用金庫の本体の通し番号である。n←n+1とする(ステップS175)。金融機関情報参照テーブル12bからn番目のレコードの読み込みを行う(ステップS176)。
EOFを判断する(ステップS178)。金融機関情報参照テーブル12bの最終レコードまで達してなければ(ステップS178No)、業態番号(n)=1?であるかを判断する(ステップS180)。業態番号1は銀行である。
業態番号(n)=1?であると判断すると(ステップS180Yes)、支店コード(n)=“0000”であるかを判断する(ステップS182)。金融機関情報参照テーブル12bから、本店や支店を除外して、本体のレコードだけを抽出するためである。
支店コード(n)=“0000”であると判断すると(ステップS182Yes)、WORK1(i1)←名称数字(n)を行う(ステップS184)。例えば、図10Aの「銀行一」であれば、WORK1(i1)=2*02114△△△△△△△△ となる。
そして、i1=i1+1として(ステップS186)、ステップS176に戻る。また、支店コード(n)=“0000”でないと判断すると(ステップS182No)、ステップS176に戻る。
また、業態番号(n)=1?でないと判断すると(ステップS180No)、業態番号(n)=2?であるかを判断する(ステップS188)。業態番号2は信用金庫である。業態番号(n)=2?であると判断する(ステップS188Yes)、ステップS190〜ステップS194において、前述のステップS182〜ステップS186と同等な処理を行う。例えば、「信金一」であれば、WORK2(i2)=302014△△△△△△△△△ となる。その後、ステップS176に戻る。
同様に、業態番号3〜0について処理を行うが、繰り返しの処理になるので、以下に簡単に説明する。業態番号(n)=3(信用組合)については、ステップS196〜ステップS202で、ステップS180〜ステップS186と同等な処理が行われる。
図11Bに移り、業態番号(n)=4(労働金庫)については、ステップS204〜ステップS210で、ステップS180〜ステップS186と同等な処理が行われる。業態番号(n)=5(農協)については、ステップS212〜ステップS218で、ステップS180〜ステップS186と同等な処理が行われる。
業態番号(n)=6(ゆうちょ銀行)については、ステップS220〜ステップS226で、ステップS180〜ステップS186と同等な処理が行われる。業態番号(n)=7(信農連)については、ステップS228〜ステップS234で、ステップS180〜ステップS186と同等な処理が行われる。
図11Cに移り、業態番号(n)=8(信漁連)については、ステップS236〜ステップS242で、ステップS180〜ステップS186と同等な処理が行われる。業態番号(n)=9(商工中金)については、ステップS244〜ステップS250で、ステップS180〜ステップS186と同等な処理が行われる。業態番号(n)=0(農林中金)については、ステップS252〜ステップS258で、ステップS180〜ステップS186と同等な処理が行われる。
EOFであると判断すると(ステップS178Yes)、前半の処理を終え、ステップS270に進む。前半の処理により業態毎の本体数が算出される。図12に、その一例を示す。また、図13は、ワークテーブルの例で、銀行のワークテーブルであるWORK1の一部である。業態毎の本体数や作成されたワークテーブルは、メモリ12に記憶される。
b−2)テーブル作成処理
図11DのステップS270から後半の処理に移る。m←0とする(ステップS270)。金融機関情報参照テーブル12bをオープンする(ステップS272)。m>9であるかを判断する(ステップS274)。mは、業態別のWORKテーブルに対応する番号である。m>9であると判断すると(ステップS274Yes)、処理を終了する。
m>9でないと判断すると(ステップS274No)、m=0?であるかを判断する(ステップS276)。m=0?であると判断すると(ステップS276Yes)、WORK←WORK0及び要素件数←i0とする(ステップS278)。この処理で、農林中金のワークテーブル(WORK0)がWORKとなる。また、i0は、ステップS258により農林中金に属する本体の総数になっている。つまり、要素件数は、特定の業態に属する本体の総数を意味する。続いて、ステップS316に進む。
また、m=0?でないと判断すると(ステップS276No)、m=1?であるかを判断する(ステップS280)。m=1は、銀行に相当する。m=1?であると判断すると(ステップS280Yes)、WORK←WORK1及び要素件数←i1とする(ステップS282)。続いて、ステップS316に進む。
同様に、m=2,3・・・9?を判断して、業態毎にWORKと要素件数を設定して、ステップS316に進む。ステップS284〜ステップS314を、以下簡単に説明する。m=2?であるかを判断して(ステップS284)、Yesの場合はWORK←WORK2及び要素件数←i2とする(ステップS286)。
m=3?であるかを判断して(ステップS288)、Yesの場合はWORK←WORK3及び要素件数←i3とする(ステップS290)。m=4?であるかを判断して(ステップS292)、Yesの場合はWORK←WORK4及び要素件数←i4とする(ステップS294)。m=5?であるかを判断して(ステップS296)、Yesの場合はWORK←WORK5及び要素件数←i5とする(ステップS298)。m=6?であるかを判断して(ステップS300)、Yesの場合はWORK←WORK6及び要素件数←i6とする(ステップS302)。
m=7?であるかを判断して(ステップS304)、Yesの場合はWORK←WORK7及び要素件数←i7とする(ステップS306)。m=8?であるかを判断して(ステップS308)、Yesの場合はWORK←WORK8及び要素件数←i8とする(ステップS310)。m=9?であるかを判断して(ステップS312)、Yesの場合はWORK←WORK9及び要素件数←i9とする(ステップS314)。
b−3)名称数字最少桁算出処理
ステップS316では、名称数字最少桁算出処理を行う。図14は、名称数字最少桁算出処理のサブルーチンを示すフローチャートである。
i←0とする(ステップS330)。iは、桁番号で、0〜14である。j←0とする(ステップS332)。jは、要素番号で、ステップS342で並べ直しされる本体の通し番号に相当する。図12の銀行の例では、jは0〜49である。k←1とする(ステップS334)。kは、要素番号オフセット数である。l←0とする(ステップS336)。lは、桁番号オフセット数である。
さらに、重複要素件数←要素件数とする(ステップS338)。要素件数は、要素の全件数で、図12の銀行の例では、50件である。重複要素件数は、名称数字の同一を比較している途中でのポイント位置を示すものである。最少桁←0とする(ステップS340)。そして、図11で作成したWORKの要素を文字列でソートする(ステップS342)。
図15は、ステップS342により、文字列(名称数字)の小さい順にソート(並べ直した)された後のワークテーブルの例である。図13で示したようなWORK1を、名称数字の小さい順に並べ直したものである。図15では、横列の0〜14が、名称数字の桁を示し、縦に同一業態の本体(例えば銀行の本体、0〜49)が配置される。なお、実際の名称数字を用いると、説明が煩雑になるので、以下の理解を容易にするために、名称数字を単純化した数字で示す。
以下、ステップS344〜ステップS348では、基準となる要素に対して、対比される要素を順番に変え、同じ桁での名称数字の異同を判断する。j+k>要素件数またはi>14であるかを判断する(ステップS344)。対比する要素が終了するか、または、桁数が最後の桁まで達したら、この処理を終了する。
j+k>要素件数またはi>14のいずれでもないと判断すると(ステップS344No)、WORK〔j〕〔i〕=WORK〔j+k〕〔i+l〕であるかを判断する(ステップS346)。jが基準となる要素の番号で、j+kが対比される要素の番号である。
最初に、WORK〔0〕〔0〕=WORK〔1〕〔0〕を判断する。図15の例では、WORK〔0〕〔0〕=0、WORK〔1〕〔0〕=0であるので、ステップS346はYesである。
WORK〔j〕〔i〕=WORK〔j+k〕〔i+l〕であると判断すると(ステップS346Yes)、k←k+1とし(ステップS348)、ステップS344に戻り、次の要素の判断を行う。例えば、続いてWORK〔0〕〔0〕=WORK〔2〕〔0〕を判断する。
WORK〔j〕〔i〕=WORK〔j+k〕〔i+l〕でないと判断すると(ステップS346No)、ステップS350に進む。図15の0桁目では、要素j+k=20(k=20)で、名称数字が「2」になった場合である。
j+k<重複要素件数であるかを判断する(ステップS350)。j+k<重複要素件数であると判断する(ステップS350Yes)、重複要素件数←j+kとする(ステップS352)。図15の0桁の例では、重複要素件数(0+20)=20となる。j+k<重複要素件数でないと判断すると(ステップS350No)、ステップS352はジャンプする。
k>9?であるかを判断する(ステップS354)。つまり、数字が同一である要素が10件以下に収まったかを判断する。k>9であると判断すると(ステップS354Yes)、つまり、要素が11件以上ある場合には、l←l+1(ステップS356)として、対比する桁を1桁ずらす。図15の例では、対比する桁を0桁→1桁目に移動させる。k←1(ステップS358)に戻し、ステップS344に戻り、1桁目で同様な検出を行う。
図15の例では、0桁目でk=20、1桁目でk=12、2桁目でk=14、3桁目でk=9となる。3桁目で要素数が10件以内になり、ステップS354Noとなる。
k>9でないと判断すると(ステップS354No)、ステップS360に進む。i+l>最少桁であるかを判断する(ステップS360)。i+lは、要素数が10件以内になった場合の桁数である。図15の例では、i+l=3である。最少桁は、ステップS340で最初は0に設定される。i+l>最少桁であると判断すると(ステップS360Yes)、最少桁←i+lとする(ステップS362)。つまり、図15の例では、最初桁=3となり、要素番号0〜8の名称については、最小桁3で10件以内に絞ることができる。最少桁は0から始まるので、入力が必要な桁数は最少桁+1となり、要素番号0〜8については、4桁となる。
i+l>最少桁でないと判断する(ステップS360No)、ステップS362をジャンプする。j←重複要素件数とする(ステップS364)。図15の例では、j=8となる。k←1に戻し(ステップS366)、l←0に戻し(ステップS368)、重複要素件数←要素件数(ステップS370)に戻して、ステップS344に戻る。
そして、j=8となり、ステップS346で、WORK〔9〕〔0〕=WORK〔10〕〔0〕から、数字の対比を再開する。要素番号9が基準となる要素になる。WORK〔9〕〔1〕≠WORK〔12〕〔1〕で、要素数が10件以内になるので、要素番号9〜11で、最少桁1となる。入力が必要な桁数は1+1=2となる。
同様に、ステップS344に戻り、ステップS346で、要素番号12を基準に代える。WORK〔12〕〔0〕≠WORK〔20〕〔0〕で、要素数が10件以内になるので、要素番号12〜19で、最少桁0となる。
ステップS344に戻り、ステップS346で、要素番号20を基準に代える。WORK〔20〕〔4〕≠WORK〔24〕〔4〕で、要素数が10件以内になるので、要素番号20〜23で、最少桁4となる。これを、ステップS344Yesとなる最後の要素(図15の例では、j=49)まで繰り返す。各最少桁の中の最大値が、ステップS362の最小桁になり、この値をこの業態の最小桁として算出する。
そして、図11Dのステップ320に進む。名称数字最少桁(m)←最少桁+1 とする(ステップS318)。また、m←m+1として(ステップS320)、業態番号を代えて、ステップS274に戻り、各業態についての最小桁を決定する。
決定された各業態の名称数字最少桁は、メモリ12に記憶される。図16は、名称数字最少桁算出処理により求められた金融機関名称最少桁テーブルの一例である。最少桁として、入力最少桁(x)を示す。
各業態の最小桁の決定後に、図3のステップS22に進む。版数情報をメモリ12の版数退避領域に書込む(ステップS24)。以上で、入力最少桁テーブル生成処理を終了する。
<II 振込取引処理>
ハンドセット30を利用しての、上述した入力最少桁テーブルによる障がい者向けの振込取引を説明する。振込取引処理は、主に、最小桁決定部42、抽出部44、音声ガイド制御部46、入力読取部48、金融機関決定部50、及びメモリ制御部52により実行される。
最初に、以下で行われる振込取引を簡単に説明する。振込取引は、大きく「業態選択、金融機関名入力、金融機関名選択、名称数字最少桁(支店名)算出、支店名入力、支店名選択」に分かれる。
ア)業態選択:希望する振込先の業態番号入力を顧客に促す。ハンドセット30により顧客から選択された業態番号に該当する名称数字最少桁(金融機関名)を抽出する。
イ)金融機関名入力:抽出された名称数字最少桁(金融機関名)の数字入力を顧客に促す。顧客から入力された数字列により、該当する金融機関名を抽出する。
ウ)金融機関名選択:候補が1つの場合、抽出された金融機関名をそのまま選択する。候補が複数の場合、ハンドセット30の電話キー配列の各数字キーに候補を割り当て、そのキー名と割り当てられた金融機関名カナを音声にて案内して、顧客に希望する金融機関名の選択を促す。入力されたキーに対応する金融機関名を選択する。
エ)名称数字最少桁(支店名)算出:ハンドセット30により顧客から選択された金融機関名に該当する名称数字最少桁(支店名)を抽出する。
オ)支店名入力:抽出された名称数字最少桁(支店名)の数字入力を顧客に促す。顧客から入力された数字列により、該当する支店名を抽出する。
カ)支店名選択:候補が1つの場合、抽出された支店名を選択する。候補が複数の場合、ハンドセット30の電話キー配列の各数字キーに候補を割り当て、そのキー名と割り当てられた支店名カナを音声にて案内することにより、顧客に希望する支店名の選択を促す。ハンドセット30により顧客から入力された数字キーに該当する支店名を選択する。
図17は、振込取引の全体の手順を説明するフローチャートである。なお、以下の操作は、ハンドセット30を通じて行われる。音声ガイド制御部46が、ハンドセット30のスピーカ36から音声ガイドの出力を制御する。
顧客に振込方法を選択させる(ステップS400)。振込方法の選択を促す音声ガイドを出力する。音声ガイドは、例えば“振込方法をお選びください。「カードによるお振込みは「1」、現金によるお振込みは「2」を押してください。”というような内容である。ハンドセット30の入力部32で押されたキーの数字により判断する。
カードが選択されたかを判断する(ステップS402)。カードが選択されたと判断すると(ステップS402Yes)、カード挿入を促す(ステップS404)。カード挿入を促す音声ガイドを出力する。音声ガイドは、例えば“カードをカード挿入口にお入れください。”という内容である。
カードが挿入されると、暗証入力を促す(ステップS406)。音声ガイドは、例えば“暗証番号を数字4桁で押してください。”という内容である。カードに対応する暗証入力が正しい番号であることが確認されたとすると、ステップS408に進む。また、カードが選択されないと判断すると(ステップS402No)、ステップS404、S406をジャンプして、ステップS408に進む。
振込方式の選択を促す(ステップS408)。音声ガイドは、例えば“振込方法をお選びください。振込カードを使用する場合は「1」、金融機関を直接指定される場合は「2」を押してください。”という内容である。
金融機関を直接指定する方式が選択されたかを判断する(ステップS410)。直接指定する方式ではなく、振込カード方式が選択されたと判断すると(ステップS410No)、振込カード方式の処理を行う(ステップS412)。振込カード方式とは、予め振込先が記憶されている振込カードを読込んで、振込先の金融機関情報を決定する方式である。詳細は省略する。
金融機関を直接指定する方式が選択されたと判断すると(ステップS410Yes)、振込先選択処理を行う(ステップS414)。図18は、振込先選択処理のサブルーチンを示すフローチャートである。
まず、業態選択音声出力を行う(ステップS500)。業態選択を促す音声ガイドを出力する。音声ガイドは、例えば“振込先の業態をお選びください。銀行は「1」、信用金庫は「2」、信用組合は「3」、労働金庫は「4」、農協は「5」、ゆうちょ銀行は「6」、信農連は「7」、信漁連は「8」、商工中金は「9」、農林中金は「0」を押してください。”という内容である。
業態番号←入力データとする(ステップS502)。顧客により「1」が入力されたとすると、業態番号として銀行が選択されたことになる。なお、業態番号として、6,9又は0が入力された場合には、ステップS526までジャンプする。図9.図12で示したように、6,9又は0の業態では、金融機関の本体はそれぞれ1つしかなく、本体を選択する必要がないからである。
次に、抽出内容←金融機関最少桁とする(ステップS504)。そして、振込先データ抽出処理を行う(ステップS506)。図19A,B,Cは、振込先データ抽出処理のサブルーチンを示すフローチャート1,2,3である。
金融機関情報参照テーブル12bをオープンする(ステップS600)。m←1とし(ステップS602)、n←0とし(ステップS604)、i←0とする(ステップS606)。
次に、抽出内容に応じた処理を選択する。抽出内容が金融機関最少桁?であるかを判断する(ステップS608)。ステップS504により、抽出内容が金融機関最少桁であると判断する(ステップS608Yes)。まず、金融機関名称数字最少桁テーブル12cをオープンする(ステップS610)。
図19Bに移る。n←n+1とする(ステップS612)。金融機関名称数字最少桁テーブル12cからn番目のレコードを読込む(ステップS614)。EOFであるかを判断する(ステップS616)。
EOFでないと判断すると(ステップS616No)、業態番号=入力された業態番号?であるかを判断する(ステップS618)。ステップS502で入力された業態番号と一致する業態番号になるまで、このループを繰り返す。つまり、図16に示すような表から、入力された業態番号と一致する業態番号を探す。業態番号=入力された業態番号?でないと判断すると(ステップS618No)、ステップS612に戻る。
業態番号=入力された業態番号?であると判断すると(ステップS618Yes)、金融機関最少桁←名称数字最少桁とする(ステップS620)。金融機関名称数字最少桁テーブル12cから一致した業態番号の名称数字最少桁を読み取り、金融機関最少桁とする。例えば、業態番号1(銀行)が入力されたとすると、金融機関最少桁=5と決定される。
また、EOFであると判断すると(ステップS616Yes)、ステップS622に進む。金融機関名称数字最少桁テーブル12cをクローズする(ステップS622)。図19の処理を終了し、図18のステップS508に進む。
図18に戻る。入力案内←金融機関最少桁とする(ステップS508)。前述の例では、入力案内=5となる。金融機関名の入力を促す音声ガイドを出力する(ステップS510)。
音声ガイドは、例えば“振込先金融機関名を数字キー「入力案内」桁で入力してください。あ行は「1」、か行は「2」、さ行は「3」、た行は「4」、な行は「5」、は行は「6」、ま行は「7」、や行は「8」、ら行は「9」、わ行または長音は「0」、濁音または半濁音は「*」を押してください。”という内容である。「入力案内」は、実際にはステップ508における金融機関最少桁の数字が出力され、例えば「5」が出力される。
金融機関名(数字)←入力データとする(ステップS512)。ステップS510の音声ガイドに従って入力された数字列を、金融機関名(数字)とする。例えば、金融機関最小桁が5桁と出力されたとすると、顧客は金融機関名(数字)として「2*021」を入力する。
次に、入力された金融機関名(数字)の数字列に一致する数字列の金融機関を全て抽出する処理を行う。抽出内容←金融機関本体とする(ステップS514)。振込先データ抽出処理を行う(ステップS516)。
再び、図19Aに移る。ステップS600〜ステップS606までは、説明済であるので説明は省略する。ステップS514により、抽出内容=金融機関本体であるので、ステップS608Noとなり、次に、抽出内容=金融機関本体?であるかを判断する(ステップS630)。ステップS514により、抽出内容=金融機関本体であると判断して(ステップS630Yes)、図19Bに移る。
n←n+1とする(ステップS632)。金融機関情報参照テーブル12bからn番目のレコードを読み込む(ステップS634)。EOFであるかを判断する(ステップS636)。EOFでないと判断すると(ステップS636No)、n番目のレコードで、業態番号=入力された業態番号?であるかを判断する(ステップS638)。異なる業態であれば、対象外であるからである。
業態番号=入力された業態番号?でないと判断すると(ステップS638No)、ステップS632に戻り、次のレコードに進む。業態番号=入力された業態番号?であると判断すると(ステップS638Yes)、支店コード=0000?であるかを判断する(ステップS640)。本店と支店を除外して、本体だけに絞るためである。支店コード=0000?でないと判断すると(ステップS640No)、ステップS632に戻り、次のレコードに進む。
支店コード=0000?であると判断すると(ステップS640Yes)、金融機関名(数字)=名称数字最少桁部分?であるかを判断する(ステップS642)。ステップS512により、金融機関名(数字)は、顧客から入力された数字列である。
名称数字最少桁部分は、名称数字の中で金融機関名(数字)の桁数分に相当する数字列である。例えば、入力された金融機関名(数字)を2*021とすると、名称数字の最小桁部分が一致するレコードを探し、図10の例では、先頭から5桁が一致する銀行一(「2*02114△△△△△△△△」)を抽出する。
金融機関名(数字)=名称数字最少桁部分?でないと判断すると(ステップS642No)、ステップS632に戻り、次のレコードに進む。金融機関名(数字)=名称数字最少桁部分?であると判断すると(ステップS642Yes)、金融機関候補数←m、金融機関候補番号m←金融機関コード、金融機関候補名(カナ)m←名称カナとする(ステップS644)。m←m+1として(ステップS646)、ステップS632に戻り、次のレコードに進む。ここで、mは10件以内である。
そして、金融機関情報参照テーブル12bの最後のレコードまで終わると、EOFとなり(ステップS636Yes)、金融機関情報参照テーブル12bをクローズして(ステップS700)、振込先データ抽出処理を終了する。この処理で、例えば、5桁目までが金融機関名(数字)2*021である金融機関候補が、何件か(最大で10件)抽出される。
図18に戻り、ステップS518に進む。入力案内←金融機関候補数、金融機関名n←金融機関候補名(カナ)nとする(ステップS518)。nは、抽出された金融機関候補数である。n=1であるかを判断する(ステップS520)。n=1でないと判断すると(ステップS520No)、金融機関選択の音声ガイドを出力する(ステップS522)。
音声ガイドは、例えば“振込先金融機関の候補は「入力案内」件です。「金融機関名1」は「1」、「金融機関名2」は「2」、「金融機関名n」は「n」を押してください。”という内容である。「入力案内」は、例えば「8」である。また、「金融機関名1」等としては、実際の金融機関名が出力される。
n←入力データとする(ステップS524)。音声ガイドを聞いて顧客から入力された番号をnとする。そして、決定金融機関コード←金融機関コードn、決定金融機関名←金融機関名(カナ)nとする(ステップS526)。1が入力されたとすると、決定金融機関コード=0001、決定金融機関名=ギンコウイチが決定される。
また、n=1であると判断すると(ステップS520Yes)、候補が1つで選択の必要がないので、ステップS522及びステップS524をジャンプして、ステップS526に進む。
次に、振込先の支店名の選択に必要な最少桁(支店名最少桁と称す)を決定する処理を行う。抽出内容←支店名最少桁とする(ステップS528)。振込先データ抽出処理を行う(ステップS530)。再び、図19Aに移る。ステップS600〜ステップS606までは、説明済であるので説明は省略する。ステップS528により、抽出内容=支店名最少桁であるので、ステップS608No及びステップS630Noとなり、次に、抽出内容=支店名最少桁?であるかを判断する(ステップS650)。抽出内容=支店名最少桁?であると判断して(ステップS650Yes)、図19Cに移る。
n←n+1とする(ステップS652)。金融機関情報参照テーブル12bからn番目のレコードを読み込む(ステップS654)。EOFであるかを判断する(ステップS656)。EOFでないと判断すると(ステップS656No)、n番目のレコードが、金融機関コード=決定金融機関コード?であるかを判断する(ステップS658)。無関係な金融機関を除外するためである。
金融機関コード=決定金融機関コードでないと判断すると(ステップS658No)、ステップS652に戻り、次のレコードに進む。金融機関コード=決定金融機関コードであると判断すると(ステップS658Yes)、支店コード≠0000?であるかを判断する(ステップS660)。本体のレコードを除外するためである。支店コード≠0000でないと判断すると(ステップS660No)、ステップS652に戻り、次のレコードに進む。
支店コード≠0000であると判断すると(ステップS660Yes)、WORK(i)←名称数字(n)とする(ステップS662)。決定金融機関に属する支店のワークテーブルを作成する。さらに、i←i+1とし(ステップS664)、ステップS652に戻り、次のレコードに進む。EOFであると判断すると(ステップS656Yes)、ステップS666に進む。
要素件数←iとする(ステップS666)。iは、決定金融機関に属する支店(本店も含む)の総数に相当する。名称数字最少桁算出処理を行う(ステップS668)。図14の名称数字最少桁算出処理で、支店に関しての最小桁を算出する。最小桁を算出する手順は、前述した金融機関名称に関してと同じであるので、詳細は省略する。
名称数字最少桁←最少桁+1とする(ステップS670)。ステップS668の名称数字最少桁算出処理で得られた最少桁を引き渡す。金融機関情報参照テーブル12bをクローズして(ステップS700)、終了する。
図18のステップS532に進む。入力案内←名称数字最少桁とする(ステップS532)。支店名の入力を促す音声ガイドを出力する(ステップS534)。
音声ガイドは、例えば“振込先支店名を数字キー「入力案内」桁で入力してください。 あ行は「1」、か行は「2」、さ行は「3」、た行は「4」、な行は「5」、は行は「6」、ま行は「7」、や行は「8」、行は「9」、わ行または長音は「0」、濁音又は半濁音は「*」を押してください。”という内容である。「入力案内」は、ステップS532における名称数字最少桁の数字が出力され、例えば「5」が出力される。
支店名(数字)←入力データとする(ステップS536)。音声ガイドを聞いて顧客から入力された名称数字最少桁分の数字列を支店名(数字)とする。抽出内容←支店レコードとする(ステップS538)。振込先データ抽出処理を行う(ステップS540)。ここでは、入力された最少桁の数字列に対応する支店候補を抽出する処理を行う。
図19に進む。ステップS600〜ステップS606までの説明は省略する。ステップS608No、ステップS630No及びステップS650Noである。抽出内容=支店レコード?であるかを判断する(ステップS680)。ステップS538により、抽出内容=支店レコード?であると判断して(ステップS680Yes)、図19CのステップS682に進む。抽出内容=支店レコード?でないと判断すると(ステップS680No)、ステップS700に進む。
n←n+1とする(ステップS682)。金融機関情報参照テーブル12bからn番目のレコードを読み込む(ステップS684)。EOFであるかを判断する(ステップS686)。EOFでないと判断すると(ステップS686No)、n番目のレコードで、業態番号=入力された業態番号?であるかを判断する(ステップS688)。異なる業態を除外するためである。
業態番号=入力された業態番号でないと判断すると(ステップS688No)、ステップS682に戻り、次のレコードに進む。業態番号=入力された業態番号であると判断すると(ステップS688Yes)、金融機関コード=決定金融機関コード?であるかを判断する(ステップS690)。無関係な金融機関を除外するためである。金融機関コード=決定金融機関コードでないと判断すると(ステップS690No)、ステップS682に戻る。
金融機関コード=決定金融機関コードであると判断すると(ステップS690Yes)、支店コード≠0000であるかを判断する(ステップS692)。本体のレコードを除外するためである。支店コード≠0000でないと判断すると(ステップS692No)、ステップS682に戻る。
支店コード≠0000であると判断すると(ステップS692Yes)、支店名(数字)=名称数字最少桁部分?であるかを判断する(ステップS694)。各レコードの中から、ステップS536で顧客から入力された支店名(数字)に一致する名称数字の最小桁部分のレコードを抽出する。
支店名(数字)=名称数字最少桁部分?でないと判断すると(ステップS694No)、ステップS682に戻る。そして、支店名(数字)=名称数字最少桁部であると判断すると(ステップS694YES)、一致したレコードにつき、支店候補数←m、支店候補番号m←支店コード、及び支店候補名(カナ)m←名称カナとする(ステップS696)。これにより、顧客が入力した数字列が一致する支店候補が抽出される。
m←m+1として(ステップS698)、ステップS682に戻る。EOFであると判断すると(ステップS686Yes)、ステップS700に進み、金融機関情報参照テーブル12bをクローズして(ステップS700)、終了する。
図18のステップS542に進む。入力案内←支店候補数、支店名n←支店候補名(カナ)nとする(ステップS542)。nは、ステップS540で抽出された支店候補数である。n=1であるかを判断する(ステップS544)。n=1であると判断すると(ステップS544No)、ステップS550にジャンプする。n=1でないと判断すると(ステップS544No)、支店名選択の音声ガイドを出力する(ステップS546)。
音声ガイドは、例えば“振込先支店の候補は“入力案内”件です。「支店名1」は「1」、「支店名2」は「2」、「支店名n」は「n」を押してください。”という内容である。「入力案内」は、実際にはステップS542における支店候補数の数字が出力され、例えば「3」が出力される。また、「支店名1」等としては、実際の「支店名」が出力される。
n←入力データとする(ステップS548)。音声ガイドを聞いて顧客から入力された数字により、支店候補の中から支店を決定する。決定支店コード←支店コードn、支店名←支店候補名(カナ)nとする(ステップS550)。決定した振込先の支店コードを決定支店コードと呼ぶ。図18の処理を終了して、図17のステップS416に進む。
図17に戻る。振込先の科目の選択を顧客に促す(ステップS416)。振込先科目選択用の音声ガイドを出力する。音声ガイドは、例えば“振込先の科目をお選びください。普通科目は「1」、貯蓄科目は「2」、当座科目は「3」を押してください。”という内容である。顧客によりハンドセット30の入力部32から振込先科目の番号が入力されたとする。
振込先口座番号入力を顧客に促す(ステップS418)。振込先口座番号入力用の音声ガイドを出力する。音声ガイドは、例えば“お振込先の口座番号をお入れください。”という内容である。顧客により入力部32から振込先口座番号が入力されたとする。
依頼人電話番号入力を顧客に促す(ステップS420)。依頼人電話番号入力の音声ガイドを出力する。音声ガイドは、例えば“あなた様の連絡先電話番号を市街局番からお入れください。”という内容である。顧客により依頼人電話番号が入力されたとする。
振込金額入力及びその確認を顧客に促す(ステップS422)。振込金額入力及びその確認用の音声ガイドを出力する。音声ガイドは、例えば“お振込みされる金額をお入れください。お振込金額はXXXXX円ですね。よろしければ「♯」を押してください。”という内容である。顧客により入力部32から振込金額入力及びその確認が入力されたとする。
振込照会送受信をホストコンピュータ100に対して行う(ステップS424)。送受信される情報は、「金融機関コード、金融機関名、支店コード、支店名、科目、口座番号、依頼人電話番号等」である。
振込内容確認を顧客に促す(ステップS426)。振込内容確認用の音声ガイドを出力する。音声ガイドは、例えば“お振込み内容を確認してください。振込先金融機関名はXXX銀行、支店名はXXX支店、振込先口座番号はXX科目XXXXXXX、連絡先電話番号はXXXXXXXXXX、振込金額はXXXXX円、振込手数料はXXX円ですね。よろしければ「♯」を押してください。”という内容である。顧客により「#」が入力されたとする。
振込カード発行の選択を顧客に促す(ステップS428)。今回の振込先を記憶した振込カードを発行するかを、顧客に問い合わせる。振込カードがあれば、次回からステップS412で説明したような簡単な操作で振込ができるようになるからである。音声ガイドは、例えば“今回のお振込内容を振込カードに登録する場合は「1」、登録しない場合は「*」を押してください。”という内容である。顧客が「1」を入力した場合には、振込カードを発行する。
現金投入を顧客に促す(ステップS430)。現金投入を顧客に促す音声ガイドを出力する。音声ガイドは、例えば、“お振込金額XXXXX円を紙幣投入口にお入れください。硬貨をお持ちの場合は硬貨投入口へお入れください。お振込金額より多くお入れになりますと、おつりとして返却します。”という内容である。また。投入後に、確認用の音声ガイドを出力する。音声ガイドは、例えば“お入れになった現金は、XXXXX円ですね。よろしければ「♯」を押してください。”という内容である。顧客により「#」が入力されたとする。
振込実行送受信を行う(ステップS432)。ATM1から振込電文がホストコンピュータ100に送信され、ホストコンピュータ100で電文に従った振込処理が実行され、処理後にホストコンピュータ100からの終了メッセージが送られ、ATM1が受信する。
媒体を返却する(ステップS434)。顧客から挿入されたカード等を返却する。返却に当たり、“お振込みの手続きが完了いたしました。カード、レシートをお受け取りください。ありがとうございました。”というようなメッセージを出力する。以上で、振込処理が終了する。
以上の実施形態によれば、視覚障がい者が単独で振込先を直接指定(選択)する取引が可能となる。そして、実際の名称より少ないキー入力で振込先の選択が可能となる。
なお、上記実施形態による振込先選択方式は、金融機関の本体の選択または支店名の選択のいずれかだけに用いて、他は別の方式で選択するようにしてもよい。また、上記実施形態では、振込先選択処理をCPUによるソフトウェア処理で実行されることで説明したが、振込先選択処理の一部または全部をハードウェアで実行するようにしてもよい。
なお、本発明は上述した実施形態そのままに限定されるものではく、実施段階でのその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素を適宜組み合わせても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。このような、発明の趣旨を逸脱しない範囲内において種々の変形や応用が可能であることはもちろんである。