(57)【特許請求の範囲】
【請求項１】
複数行からなる表形式を有する帳票データを検索するための帳票データ検索装置であって、
前記帳票データから所定のキーワードが記載された行を探し出してこれを基準行とする基準行検索手段と、
この基準行検索手段によって探し出された基準行から所定方向に所定行数オフセットした行に所定の参照値に対して所定の比較条件に合致した情報が記載されているとの単位検索条件が満たされているか否かを調べるオフセット行検索手段と、
このオフセット行検索手段によって前記単位検索条件が満たされていると判断された場合に、前記基準行を抽出する抽出手段と
を備えることを特徴とする帳票データ検索装置。
【請求項２】
前記オフセット行検索手段は、互いに異なる複数の単位検索条件が満たされているか否かを夫々調べ、
前記抽出手段は、前記オフセット行検索手段によって前記複数の単位検索条件が全て満たされていると判断された場合にのみ、前記基準行を抽出する
ことを特徴とする請求項１記載の帳票データ検索装置。
【請求項３】
前記帳票データ中の前記抽出手段によって抽出された基準行を含む範囲を表示する表示手段を更に備える
ことを特徴とする請求項１記載の帳票データ検索装置。
【請求項４】
前記表示手段は、前記抽出手段によって抽出された基準行より予め定められた行数上の行から前記基準行より予め定められた行数下の行までの範囲を表示する
ことを特徴とする請求項３記載の帳票データ検索装置。
【請求項５】
前記表示手段は、前記帳票データ中の前記抽出手段によって抽出された基準行を含む範囲を表形式で表示する
ことを特徴とする請求項１記載の帳票データ検索装置。
【請求項６】
前記基準行検索手段によって参照される前記所定のキーワード，並びに、前記オフセット行検索手段によって参照される前記所定方向，前記所定行数，及び前記所定条件を夫々入力するための入力手段を更に備えた
ことを特徴とする請求項１記載の帳票データ検索装置。
【請求項７】
前記帳票データの各行は複数欄からなるとともに、
前記基準行検索手段は、所定欄に前記所定キーワードが記載されている行を探し出す
ことを特徴とする請求項１記載の帳票データ検索装置。
【請求項８】
前記帳票データの各行は複数欄からなるとともに、
前記オフセット行検索手段は、この基準行検索手段によって探し出された基準行から所定方向に所定行数オフセットした行の所定欄に所定条件に合致した情報が記載されているとの単位検索条件が満たされているか否かを調べる
ことを特徴とする請求項１記載の帳票データ検索装置。
【請求項９】
複数行からなる表形式を有する帳票データを検索するための帳票データ検索方法であって、
前記帳票データから所定のキーワードが記載された行を探し出してこれを基準行とする基準行検索ステップと、
この基準行検索ステップにおいて探し出された基準行から所定方向に所定行数オフセットした行に所定の参照値に対して所定の比較条件に合致した情報が記載されているとの単位検索条件が満たされているか否かを調べるオフセット行検索ステップと、
このオフセット行検索ステップにおいて前記単位検索条件が満たされていると判断された場合に、前記基準行を抽出する抽出ステップと
からなることを特徴とする帳票データ検索方法。
【請求項１０】
コンピュータに対して、
複数行及び複数欄からなる表形式を有する帳票データから所定のキーワードが記載された行を基準行として探し出させ、
探し出された基準行から所定方向に所定行数オフセットした行に所定の参照値に対して所定の比較条件に合致した情報が記載されているとの単位検索条件が満たされているか否かを調べさせ、
前記単位検索条件が満たされている場合に前記基準行を抽出させる
帳票データ検索プログラムを格納したコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、表形式のデータ構造を有する帳票データから所望の条件を満たした部分を検索するための帳票データ検索方法，このような帳票データ検索方法を実行する帳票データ検索装置，及び、コンピュータをこのような帳票データ検索装置として機能させるための帳票データ検索プログラムを格納したコンピュータ可読媒体に、関する。
【０００２】
【従来の技術】
商店の仕入伝票や売上伝票，保険会社の保険伝票，等の各種の帳票は、伝統的に、紙上にフォーム（罫線や項目名等）が印刷されて各項目の具体的情報が手書されるものであったが、近年では、帳票に記載された情報のコンピュータによるデータ処理を可能にするために、電子データ化されつつある。
【０００３】
このように電子データ化された各種帳票（以下、「帳票データ」という）は、伝統的な帳票に由来しているために表形式で表されるという共通性はあるものの、その具体的データ構造は、それを利用する企業等毎の仕様如何に依り、また、それを処理するアプリケーションの仕様如何に依り、千差万別である。例えば、ある企業で用いられている帳票データの形式においては複数行に同一項目の情報が記入されていたり、別の企業で用いられている帳票データの形式においては途中の行に小計欄が挿入されていたり、更に別の企業で用いられている帳票データの形式においては途中に空行が挿入されているといった如くである。従って、これら様々な帳票データを全体としてみた場合、それらは「不定型」であるということになる。
【０００４】
【発明が解決しようとする課題】
ところで、ある特定なデータ構造を有する帳票データを「定型的」なものとして扱う検索装置であれば、その「定型的」な帳票データのデータ構造に応じて、様々な検索条件に従った検索を行うことができる。例えば、図１０に示すイメージを有する帳票を考えると、『支社名』欄の各情報（“全社”，“東京”，・・）に対して『分類』欄の各情報（“スキー”，“ゴルフ”，“テニス”，“野球”，“アスレチック”，“その他”）が夫々論理的に関連付けされており、且つ、『分類』欄の各情報に対して『売上高（実績）』欄の各情報が夫々論理的に関連付けされておれば、例えば、“全社（支社名）”且つ“野球（分類）”且つ“１００００（売上高）”といった複数キーワードの論理積による検索条件に基づいて、直ちに、多数の帳票データ中からこの帳票データを探し出すことができる。
【０００５】
しかしながら、同じイメージを有する帳票データであっても上記した論理的な関連付けのなされていないデータ構造を有するものについては、上記した様な複数キーワードの論理積による検索条件に基づいた検索を行うことはできない。図１０の例では、“全社（支社名）”なる情報と“野球（分類）”なる情報と“１００００（売上高）”なる情報とは、夫々表内に散在しているので、これらのキーワードの論理積が示す情報若しくは情報領域を定義することができないのである。
【０００６】
そのため、これらの「不定型」な様々な帳票データに対して汎用に使用可能な検索方法を確立しようとすると、或る一つのキーワードに基づいて検索した後に、検索によって探し出された複数の帳票をディスプレイ上に順次表示して、他の検索条件を満たしているか否かを目視によってオペレータに確認させるしかなかった。
【０００７】
本発明は、以上のような問題点に鑑みてなされたものであり、オペレータによる目視確認を要することなく、表形式を有する不定型な帳票データを検索することができる帳票検索方法，帳票検索装置，帳票検索プログラムの提供を、課題とする。
【０００８】
【課題を解決するための手段】
本発明は、特定のキーワードが記載された基準行に対して所定方向に所定行数オフセットした行に所定条件に合致した情報が記載されていることを単位検索条件とし、このような単位検索条件（若しくは、その論理積）に基づいて検索を行うことによって、上述した課題を解決しようとするものである。
【０００９】
即ち、本発明による帳票データ検索装置は、図１の原理図に示したように、複数行からなる表形式を有する帳票データ１００を検索するための帳票データ検索装置であって、前記帳票データ１００から所定のキーワードが記載された行を探し出してこれを基準行とする基準行検索手段１０１と、この基準行検索手段１０１によって探し出された基準行から所定方向に所定行数オフセットした行に所定条件に合致した情報が記載されているとの単位検索条件が満たされているか否かを調べるオフセット行検索手段１０２と、このオフセット行検索手段１０２によって前記単位検索条件が満たされていると判断された場合に前記基準行を抽出する抽出手段１０３とを、備えることを特徴とする。
【００１０】
また、本発明による帳票データ検索方法は、複数行からなる表形式を有する帳票データを検索するための帳票データ検索方法であって、前記帳票データから所定のキーワードが記載された行を探し出してこれを基準行とする基準行検索ステップと、この基準行検索ステップにおいて探し出された基準行から所定方向に所定行数オフセットした行に所定条件に合致した情報が記載されているとの単位検索条件が満たされているか否かを調べるオフセット行検索ステップと、このオフセット行検索ステップにおいて前記単位検索条件が満たされていると判断された場合に、前記基準行を抽出する抽出ステップとからなることを、特徴とする。
【００１１】
また、本発明によるコンピュータ可読媒体は、コンピュータに対して、複数行からなる表形式を有する帳票データから所定のキーワードが記載された行を基準行として探し出させ、探し出された基準行から所定方向に所定行数オフセットした行に所定条件に合致した情報が記載されているとの単位検索条件が満たされているか否かを調べさせ、前記単位検索条件が満たされている場合に前記基準行を抽出させる帳票データ検索プログラムを、格納したことを特徴とする。
【００１２】
このように構成された本発明によると、帳票データに記載されている各情報が複数行からなる表形式で表現されてさえいれば、所定のキーワードを含む基準行と、所定条件に合致した情報が記載されているオフセット行とが、そのオフセット行が基準行に対して所定方向に所定量オフセットしているという相対位置関係に基づいて単位検索条件として関連付けされるので、表形式であること以外は不定型な帳票データであっても、オペレータの視認を要することなく検索可能となる。
【００１３】
しかも、本発明によると、検索条件が増えた場合でも、基準行をキーとして各単位検索条件の論理積が定義できるので、帳票データの多少や各帳票データの大小如何に拘わらず、検索を行うことができる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
＜帳票データファイル＞
最初に、図１０を用いて、本実施形態において検索対象となる帳票データファイルの説明を行う。この帳票データファイルは、例えば特定期間毎に作成される複数頁の帳票データを格納している（図１０においては３頁のみ図示）。同一の帳票データファイルに格納される各頁の帳票データは、互いに同じデータ構造であり、且つ、複数行×複数欄の表形式で表されている限り、様々なデータ構造をとることができる。
【００１５】
図１０の例においては、各欄は、先頭側より、『支社名』，『分類』，『売上高』，・・と、定義されている。また、各行は、７行毎に区切られ、その７行中の２行目の『支社名』欄に具体的な支社名（“全社”を含む）が記載され、１乃至６行目の『分類』欄に具体的な分類名（“その他”を含む）が記載され、１乃至６行目の『売上高』欄に具体的数値が記載されている。また、その７行中の７行目の『支社名』欄には“合計”と記載され、同『分類』欄は空欄とされ、同『売上高』欄には、１乃至６行目の『売上高』欄の数値の合計が記載されている。なお、この帳票データに記載された各情報は、行の位置及び欄の位置によって特定することができるが、他の情報とは何ら関連付けはなされていないものとする。但し、そのような関連付けがなされていたとしても、本実施形態を適用する上では、何ら支障とならない。
＜帳票データ検索装置の構成＞
次に、本実施形態において帳票データ検索プログラムを実行することによって帳票データ検索装置１として機能するコンピュータの構成を、説明する。
[ハードウェア構成]
帳票データ検索装置１は、図２に示すように、バスＢを介して互いに接続されたＣＰＵ１０，ＲＡＭ１１，ＣＤドライブ（ＣＤＤ）１２，ディスプレイ１４，ハードディスク（ＨＤＤ）１５，インターフェース１６，１７と、一方のインターフェース１６に接続されたキーボード１８と、他方のインターフェース１７に接続されたマウス１９とから、構成されている。
【００１６】
これらのうち、ハードディスク１５は、各種プログラム（図３乃至図５に示される帳票データ検索プログラムやオペレーティングシステム等）及び上述した帳票データファイルを格納しているコンピュータ可読媒体としてのディスク装置である。なお、上述したオペレーティングシステムとしては、例えば、マイクロソフト社のウインドウ９８（商標）が用いられる。
【００１７】
ＣＰＵ１０は、ハードディスク１５から各種プログラムを読み込んで実行することによって基準行検索手段，オフセット行検索手段および抽出手段としての処理を実行する処理装置である。このＣＰＵ１０が実行する処理の内容については、後において詳しく説明する。
【００１８】
ＲＡＭ１１は、ＣＰＵ１０よってハードディスク１５から読み出されたプログラムが展開される作業メモリである。なお、このＲＡＭ１１上では、ＣＰＵ１０が帳票データ検索プログラムを実行することによって、検索結果情報（図６参照）及び一覧表示データ（図８参照）が夫々生成され、ＣＰＵ１０自身によって参照される。
【００１９】
ＣＤドライブ１２は、流通段階にある上述した帳票データ検索プログラムを格納したコンピュータ可読媒体であるＣＤ−ＲＯＭから、この帳票データ検索プログラムを読み出すディスク装置である。なお、このＣＤドライブ１２によって読み出された帳票データ検索プログラムは、ＣＰＵ１０によって、ハードディスク１５内にインストールされる。
【００２０】
ディスプレイ装置１４は、ＣＰＵ１０が帳票データ検索プログラムを実行することによって生成された各種画面（ウィンドウ，ダイアログ）を、上述したオペレーティングシステムに従って表示する表示手段としての装置である。
【００２１】
キーボード１８は、コンポーネント作成用コンピュータ１のオペレータが各種の文字入力を行う入力手段としての装置である。このキーボード１６とバスＢとの間に接続されたインターフェース１６は、キーボード１８中の押下されたキーの種類を示す信号を、対応するコード情報に変換してＣＰＵ１０に対して入力する出入力装置である。
【００２２】
マウス１９は、オペレータによって平面的に移動されることによって、移動方向及び移動量を示す信号を随時発生するとともに、オペレータによって押下されるクリックボタン（図示略）を有し、このクリックボタンの押下時にクリック信号を発生する入力手段としてのポインティングデバイスである。これらの信号は、インターフェース１７によってコード情報に変換されて、ＣＰＵ１０に入力される。
[ソフトウェア構成]
次に、図３乃至図５のフローチャート，図６及び図８のデータ構造図，並びに、図７及び図９の画面例を参照して、帳票データ検索プログラム実行時におけるソフトウェア構成を説明する。
【００２３】
なお、上述したオペレーティングシステムは、ＣＰＵ１０に対して、ディスプレイ装置１４上に表示される画面中に文字入力カーソル及びマウスカーソルを表示させる。但し、文字入力カーソルは、表示された画面（ウィンドウ，ダイアログ）がテキストボックスを有している場合には、そのテキストボックス内にのみ表示される。オペレーティングシステムは、ＣＰＵ１０に対して、キーボード１８を介して文字が入力された時には、ディスプレイ装置１４上に表示された画面中の文字入力カーソルの表示位置へ、入力された文字を設定させると同時に、文字入力カーソルの位置を一文字分右へずらさせる。また、オペレーティングシステムは、ＣＰＵ１０に対して、キーボード１８に含まれるタブキー（図示略）が押下された時には、文字入力カーソルを、同一画面内における他のテキストボックスへ移動させる。さらに、オペレーティングシステムは、ＣＰＵ１０に対して、マウス１９の移動方向及び移動量を示す信号が入力された時には、マウス１９の移動方向及び移動量を解析させ、その移動方向及び移動量に応じて、ディスプレイ装置１４上に表示されたマウスカーソルを移動させる。また、オペレーティングシステムは、ＣＰＵ１０に対して、クリック信号が入力された時には、その時点でマウスカーソルが重なっている画面（ウインドウ）を表示させているプログラムをアクティブにさせるとともに、文字入力カーソルの位置を、マウスカーソルの表示位置へ移動させる。また、クリック信号が入力された時点で画面中における何れかのボタンにマウスカーソルが重なっている場合（以下、このような場合の事を、「ボタンがクリックされた」と表現する）には、オペレーティングシステムは、ＣＰＵ１０に対して、そのボタンに予め対応付けられたコマンドに応じた処理を実行させる。
【００２４】
図３乃至図５に示される帳票データ検索プログラムに従った処理は、オペレータがキーボード１８を介してスタートコマンドを入力することにより、若しくは、ディスプレイ装置１４上に表示されている当該帳票データ検索プログラムに関連付けられているアイコン（図示略）をオペレータがクリックすることにより、スタートする。なお、図３乃至図５のフローチャートは、便宜上、オペレーティングシステムの機能によって実現される処理の内容も、一部に含んでいる。
【００２５】
スタート後最初のＳ１では、ＣＰＵ１０は、ディスプレイ装置１４上に、帳票表示ウインドウを開いて、帳票データのイメージを表示する。より具体的には、ＣＰＵ１０は、マウス１９又はキーボード１８を介しての入力に従ってオペレータが選択した帳票データファイルをハードディスク１５からＲＡＭ１１上に読み出し、この帳票データファイル内に含まれる各頁の帳票データを、図１０に示すような表形式のイメージにて、ディスプレイ装置１４上に表示された帳票表示ウインドウ（図示略）の枠内に表示する。なお、この帳票表示ウインドウ内には、「検索」ボタンが含まれている。
【００２６】
次のＳ２では、ＣＰＵ１０は、帳票表示ウインドウ内の「検索」ボタンがクリックされたか否かをチェックする。そして、「検索」ボタンがクリックされた場合には、処理をＳ３に進める。
【００２７】
Ｓ３では、ＣＰＵ１０は、図７に示す検索画面（ダイアログ）２０を、ディスプレイ装置１４上において帳票ウインドウに並べて表示する。
【００２８】
この検索画面２０は、上下に区切られた３種類の領域から、構成されている。これらのうち最も上側の領域は、検索条件の基準となる基準行を検索するための条件（以下、「基準行条件」という）が設定される基準行条件設定領域２１である。この基準行条件設定領域２１には、基準行を検索する際のキーとなるキーワード（所定のキーワード）が指定されるキーワード指定ボックス２１ａ，このキーワードを探す帳票データ内の欄（所定欄）が指定される欄指定ボックス２１ｂが，等が、含まれている。
【００２９】
また、検索画面２０のうち最も下側の領域は、検索を開始させるためにクリックされる「検索」ボタン２３ａ，検索を実行することなくこの検索画面を閉じるためにクリックされる「キャンセル」ボタン２３ｂ，等が含まれる共通領域２３である。
【００３０】
また、基準行条件設定領域２１と共通領域２３との間に挟まれる一又は複数（図７では一つのみ図示）の領域は、基準行からオフセットした行に関する検索条件（以下、「オフセット行条件」という）が設定されるオフセット行条件設定領域２２である。このオフセット行条件設定領域２２は、初期状態においては一つのみ表示される。各オフセット行条件設定領域２２には、その検索条件によって検索される検索対象行の基準行からのオフセット量（所定行数）が指定されるオフセット量指定ボックス２２ａ，検索対象行の基準行からのオフセット方向（上か、若しくは、下か）（所定方向）が指定されるオフセット方向指定ボックス２２ｂ，検索条件（所定条件）が調べられる帳票データ中の欄（所定欄）が指定される欄指定ボックス２２ｃ，検索条件の参照値が指定される参照値指定ボックス２２ｄ，参照値に対する比較条件（等しい，以上，以下，大なり，小なり）（所定の相対関係）が指定される比較条件指定ボックス２２ｅ，当該オフセット行条件設定領域２２の下に新たなオフセット行条件設定領域２２を追加するためにクリックされる追加ボタン２２ｆ，当該オフセット行条件設定領域２２を削除するためにクリックされる削除ボタン２２ｇが、含まれている。なお、検索画面２０内にオフセット行条件設定領域２２が一つしかない場合には、そのオフセット行条件設定領域２２の削除ボタン２２ｇはクリック不能となるので、削除ボタン２２ｇはその旨を示す色で表示される。また、参照値指定ボックス２２ｄに設定される参照値としては、欄指定ボックス２２ｃによって指定される欄に入力される情報の属性に拠り、数値又は文字又は日付が設定される。
【００３１】
次のＳ４では、ＣＰＵ１０は、キーボード１８又はマウス１９を介して何らかのデータが入力されるのを待つ。そして、何らかのデータ入力があった場合には、ＣＰＵ１０は、処理をＳ５へ進める。
【００３２】
Ｓ５では、ＣＰＵ１０は、データ入力の内容を解析し、キーボード１８を介しての文字入力であれば処理をＳ６へ進め、キャンセルボタン２３ｂがクリックされた場合には処理をＳ７へ進め、検索ボタン２３ａがクリックされた場合には処理をＳ１１へ進め、追加ボタン２２ｆがクリックされた場合には処理をＳ８へ進め、削除ボタン２２ｇがクリックされた場合には処理をＳ９へ進め、その他の入力があった場合には処理をＳ１０へ進める。
【００３３】
Ｓ６では、ＣＰＵ１０は、検索画面２０の何れかのテキストボックス２１ｂ，２１ａ，２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ内の文字入力カーソルの表示位置に、それまでに入力された文字列を設定する（書き込む）。ＣＰＵ１０は、Ｓ６の完了後、処理をＳ４へ戻し、次の入力を待つ。
【００３４】
一方、Ｓ７では、ＣＰＵ１０は、検索画面２０を閉じる。ＣＰＵ１０は、Ｓ７の完了後、処理をＳ４へ戻し、次の入力を待つ。
【００３５】
一方、Ｓ８では、ＣＰＵ１０は、クリックされた追加ボタン２２ｆが含まれるオフセット行条件設定領域２２の下に、新たなオフセット行条件設定領域２２を追加挿入する。ＣＰＵ１０は、Ｓ８の完了後、処理をＳ４へ戻し、次の入力を待つ。
【００３６】
一方、Ｓ９では、ＣＰＵ１０は、クリックされた削除ボタン２２ｇが含まれるオフセット行条件設定領域２２を削除する。ＣＰＵ１０は、Ｓ９の完了後、処理をＳ４へ戻し、次の入力を待つ。
【００３７】
一方、Ｓ１０では、ＣＰＵ１０は、入力された内容に応じた処理を実行する。例えば、各テキストボックス２１ｂ，２１ａ，２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅに付加された矢印ボタンがクリックされた場合には、ＣＰＵ１０は、そのテキストボックスに設定され得る文字列群を予め列挙したドロップダウンリストボックスを表示し、その後、そのドロップダウンリストボックス内の何れかの文字列がクリックされた場合には、その文字列を対応するテキストボックス内に設定する。ＣＰＵ１０は、Ｓ１０の完了後、処理をＳ４へ戻し、次の入力を待つ。
【００３８】
一方、Ｓ１１では、ＣＰＵ１０は、検索画面２０の各テキストボックス２１ｂ，２１ａ，２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅに設定されている文字列に基づいて、検索条件を解析する。ここで解析される検索条件は、検索画面２０において基準行条件設定領域２１に設定された基準行に関する条件（以下、「基準行条件」という）及び一又は複数のオフセット行条件設定領域２２に設定されたオフセット行に関する条件（以下、「オフセット行条件」という）が順番に連なった構造を有している。なお、一つのオフセット行条件が一つの単位検索条件に相当する。
【００３９】
次のＳ１２では、ＣＰＵ１０は、ポインタを、検索対象帳票データファイルから読み込んだデータの先頭位置（先頭頁の先頭行）に設定する。
【００４０】
続いて、ＣＰＵ１０は、検索対象帳票データファイルから読み込んだデータ内における検索条件を満たした部分を全て探し出すために、Ｓ１３乃至Ｓ２１のループ処理を実行する。
【００４１】
このループ処理に入って最初のＳ１３では、ＣＰＵ１０は、現在ポインタが設定されている行から一行づつポインタの位置を下方にむけてずらしつつ、基準条件を満たす行，即ち、欄指定ボックス２１ｂに設定された欄内にキーワード指定欄２１ａに設定されたキーワードを含む行を、順番に検索する（基準行検索手段に相当）。なお、ポインタをずらす際において、各頁の最終行の次には、次の頁の先頭行にポインタをずらす。
【００４２】
次のＳ１４では、ＣＰＵ１０は、Ｓ１３での検索の結果、基準行条件を満たす行がヒットしたか否かをチェックする。そして、基準行条件を満たす行がヒットした場合には、ＣＰＵ１０は、Ｓ１４にてヒットしたと判断した行（基準行）の上下の行が各オフセット行条件を満たしているか否かを順番に調べるために、Ｓ１５乃至Ｓ１８のサブループ処理を実行する。
【００４３】
このサブループ処理に入って最初のＳ１５では、ＣＰＵ１０は、検索条件内に次のオフセット行条件（初期においては最初のオフセット行条件）があるか否かを、チェックする。そして、次のオフセット行条件がある場合には、ＣＰＵ１０は、処理をＳ１６へ進める。
【００４４】
Ｓ１６では、ＣＰＵ１０は、当該オフセット行条件に基づいて、基準行の上又は下の行を検索する（オフセット行検索手段に相当）。より具体的には、ＣＰＵ１０は、基準行を基準として、そのオフセット行条件に対応したオフセット条件設定領域２２におけるオフセット方向指定ボックス２２ｂに設定された方向に、同オフセット量指定ボックス２２ａに設定された行数だけオフセットした行を特定し、その行における同欄指定ボックス２２ｃに設定された欄から情報（数値又は文字又は日付）を読み出す。そして、その情報が、同参照値指定ボックス２２ｄに設定された参照値に対して同比較条件指定ボックス２２ｅに設定された比較条件に合致するか否かを、調べる。
【００４５】
次のＳ１７では、ＣＰＵ１０は、Ｓ１６で検索した結果、オフセット行条件が満たされていたか否か（即ち、比較条件に合致していたか否か）を、チェックする。そして、満たされていた場合には、ＣＰＵ１０は、次のＳ１８において、ＲＡＭ１１上に、検索結果情報を作成（又は、更新）する（抽出手段の一部に相当）。このＳ１８において作成又は更新される検索結果情報のデータ構造を、図６を参照して説明する。この図６に示されるように、検索結果情報は、複数のページ情報と、各ページ情報に夫々一又は複数リンクされている行情報とから、構成されている。各ページ情報は、帳票の頁毎に生成され、帳票データファイル中における当該基準行が存在する帳票データのページ番号を示す「ページ番号」，及び、自己にリンクされている各行情報の先頭アドレスが列挙された「行情報リスト」から、構成されている。また、各行情報は、基準行及びＳ１７にてオフセット行条件が満たされていたと判断された行毎に生成され、その帳票データの頁における当該行の行番号を示す「行番号」，その帳票データにおける先頭位置を原点とした当該行の座標値（ドット数）を示す「Ｙ座標」，基準行に対する当該行のオフセット量（行数）を示す「基準の行からのオフセット」から、構成されている。Ｓ１４からこのサブループ処理に入って最初にＳ１８を実行する際には、ＣＰＵ１０は、Ｓ１４にて新たにヒットした基準行についてページ情報がなければページ情報を作成するとともに、このページ情報にリンクさせて、基準行及びＳ１７にてオフセットしていたと判断した行について行情報を作成する。また、Ｓ１４からこのサブループ処理に入って２回目以降にＳ１８を実行する際には、ＣＰＵ１０は、ページ情報にリンクさせて、Ｓ１７にてオフセットしていたと判断した行について行情報を追加作成する。Ｓ１８を完了すると、ＣＰＵ１０は、次のオフセット行条件に基づいた検索を実行するために、処理をＳ１５に戻す。
【００４６】
以上に説明したＳ１５乃至Ｓ１８のサブループ処理を繰り返した結果、検索条件中に未参照のオフセット行条件がなくなった場合には、ＣＰＵ１０は、帳票データファイル中において検索条件に完全に合致した部分がヒットしたものと判断して、処理をＳ１９へ進める。このＳ１９では、ＣＰＵ１０は、帳票表示ウインドウ内において、Ｓ１４にてヒットした基準行及びＳ１７にてヒットした全オフセット行を含む矩形の領域を、強調表示する。ＣＰＵ１０は、このＳ１９を完了すると、処理をＳ２１へ進める。
【００４７】
一方、以上に説明したＳ１５乃至Ｓ１８のサブループ処理を繰り返した結果、オフセット行条件が満たされていなかったとＳ１７にて判定した場合には、ＣＰＵ１０は、Ｓ１４にてヒットした基準行の上下の領域が検索条件に合致していなかったと判断して、処理をＳ２０へ進める。このＳ２０では、ＣＰＵ１０は、Ｓ１４にてヒットした基準の行とＳ１７にてオフセットしていたと判断した行の行情報を、削除する（抽出手段の一部に相当）。ＣＰＵ１０は、このＳ２０を完了すると、処理をＳ２１へ進める。
【００４８】
Ｓ２１が実行される時点では、Ｓ１８及びＳ２０を実行した結果として、ＲＡＭ１１上には、検索条件に合致した基準行に関するページ情報（及び、それにリンクされた行情報）のみが残存する。即ち、そのような基準行のみが抽出される（抽出手段に相当）。
【００４９】
Ｓ２１では、ＣＰＵ１０は、ポインタを、Ｓ１４にてヒットした基準行の次の行に設定する。ＣＰＵ１０は、このＳ２１を完了すると、次の基準行を探すために、処理をＳ１３へ戻す。
【００５０】
以上に説明したＳ１３乃至Ｓ２１のループ処理を繰り返した結果、最終頁の最終頁までポイントをずらし終わって、もはや基準行がヒットしなくなった場合には、ＣＰＵ１０は、処理をＳ２２へ進める。
【００５１】
Ｓ２２では、ＣＰＵ１０は、表示対象範囲の上限の基準行からのオフセット量を指定するための変数Ｘ，及び表示対象範囲の下限の基準行からのオフセット量を指定するための変数Ｚに、夫々初期値“０”を設定する。
【００５２】
次のＳ２３では、ＣＰＵ１０は、図９に示す検索結果一覧ウインドウ３０を、表示する。この検索結果一覧ウインドウ３０は、帳票データにおける表示対象範囲の上限を示す基準行からのオフセット量（行数）が指定される上限指定ボックス３０ａ，同じく表示対象範囲の下限を示す基準行からのオフセット量（行数）が指定される下限指定ボックス３０ｂ，表示対象範囲を変更するためにクリックされる「更新」ボタン３０ｃ，及び、表示対象範囲が表示される表示ボックス３０ｄを、含んでいる。
【００５３】
次に、ＣＰＵ１０は、各基準行毎にその上下の領域を表示するための一覧表示データを作成するために、Ｓ２４乃至Ｓ２７のループ処理を実行する。このループ処理に入って最初のＳ２４では、ＣＰＵ１０は、ＲＡＭ１１上の検索結果情報内に未参照の行情報があるか否かをチェックする。そして、未参照の行情報がある場合には、ＣＰＵ１０は、処理をＳ２５へ進める。
【００５４】
Ｓ２５では、ＣＰＵ１０は、検索結果情報から、アドレス順に、未参照の行情報を一つ取得（参照）する。
【００５５】
次のＳ２６では、ＣＰＵ１０は、Ｓ２５にて取得した行情報が基準行のものであるか否かを、「基準行からのオフセット」が“＝０”であるか否かに基づいてチェックする。そして、Ｓ２５にて取得した行情報が基準行のものでなかった場合，即ち、「基準行からのオフセット」が“＝０”でなかった場合には、ＣＰＵ１０は、処理をＳ２４へ戻し、次の未参照の行情報を探す。これに対して、そして、Ｓ２５にて取得した行情報が基準行のものであった場合，即ち、「基準行からのオフセット」が“＝０”であった場合には、ＣＰＵ１０は、処理をＳ２７へ進める。
【００５６】
Ｓ２７では、ＣＰＵ１０は、その行情報及びこれにリンクしているページ情報に基づいて、帳票データファイルから読み出されたデータ中の当該ページ情報が示す頁の当該行情報が示す行（基準行）よりＸ行上の行からＺ行下の行までの範囲を一覧に表示するための一覧表示データを、ＲＡＭ１１上に作成する。このＳ２７において作成される一覧表示データのデータ構造を、図８を参照して説明する。この図８に示されるように、一覧表示データは、複数のレコード情報と、各レコード情報にリンクされている複数のセル情報とから、構成されている。各レコード情報は、帳票データファイルから読み出されたデータにおける表示対象行毎に作成され、その行が表示される表示ボックス３０ｄ内のレコードに付されたシリアル番号を示す「レコード番号」，その行が存在する帳票データファイル中の頁を示す「ページ番号」，表示ボックス３０ａの左上を原点としたそのレコードの表示位置を座標値（ドット数）によって示す「Ｙ座標」，及び、自己にリンクされている各セル情報の先頭アドレスが列挙された「セル情報リスト」から、構成されている。また、各セル情報は、それにリンクされているレコード情報が示す表示対象行における各欄（即ち、その欄が表示されるレコード内のセル）毎に作成され、その欄に書き込まれたデータの型（０：文字型，１：数値型，２〜５：日付型）を示す「データの型」，そのデータの「文字列の長さ」，そのデータのコードを示す「文字列」，及び、そのデータが数値型であった場合にその数値自体を示す「数値」から、構成されている。ＣＰＵ１０は、基準行よりＸ行上の行から基準行よりＹ行下の行までの各行（基準行も含む）毎にレコード情報を作成するとともに、帳票データの各欄毎に作成したレコード情報を夫々各レコード情報にリンクさせる。なお、ＣＰＵ１０は、２回目以降にＳ２７を実行する際には、新たに作成したレコード情報及びセル情報を、既存の一覧表示データに追加する。ＣＰＵ１０は、このＳ２７を完了すると、処理をＳ２４に戻し、次の行情報を探す。
【００５７】
以上に説明したＳ２４乃至Ｓ２７のループ処理を繰り返した結果、検索結果情報内に未参照の行情報が無くなった場合には、ＣＰＵ１０は、処理をＳ２４からＳ２８へ進める。このＳ２８では、ＣＰＵ１０は、ＲＡＭ１１上に作成されている一覧表示データに基づいて、検索結果一覧ウインドウ３０の表示ボックス３０ｄ内に、帳票データファイル内の各頁の帳票データにおける表示対象行を、一覧表示する（表示手段に相当）。
【００５８】
次のＳ２９では、ＣＰＵ１０は、キーボード１８を介しての数値入力又はマウス１９を介しての更新ボタン３０ｃのクリックを待つ。そして、キーボード１８を介して数値が入力された場合には、ＣＰＵ１０は、Ｓ３０において、何れかのテキストボックス３０ａ，３０ｂ内の文字入力カーソルの表示位置に、それまでに入力された文字列を設定する（書き込む）。ＣＰＵ１０は、Ｓ３０の完了後、処理をＳ２９に戻す。
【００５９】
これに対して、更新ボタン３０ｃがクリックされた場合には、ＣＰＵ１０は、Ｓ３１において、ＲＡＭ１１上の一覧表示データを、一旦消去する。
【００６０】
次のＳ３２では、ＣＰＵ１０は、一覧表示画面３０の上限設定欄３０ａに設定された数値を変数Ｘに代入するとともに、下限設定欄３０ｂに設定された数値を変数Ｚに代入する。このＳ３２を完了すると、ＣＰＵ１０は、処理をＳ２４に戻す。
＜実施形態の動作＞
次に、上述したように構成された本実施形態による帳票データ検索装置の動作を、具体的な例に基づいて、説明する。
【００６１】
いま、図１０に示すように、或る企業グループに属する各社及び全社の日毎の売上をまとめた帳票データが、一定期間の全日数に相当する頁数だけ、帳票データファイルに格納されているとする。そして、オペレータは、この帳票データファイルから、全社の野球の売上が１００００以上であり且つアスレチックの売上が１００００以上である帳票データ（頁）を抽出することが、命じられているものとする。
【００６２】
この場合、オペレータは、帳票データ検索プログラムをスタートさせて帳票表示ウインドウ内に上記帳票データファイルを開いた後に、その帳票表示ウインドウ内の「検索」ボタンをクリックして、検索画面２０を表示させる。そして、オペレータは、この検索画面２０の基準行設定領域２１の欄指定ボックス２１ｂに「支社名」と書き込み、キーワード指定ボックス２１ａに「全社」と書き込み、オフセット行条件設定領域２２のオフセット量指定ボックス２２ａに「２」と書き込み、オフセット方向指定欄２２ｂに「行下の」と書き込み、欄指定ボックス２２ｃに「売上高（実績）」と書き込み、参照値指定ボックス２２ｄに「１００００」と書き込み、比較条件ボックス２２ｅに「以上」と書き込む。更に、オフセット行条件設定領域２２の追加ボタン２２ｆをクリックすることによって新たなオフセット行条件設定領域２２を追加表示させて、そのオフセット量指定ボックス２２ａに「３」と書き込み、オフセット方向指定欄２２ｂに「行下の」と書き込み、欄指定ボックス２２ｃに「売上高（実績）」と書き込み、参照値指定ボックス２２ｄに「１００００」と書き込み、比較条件ボックス２２ｅに「以上」と書き込む。
【００６３】
以上のようにして検索条件を設定すると、オペレータは、共通領域の「検索ボタン」２３ａをクリックする。すると、
基準行条件：指定「支社名」欄が“全社”である行があり
且つ
第１のオフセット行条件：基準行から２行下の「売上高（実績）」の数値が１００００以上であり
且つ
第２のオフセット行条件：基準行から３行下の「売上高（実績）」の数値が１００００以上である。
という３つの条件の論理積として把握される検索条件が構築される（Ｓ１１）。
【００６４】
帳票データ検索プログラムは、最初に、基準行条件に基づいて基準行を探すが（Ｓ１３）、帳票データファイル中の各頁の帳票データのデータ構造は互いに同じであるので、１頁目の帳票データの２行目に基準行がヒットする（Ｓ１３）。次に、帳票データ検索プログラムは、第１のオフセット行条件に基づいて、基準行から２行下（即ち、１頁目の４行目）の「売上高（実績）」欄の数値値が１００００以上であるか否かをチェックする（Ｓ１６，Ｓ１７）。そして、当該欄の数値が１００００以上であれば、一旦基準行とその２行下の行の２行分の行情報とこれにリンクした頁情報を作成した後に（Ｓ１８）、第２のオフセット行条件に基づいたチェックを行う（Ｓ１６，Ｓ１７）。このとき、基準行から３行下（即ち、１頁目の５行目）の「売上高（実績）」欄の数値値が１００００未満であれば上記２行分の行情報は消去されるが（Ｓ２０）、基準行から３行下（即ち、１頁目の５行目）の「売上高（実績）」欄の数値値が１００００以上であれば、次のオフセット条件はもはや無いので、基準行から３行下の行の行情報が追加されて３行分となった行情報とこれにリンクされた頁情報が維持される。そして、何れの場合も、帳票データ検索プログラムは、基準行の次の行（１頁目の６行目）から、基準行条件に基づいて、次の基準行を探す（Ｓ２１，Ｓ１３，Ｓ１４）。このようにして帳票データファイル中の全帳票データに対する検索が終了すると、最終的に、上記検索条件を完全に満たす基準行に関する頁情報及びそれにリンクした行情報のみが、検索結果情報としてＲＡＭ１１上に残ることになる。ここでは、説明の都合上、２頁目の帳票データの２行目，４行目及び５行目を示す各行情報とこれらにリンクした頁情報のみが、検索結果情報としてＲＡＭ１１上に残ったものとする。
【００６５】
次に、帳票データ検索プログラムは、一覧表示ウインドウ３０を開くが（Ｓ２３）、初期状態においては変数Ｘ，Ｚは共に“０”に初期設定されているので（Ｓ２２）、２頁目の帳票データの２行目（基準行）のみが表示ボックス３０ｄ内に表示される（抽出手段及び表示手段に相当）。
【００６６】
この時、オペレータが、抽出対象の帳票データを詳しく見るために、「全社」に関する全行の表示を望んだとする。この場合、オペレータは、一覧表示ウインドウ３０の上限ボックス３０ａに「２」と書き込むとともに、下限ボックス３０ｂに「４」と書き込んで、更新ボタン３０ｃをクリックする。すると、２頁目の１行目から６行目までの範囲の情報が、図９に示すように、一覧表示ウインドウ３０の表示ボックス３０ｄ内に表示されるのである。
【００６７】
以上説明したように、本実施形態の帳票データ検索装置によると、所定のキーワードを含む基準行と、所定条件に合致した情報が記載されているオフセット行とが、そのオフセット行が基準行に対して所定方向に所定量オフセットしているという相対位置関係に基づいて単位検索条件（オフセット行条件）として関連付けされる。しかも、このようにして定義された単位検索条件は、基準行をキーとして、他の単位検索条件との論理積の検索条件をも構成し得る。従って、表形式で表現されている限り、不定型な帳票データであっても、検索対象とすることができる。
【００６８】
【発明の効果】
以上説明したように、本発明の帳票データ検索方法，帳票データ検索装置，及び、帳票データ検索プログラムを格納したコンピュータ可読媒体によれば、オペレータによる目視確認を要することなく、表形式を有する不定型な帳票データを検索することができる
【図面の簡単な説明】
【図１】  本発明の原理図
【図２】  本発明の実施の形態である帳票データ検索装置の概略構成を示すブロック図
【図３】  帳票データ検索プログラムによる処理内容を示すフローチャート
【図４】  帳票データ検索プログラムによる処理内容を示すフローチャート
【図５】  帳票データ検索プログラムによる処理内容を示すフローチャート
【図６】  検索結果情報のデータ構造図
【図７】  検索条件画面の説明図
【図８】  一覧表示データのデータ構造図
【図９】  検索結果一覧表示ウインドウの説明図
【図１０】  帳票データファイルのデータ構造を示す説明図
【符号の説明】
１      帳票データ検索装置
１０      ＣＰＵ
１２      ＣＤドライブ
１４      ディスプレイ
１５      ハードディスク
１８      キーボード
１９      マウス
２０      検索条件画面
２１      基準行条件設定領域
２２      オフセット行条件設定領域
３０      検索結果一覧表示ウインドウ
【図１】
0004451948.tif 000002
【図２】
0004451948.tif 000003
【図３】
0004451948.tif 000004
【図４】
0004451948.tif 000005
【図５】
0004451948.tif 000006
【図６】
0004451948.tif 000007
【図７】
0004451948.tif 000008
【図８】
0004451948.tif 000009
【図９】
0004451948.tif 000010
【図１０】
0004451948.tif 000011