(57)【特許請求の範囲】
【請求項１】
階層的に分類されたデータをファイル化して管理するファイル管理システムであって、
管理対象となる各階層の項目からなるレコードキー項目と、このレコードキー項目に対応したデータ項目及び明細用データ項目を定義するファイル定義手段と、
このファイル定義手段によって定義されたレコードキー項目とデータ項目とをフィールドとしたレコードからなる集計ファイルを生成すると共に、その集計ファイルと共通のレコードキー項目と明細用データ項目とをフィールドとしたレコードからなる明細ファイルを生成するファイル生成手段と、
このファイル生成手段によって生成された集計ファイル及び明細ファイルを構成する各項目へデータを入力するための画面を表示する表示手段と、
この表示手段に表示された画面に従ったユーザの入力操作に応じて、前記集計ファイル及び明細ファイルを構成する各項目のデータを入力する入力処理手段と、
この入力処理手段により、各階層項目に対応したデータが入力された際に、そのデータが入力された階層項目以降の下位の階層項目に特殊データを挿入して当該階層項目に属するデータを特定するレコードキーを生成して前記集計ファイルまたは前記明細ファイルの該当するレコードキー項目に登録すると共に、そのレコードキーに対応させて前記集計ファイルまたは前記明細ファイルの該当するデータ項目に入力データを登録するデータ登録手段と
を具備したことを特徴とするファイル管理システム。
【請求項２】
前記ファイル定義手段は、レコードキー項目、データ項目及び明細用データ項目を定義するための見出しを提示し、その見出しに属する項目に対応した項目名を設定することを特徴とする請求項１記載のファイル管理システム。
【請求項３】
前記ファイル定義手段は、前記見出しに属する項目に対応した項目名の設定に伴い、順次次の項目を設定することを特徴とする請求項２記載のファイル管理システム。
【請求項４】
集計対象となる各階層の項目からなる集計レコード項目と出力対象となる項目を定義すると共に出力形式を定義する出力定義手段と、
この出力定義手段によって定義された集計レコード項目と出力対象項目とをフィールドとしたレコードからなる出力ファイルを生成する出力ファイル生成手段と、
前記集計対象となる各階層の項目の中の前記出力対象項目が属する階層項目に対応したレコードキーに基づいて前記集計ファイルから出力対象データを抽出する第１のデータ抽出手段と、
この第１のデータ抽出手段によって前記集計ファイルから該当するデータを抽出できなかった場合に、当該レコードキーに基づいて前記明細ファイルの該当する項目から出力対象データを抽出する第２のデータ抽出手段と、
前記第１または第２のデータ抽出手段によって抽出された出力対象データを示すレコードキーから集計用レコードキーを生成して前記出力ファイルの集計レコード項目に登録し、その集計用レコードキーに対応させて前記抽出された出力対象データを前記出力ファイルの出力対象項目に登録すると共に、前記集計用レコードキーに基づいて前記集計対象となる各階層項目別に出力対象データを集計して、それらの集計用レコードキーと共に前記出力ファイルに登録する出力データ登録手段と、
この出力データ登録手段によって前記出力ファイルに登録された各階層項目の出力対象データを前記集計用レコードキーに基づいて抽出し、前記出力定義手段によって定義された出力形式で出力する出力手段と
を具備したことを特徴とする請求項１記載のファイル管理システム。
【請求項５】
前記出力定義手段は、集計レコード項目及び出力対象項目を定義するための見出しを提示し、その見出しに属する項目に対応した項目名を設定することを特徴とする請求項４記載のファイル管理システム。
【請求項６】
前記出力定義手段は、前記見出しに属する項目に対応した項目の設定に伴い、順次次の項目を設定することを特徴とする請求項５記載のファイル管理システム。
【請求項７】
前記第２のデータ抽出手段は、前記第１のデータ抽出手段によって前記集計ファイルから該当するデータを抽出できなかった場合に、予め指定された前記集計ファイルと前記明細ファイルとのデータ項目を関連付けるリンク情報に基づいて前記明細ファイルの該当する項目を判断し、当該レコードキーに基づいてその該当項目から出力対象データを抽出することを特徴とする請求項４記載のファイル管理システム。
【請求項８】
前記出力手段は、前記出力定義手段によって出力形式として一覧形式が定義されている場合に、前記出力ファイルから前記集計レコードキーの順番にすべての階層項目の出力対象データを抽出して一覧形式で出力することを特徴とする請求項４記載のファイル管理システム。
【請求項９】
前記出力手段は、前記出力定義手段によって出力形式としてドリリング形式が定義されている場合に、前記出力ファイルから所定の操作により指定される階層階層の出力対象データを前記集計レコードキーに基づいて選択的に抽出してドリリング形式で出力することを特徴とする請求項４記載のファイル管理システム。
【請求項１０】
コンピュータを、
管理対象となる各階層の項目からなるレコードキー項目と、このレコードキー項目に対応したデータ項目及び明細用データ項目を定義するファイル定義手段、
このファイル定義手段によって定義されたレコードキー項目とデータ項目とをフィールドとしたレコードからなる集計ファイルを生成すると共に、その集計ファイルと共通のレコードキー項目と明細用データ項目とをフィールドとしたレコードからなる明細ファイルを生成するファイル生成手段、
このファイル生成手段によって生成された集計ファイル及び明細ファイルを構成する各項目へデータを入力するための画面を表示する表示手段、
この表示手段に表示された画面に従ったユーザの入力操作に応じて、前記集計ファイル及び明細ファイルを構成する各項目のデータを入力する入力処理手段、
この入力処理手段により、各階層項目に対応したデータが入力された際に、そのデータが入力された階層項目以降の下位の階層項目に特殊データを挿入して当該階層項目に属するデータを特定するレコードキーを生成して前記集計ファイルまたは前記明細ファイルの該当するレコードキー項目に登録すると共に、そのレコードキーに対応させて前記集計ファイルまたは前記明細ファイルの該当するデータ項目に入力データを登録するデータ登録手段
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、階層的に分類されたデータをファイル化して管理するファイル管理システム及び記録媒体に関する。
【０００２】
【従来の技術】
コンピュータシステムを利用した業務処理では、例えばリレーショナル・データベース（ＲＤＢ）によって各種データを管理する業務処理が一般的に利用されている。
【０００３】
このＲＤＢでは、キーとなるデータを利用して、異なるデータを結合することができる。通常、管理単位となるグループ毎に行と列からなる２次元の表（テーブル）が複数作成される。行はレコード、列はフィールド（項目）と呼ばれる。そして、これらのテーブルは、キーを設定したフィールドによって階層順に同じ値を持つキーで連結される。
【０００４】
例えば、図３０に示すように、「品目」、「ジャンル」、「カテゴリ」、「商品」といった商品管理に関する各階層のテーブルがある場合に、これらのテーブルには、それぞれに連結先のキーが含まれており、そのキーによって各テーブルが階層順に連結される。
【０００５】
【発明が解決しようとする課題】
前述したように、一般的に利用されているＲＤＢでは、各テーブルを所定のキーによって階層順に連結しているため、途中の階層が欠如していると、テーブルの結合関係が切れてしまい、目的のデータを抽出することができなくなる問題などがある。
【０００６】
本発明は前記課題を解決するためになされたもので、途中の階層が欠如していても、すべての階層のデータを一意性を保って管理することができ、目的のデータを速やかに抽出して出力することのできるファイル管理システム及び記録媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明の態様のひとつであるシステムは、階層的に分類されたデータをファイル化して管理するファイル管理システムを前提とする。
【０００８】
そして、このシステムにおいて、管理対象となる各階層の項目からなるレコードキー項目と、このレコードキー項目に対応したデータ項目及び明細用データ項目を定義するファイル定義手段と、このファイル定義手段によって定義されたレコードキー項目とデータ項目とをフィールドとしたレコードからなる集計ファイルを生成すると共に、その集計ファイルと共通のレコードキー項目と明細用データ項目とをフィールドとしたレコードからなる明細ファイルを生成するファイル生成手段と、このファイル生成手段によって生成された集計ファイル及び明細ファイルを構成する各項目へデータを入力するための画面を表示する表示手段と、この表示手段に表示された画面に従ったユーザの入力操作に応じて、前記集計ファイル及び明細ファイルを構成する各項目のデータを入力する入力処理手段と、この入力処理手段により、各階層項目に対応したデータが入力された際に、そのデータが入力された階層項目以降の下位の階層項目に特殊データを挿入して当該階層項目に属するデータを特定するレコードキーを生成して前記集計ファイルまたは前記明細ファイルの該当するレコードキー項目に登録すると共に、そのレコードキーに対応させて前記集計ファイルまたは前記明細ファイルの該当するデータ項目に入力データを登録するデータ登録手段と有するように構成する。
【０００９】
上記の構成によれば、まず、管理対象となる各階層の項目からなるレコードキー項目と、このレコードキー項目に対応したデータ項目及び明細用データ項目を定義することにより、レコードキー項目とデータ項目とをフィールドとしたレコードからなる集計ファイルと、その集計ファイルと共通のレコードキー項目と明細用データ項目とをフィールドとしたレコードからなる明細ファイルが生成される。そして、この集計ファイル及び明細ファイルを構成する各項目にデータを入力すると、そのデータが入力された階層項目以降の下位の階層項目に特殊データが挿入されて当該階層項目に属するデータを特定するレコードキーが生成される。このレコードキーは前記集計ファイルまたは前記明細ファイルの該当するレコードキー項目に登録され、そのレコードキーに対応させて前記集計ファイルまたは前記明細ファイルの該当するデータ項目に入力データが登録される。
【００１０】
このように、集計ファイル及び明細ファイルに対するデータの入力時に、階層項目に属するデータを特定するレコードキーを生成することで、すべての階層のデータを前記レコードキーにより一意性を保って管理でき、途中の階層が欠落していても管理することができる。
【００１１】
なお、レコードキー項目、データ項目及び明細用データ項目を定義する場合において、それらを定義するための見出しを提示し、その見出しに属する項目に対応した項目名を設定することでも良い。更に、前記見出しに属する項目に対応した項目名の設定に伴い、順次次の項目を設定することも可能である。
【００１２】
また、上述した構成を有するシステムにおいて、集計対象となる各階層の項目からなる集計レコード項目と出力対象となる項目を定義すると共に出力形式を定義する出力定義手段と、この出力定義手段によって定義された集計レコード項目と出力対象項目とをフィールドとしたレコードからなる出力ファイルを生成する出力ファイル生成手段と、前記集計対象となる各階層の項目の中の前記出力対象項目が属する階層項目に対応したレコードキーに基づいて前記集計ファイルから出力対象データを抽出する第１のデータ抽出手段と、この第１のデータ抽出手段によって前記集計ファイルから該当するデータを抽出できなかった場合に、当該レコードキーに基づいて前記明細ファイルの該当する項目から出力対象データを抽出する第２のデータ抽出手段と、前記第１または第２のデータ抽出手段によって抽出された出力対象データを示すレコードキーから集計用レコードキーを生成して前記出力ファイルの集計レコード項目に登録し、その集計用レコードキーに対応させて前記抽出されたデータを前記出力ファイルの出力対象項目に登録すると共に、前記集計用レコードキーに基づいて前記集計対象となる各階層項目別に出力対象データを集計して、それらの集計用レコードキーと共に前記出力ファイルに登録する出力データ登録手段と、この出力データ登録手段によって前記出力ファイルに登録された各階層項目の出力対象データを前記集計用レコードキーに基づいて抽出し、前記出力定義手段によって定義された出力形式で出力する出力手段とを更に有するように構成する。
【００１３】
上記の構成によれば、集計対象となる各階層の項目からなる集計レコード項目と出力対象となる項目を定義すると共に出力形式を定義することにより、集計レコード項目と出力対象項目とをフィールドとしたレコードからなる出力ファイルが生成される。そして、前記集計対象となる各階層の項目の中の前記出力対象項目が属する階層項目に対応したレコードキーに基づいて前記集計ファイルから出力対象データが抽出され、その際に前記集計ファイルから該当するデータを抽出できなかった場合には、当該レコードキーに基づいて前記明細ファイルの該当する項目から出力対象データが抽出される。出力対象データが抽出されると、その出力対象データを示すレコードキーから集計用レコードキーが生成されて前記出力ファイルの集計レコード項目に登録され、その集計用レコードキーに対応させて前記抽出されたデータが前記出力ファイルの出力対象項目に登録される。更に、前記集計用レコードキーに基づいて前記集計対象となる各階層項目別に出力対象データが集計され、それらの集計用レコードキーと共に前記出力ファイルに登録された後、データ出力時に前記集計用レコードキーに基づいて抽出され、所定の出力形式で出力される。
【００１４】
このように、前記レコードキーと同様に一意性を有する集計用レコードキーの生成により、各階層項目別に出力対象項目のデータを集計でき、その際に途中の階層が欠落していても集計でき、その集計結果を所定の出力形式で出力することができる。
【００１５】
なお、集計レコード項目及び出力対象項目を定義する場合において、これらの定義するための見出しを提示し、その見出しに属する項目に対応した項目名を設定することでも良い。更に、前記見出しに属する項目に対応した項目の設定に伴い、順次次の項目を設定することも可能である。
【００１６】
また、上述した構成を有するシステムにおいて、前記第２のデータ抽出手段は、前記第１のデータ抽出手段によって前記集計ファイルから該当するデータを抽出できなかった場合に、予め指定された前記集計ファイルと前記明細ファイルとのデータ項目を関連付けるリンク情報に基づいて前記明細ファイルの該当する項目を判断し、当該レコードキーに基づいてその該当項目から出力対象データを抽出するようにしてもよい。
【００１７】
この構成によれば、前記集計ファイルに該当するデータが登録されていなかった場合に、前記集計ファイルと前記明細ファイルとのデータ項目を関連付けるリンク情報によって、前記明細ファイルの中の該当する項目からデータが抽出される。
【００１８】
また、上述した構成を有するシステムにおいて、前記出力手段は、前記出力定義手段によって出力形式として一覧形式が定義されている場合に、前記出力ファイルから前記集計レコードキーの順番にすべての階層項目の出力対象のデータを抽出して一覧形式で出力するようにしてもよい。
【００１９】
この構成によれば、出力形式として一覧形式を定義しておくことで、前記出力ファイルから前記集計レコードキーの順番にすべての階層項目の出力対象データが抽出されて一覧形式で出力される。
【００２０】
また、上述した構成を有するシステムにおいて、前記出力手段は、前記出力定義手段によって出力形式としてドリリング形式が定義されている場合に、前記出力ファイルから所定の操作により指定される階層項目の出力対象データを前記集計レコードキーに基づいて選択的に抽出してドリリング形式で出力するようにしてもよい。
【００２１】
この構成によれば、出力形式としてドリリング形式を定義しておくことで、前記出力ファイルから所定の操作により指定される階層項目の出力対象データが前記集計レコードキーに基づいて選択的に抽出されてドリリング形式で出力される。
【００２２】
なお、上述した本発明の各構成により行われる手段と同様の手段を、コンピュータに行わせるプログラムを記憶したコンピュータ読み取り可能な記憶媒体から、そのプログラムをコンピュータに読み取らせて実行させることによっても、前述した課題を解決することができる。
【００２３】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態を説明する。
【００２４】
図１は本発明の一実施形態に係るファイル管理システムの機能構成を示すブロック図である。このファイル管理システムは、階層的に分類されたデータをファイル化して管理するためのものであって、例えば磁気ディスク等の記録媒体に記録されたプログラムを読み込み、このプログラムによって動作が制御されるコンピュータによって実現される。
【００２５】
図１に示すように、本実施形態におけるファイル管理システムは、入力部１１、出力部１２、制御部１３、記憶部１４から構成される。
【００２６】
入力部１１は、キーボードやマウス等の入力装置からなり、データの入力や指示を行う。出力部１２は、ＣＲＴ（Cathode-ray tube）やＬＣＤ（Liquid Crystal Display）等の表示装置からなり、データの表示を行う。
【００２７】
制御部１３は、マイクプロセッサからなり、図示せぬＲＯＭに予め記憶されたプログラムあるいは磁気ディスク等の記録媒体に記録されたプログラムを読み込み、そのプログラムに記述された手順に従ってファイル管理に関する一連の処理を実行する。この制御部１３を機能的に表すと、ファイル定義部１５、ファイル生成部１６、データ編集部１７、出力定義部１８、出力ファイル生成部１９、出力処理部２０から構成される。
【００２８】
ファイル定義部１５は、各階層のデータを管理するためのファイルの構成を定義する部分であり、入力部１１から入力されたファイル定義に関するデータを解析し、その解析結果を所定のレコード構造に合わせた形式に直して定義ファイル２１に格納する。ファイル生成部１６は、定義ファイル２１を参照して各階層のキー項目からなるレコードキー項目とデータ項目とをフィールドとしたレコードからなる集計ファイル２２を生成すると共に、その集計ファイル２２と同じレコードキー項目と明細項目（明細用のデータ項目）とをフィールドとしたレコードからなる明細ファイル２３を生成する。なお、この集計ファイル２２及び明細ファイル２３の構成については、後に図４を参照して説明する。
【００２９】
データ編集部１７は、データ編集画面上にデータ入力用の表を作成する表作成処理と、その表の中に入力されるデータを集計ファイル２２あるいは明細ファイル２３の該当する項目に登録するデータ登録処理を行う。
【００３０】
出力定義部１８は、出力対象となるデータを管理するファイルの構成を定義する部分であり、入力部１１から入力された出力定義に関するデータを解析し、その解析結果を所定のレコード構造に合わせた形式に直して出力定義ファイル２４に格納する。出力ファイル生成部１９は、出力定義ファイル２４を参照して集計レベル項目と出力項目とをフィールドとしたレコードからなる出力ファイル２５を生成する。なお、この出力ファイル２５の構成については、後に図１５乃至図１７を参照して説明する。
【００３１】
出力処理部２０は、集計ファイル２２及び明細ファイル２３を参照してデータの集計処理を行い、その集計結果として得られたデータを出力ファイル２５に登録すると共に、指定された出力形式に従って出力ファイル２５に登録されたデータを表示するなどの出力処理を行う。
【００３２】
記憶部１４は、ＲＯＭやＲＡＭなどの内部メモリの他、磁気ディスク装置などの外部記憶装置などから構成され、本システムに必要な各種のデータを記憶する。この記憶部１４には、本システムを制御するためのプログラムなどの他に、ここでは前記ファイル２１〜２５が記憶される。
【００３３】
ここで、本システムでは、ユーザの操作がかかわるフェーズとして、（ａ）ファイル定義フェーズ、（ｂ）データ編集フェーズ、（ｃ）出力定義フェーズといった３つのフェーズを備えている。これらのフェーズは、入力部１１に設けられた特定のファンクションキーの操作あるいはメニュー画面上に設けられたメニュー項目の中から選択するといった操作により起動される。
【００３４】
以下に、本システムの処理動作を説明する前に、前記３つのフェーズの概要について説明しておく。
【００３５】
（ａ）ファイル定義フェーズ
図２は本システムのファイル定義画面の構成を示す図である。
【００３６】
ファイル定義フェーズでは、「レコードキー」、「データ項目」、「明細項目」、「リンク情報」といったファイル定義用の見出しとなるキーワードに従い、ユーザが管理対象となるデータの階層構造に合わせてファイル定義を行う。
【００３７】
図２に示すように、まず、ファイルのレコードキーを定義する場合には、ファイル定義画面上の「レコードキー」といったキーワードの下に個々のキー項目を示す「階層ｎ：」を設け、その右側に当該階層の項目名を定義する。多数のキー項目を定義するときには、読点に続けて同様に記述する。
【００３８】
ファイルのレコードキー以外の集計用のデータ項目を定義する場合には、ファイル定義画面上の「データ項目」といったキーワードの下に個々のデータ項目を示す「項目ｎ：」とその名称で定義する。多数のデータ項目を定義するときには、読点に続けて同様に記述する。
【００３９】
前記レコードキーで定義された最下位レベルのレコードに対して、その明細を定義する場合には、ファイル定義画面上の「明細項目」といったキーワードの下に個々の明細項目を示す「明細項目ｎ：」とその名称で定義する。多数の明細項目を定義するときには、読点に続けて同様に記述する。
【００４０】
前記データ項目に該当する明細項目を定義する場合には、ファイル定義画面上の「リンク情報」といったキーワードの下に「項目ｎ：明細項目ｎ」で定義する。多数のリンクを定義するときには、読点に続けて同様に記述する。
【００４１】
図２はファイル定義の一般形を表したものであり、実際には図３のような定義内容になる。
【００４２】
図３は商品の売上管理を例にした場合のファイル定義の内容を表している。図３の例では、商品の売上管理に関する「品目」、「ジャンル」、「カテゴリ」、「商品」、「仕向地」といった５階層のキー項目からなるレコードキー項目が定義されており、集計用のデータ項目として「名称」、「単価」、「売上金額」が定義されている。また、明細項目として、「伝票番号」と「売上金額」が定義されている。さらに、リンク情報として、データ項目（項目３）の「売上金額」と明細項目（明細項目２）の「売上金額」とを関連付けるリンク定義がなされている。
【００４３】
なお、上述したようなファイル定義用の見出しに属する項目に対応した項目名を設定してファイル定義を行うような場合において、ユーザがその都度設定すべき項目と項目名を記述するのではなく、次に設定すべき項目を順次表示して、その項目に対応した項目名を設定していくといった構成も可能である。すなわち、例えばレコードキー項目の定義であれば、「階層１」、「階層２」、「階層３」…といったように、レコードキー項目に属する各項目を順次表示することで、簡単にファイル定義を行うことができるようになる。
【００４４】
このようなファイル定義により、各階層のキー項目からなるレコードキー項目とそのレコードキー項目に対するデータ項目とをフィールドとしたレコード構造の集計ファイル２２が生成されると共に、その集計ファイル２２と同じレコードキー項目とそのレコードキー項目に対する明細項目とをフィールドとしたレコード構造の明細ファイル２３が生成される。
【００４５】
図４は前記商品の売上管理を例にした場合のファイルの構成を示す図であり、図４（ａ）は集計ファイル２２の構成、同図（ｂ）は明細ファイル２３の構成を示している。
【００４６】
前記図３のようなファイル定義を行うと、図４（ａ）に示すように、「品目」、「ジャンル」、「カテゴリ」、「商品」、「仕向地」といった５階層のキー項目からなるレコードキーと、そのレコードキーに対する「名称」、「単価」、「売上金額」といった３つのデータ項目とをフィールドとした集計ファイル２２が生成される。
【００４７】
また、前記図３のファイル定義により、図４（ｂ）に示すように、集計ファイル２２と同一の「品目」、「ジャンル」、「カテゴリ」、「商品」、「仕向地」といった５階層のキー項目からなるレコードキーと、そのレコードキーに対する「伝票番号」、「売上金額」といった２つの明細項目とをフィールドとした明細ファイル２３が生成される。
【００４８】
この時点では、管理対象となるデータの階層構造に合わせて集計ファイル２２及び明細ファイル２３のレコード構造が構成されただけであり、実際のデータはまだ登録されていない。集計ファイル２２及び明細ファイル２３に対するデータの登録は次のデータ編集フェーズで行われる。
【００４９】
（ｂ）データ編集フェーズ
図５は本システムのデータ編集画面の構成を示す図である。
【００５０】
データ編集フェーズでは、図５に示すようなデータ編集画面上にて各階層のデータ入力を行う。このデータ編集画面には、前記ファイル定義フェーズで定義された「レコードキー」、「データ項目」、「明細項目」をインデックスとした見出し枠３２と、データ入力用の入力罫線枠３３とからなるデータ入力用の表３１が表示される。なお、表３１の中の斜線が引かれた欄はデータを入力しない欄であることを示している。
【００５１】
また、このデータ編集画面の下部領域には、データ入力対象となる階層を切り替えるためのファイル定義フェーズで定義された階層に対応した階層変更ボタン３４、明細のデータ入力に切り替えるための明細指示ボタン３５、確定操作を指示するための確定指示ボタン３６が表示される。これらの指示ボタン３４〜３６を操作しながら、表３１の中に集計ファイル２２及び明細ファイル２３の各項目に登録すべく各階層のデータを入力していくことになる。
【００５２】
ここで、データ編集時の操作手順について説明する。
【００５３】
まず、図６乃至図８を参照して、各階層のデータを管理するためのコードとその名称を入力する場合の操作手順について説明する。
【００５４】
図６（ａ）はデータ編集画面の初期画面の状態を表しており、表３１の見出し枠３２の下に１行分の入力罫線枠３３のみが表示される。このとき、明細項目に対応する入力欄には斜線が引かれて、データを入力しない欄であることが示される。なお、図中のＣＬはカーソル（フォーカスとも呼ばれる）であり、データ入力位置を示す。
【００５５】
ここで、図６（ｂ）に示すように、初期表示されている１行目の入力罫線枠３３に最上位層である第１階層のコードとその名称などを入力する。この例では、最上位層は「品目」であり、その「品目」のコード「Ａ」と名称「品目１」が入力されている。入力後、図５に示すデータ編集画面の下部に設けられた確定指示ボタン３６をクリックして確定を指示すると、図６（ｃ）に示すように、下位の階層である第２階層のコードと名称などを入力できる入力罫線枠３３が追加表示される。そして、図６（ｄ）に示すように、この第２階層に対応した入力罫線枠３３にデータ入力後、確定指示ボタン３６をクリックして確定を指示すれば、更に下位の階層の入力罫線枠３３が追加表示される。
【００５６】
以後同様にして、図７及び図８に示すように、データ入力操作に伴い、各階層の入力罫線枠３３が順次表示され、そこに各階層のデータを入力していくことができる。最終的には最下位層のデータ入力となるが、その際には同一階層のコードと名称などを入力できる入力罫線枠３３が追加表示される。また、途中で別の階層に切り替えたい場合には、階層変更ボタン３４の中の所望の階層数が表記された階層ボタンをクリックすれば、その階層に対応した入力罫線枠３３が追加表示され、そこに当該階層のデータを入力することができる。
【００５７】
以上が各階層のコードとその名称を入力する場合での操作例である。
【００５８】
次に、図９乃至図１０を参照して、管理上の固定的なデータや集計値、あるいは明細データを入力する場合の操作手順について説明する。
【００５９】
管理上の固定的なデータや集計値、あるいは明細データを入力する場合において、表３１の入力罫線枠３３の中のデータ項目のうち該当する欄にカーソルＣＬを移して、そこにデータを入力する。
【００６０】
管理上の固定的なデータとは商品管理の場合には商品の単価データである。例えば、「商品１０１」に対する単価データを入力する場合には、図９（ａ）に示すように、入力罫線枠３３の中の「商品１０１」に対応した「単価」の欄にカーソルＣＬを移し、そこにデータを「１０１」といった単価データを入力する。その際に、管理上の集計値（ここでは売上金額）も入力できる。図９（ｂ）に「商品１０１」に対する「単価」のデータと「売上金額」のデータを入力した例を示す。
【００６１】
また、「商品１０１」にカーソルＣＬがあるときに確定操作を行うと、図１０（ａ）に示すように、下位階層である「仕向地」のデータを入力できる入力罫線枠３３が追加表示されるが、その際に明細指示ボタン３５をクリックすると、図１０（ｂ）に示すように、明細データを入力できる状態に切り替わる。ここで、図１１（ａ）に示すように、例えば「商品１０１」に対応した「伝票番号」の欄に「００１」といった伝票番号データ、「売上金額」の欄に「７０７」といった売上金額データを入力して確定すると、図１１（ｂ）に示すように、明細データ入力用の入力罫線枠３３が追加表示される。
【００６２】
以上が管理上の固定的なデータや集計値、あるいは明細データを入力する場合での操作例である。
【００６３】
なお、前記操作例では、図６〜図８の順で各階層のコードと名称を入力してから、図９〜図１１の順で管理上のデータを入力するものであったが、各階層のコードと名称を入力しながら、当該階層に対応した管理上のデータを入力するといった操作も可能である。
【００６４】
このような入力操作により最終的に得られたデータ編集結果が図５である。図５の例では、「商品１０１」に関しては、集計管理の最小単位とする階層レベルまでデータが入力されているが、「商品１０２」に関しては、集計値である売上金額が抜けている。また、「商品２０１」に関しては、その上位層である「カテゴリ」の階層が欠落している。「商品３０１」に関しては、集計値である売上金額が抜けている。
【００６５】
本システムでは、このようなデータの欠落や、途中で階層が欠如している場合であっても、すべての階層のデータを一意性を保って管理することができる。
【００６６】
ここで、図１２及び図１３を参照して、すべての階層のデータを一意性を保って管理するためのファイルのデータ構造について説明する。
【００６７】
図１２は集計ファイル２２のデータ構造、図１３は明細ファイル２３のデータ構造を示すものであり、それぞれのファイルの内容は前記図５のデータ編集結果に対応したものである。なお、空欄の箇所はデータがＮｕｌｌ（データ無し）であることを示す。
【００６８】
集計ファイル２２は各階層のキー項目からなるレコードキー項目とデータ項目とで構成される。各階層のキー項目は、「品目」、「ジャンル」、「カテゴリ」、「商品」、「仕向地」であり、データ項目は、「名称」、「単価」、「売上金額」である。これらは前記ファイル定義フェーズにてユーザにより設定されたものである。また、明細ファイル２３は前記集計ファイル２２と同じレコードキー項目と明細項目（明細用のデータ項目）とで構成される。明細項目は、「伝票番号」、「売上金額」であり、これらは前記ファイル定義フェーズにてユーザにより設定されたものである。
【００６９】
ここで、集計ファイル２２のレコードキーは一意性を持つが、明細ファイル２３のレコードキーは一意とはならない。すなわち、集計ファイル２２の最下位レベルの１レコードに対して、複数の明細のレコードを持つことを可能としている。
【００７０】
集計ファイル２２のデータ項目や明細ファイル２３の明細項目のフィールドには、前記データ編集画面上で入力された各項目のデータが登録される。集計ファイル２２及び明細ファイル２３のレコードキー項目の各フィールドには、入力された階層のコードが登録されると共に、当該階層より下位階層に対応するフィールドには特殊データであるブランクコードが挿入されて登録される。
【００７１】
すなわち、ブランクコードを“ｂ”と表記すると、「品目１」のレコードキーはレコード番号１に示すように「Ａ，ｂ，ｂ，ｂ，ｂ」となる。同様に、「ジャンル１」のレコードキーはレコード番号２に示すように「Ａ，ＡＡ，ｂ，ｂ，ｂ」、「カテゴリ１」のレコードキーはレコード番号３に示すように「Ａ，ＡＡ，ＡＡＡ，ｂ，ｂ」、「商品１０１」のレコードキーはレコード番号４に示すように「Ａ，ＡＡ，ＡＡＡ，１０１，ｂ」、「商品１０２」のレコードキーはレコード番号７に示すように「Ａ，ＡＡ，ＡＡＡ，１０２，ｂ」となる。
【００７２】
この場合、途中の階層が欠落していれば、その欠落している階層のキー項目にブランクコードを入れる。ここでは、「商品２０１」の上位階層である「カテゴリ」が欠落しているので、そのレコードキーはレコード番号１２に示すように「Ｂ，ＢＢ，ｂ，２０１，ｂ」となる。
【００７３】
また、集計管理する階層を細目で更に仕分ける場合には、その細目の階層のキー項目に入力コードを入れる。細目がない場合には、そこにブランクコードを入れる。ここでの細目とは最下位層の項目であり、ここでは「仕向地」である。この「仕向地」の階層を含め５階層からなるレコードキーが生成されて集計ファイル２２及び明細ファイル２３に登録されることになる。
【００７４】
このように、ブランクコードを適宜挿入して各階層のデータを特定するレコードキーを生成することで、レコードキーの一意性を保つことができる。したがって、ある階層のデータが登録されていなかったり、途中の階層が欠落していても、前記レコードキーを用いてすべての階層のデータをファイル管理することができる。
【００７５】
（ｃ）出力定義フェーズ
図１４は本システムの出力定義画面の構成を示す図であり、図１４（ａ）は出力定義１、同図（ｂ）は出力定義２、同図（ｃ）は出力定義３の内容を表している。
【００７６】
出力定義フェーズでは、「集計レベル」、「出力項目」、「表示形式」といった出力定義用の見出しとなるキーワードに従って、ユーザが出力ファイルの構成を定義する。「集計レベル」では、集計対象となる項目を定義する。ここでは、「品目」、「ジャンル」、「カテゴリ」、「商品」、「仕向地」といった各階層１〜５の中の所望の階層項目とその名称を指定する。また、この中に明細項目１の「伝票番号」を含めることも可能である。「出力項目」では、集計結果を出力する項目を定義する。ここではデータ項目３の「売上金額」または明細項目２の「売上金額」のいずれかを指定する。「表示形式」では、階層構造を有する一覧形式またはドリリング表示のいずれかを指定する。
【００７７】
なお、このような出力定義を行う場合でも、上述したようなファイル定義と同様に、次に設定すべき項目を順次表示して、その項目に対応した項目名を設定していくといった構成も可能である。すなわち、例えば集計レベル項目の定義であれば、「階層１」、「階層２」、「階層３」…といったように、集計レベル項目に属する各項目を順次表示することで、簡単に出力定義を行うことができるようになる。
【００７８】
図１４（ａ）に示す出力定義１では、図１８に示す出力結果１を得るために「集計レベル」として、階層１：品目［名称］、階層２：ジャンル［名称］、階層３：カテゴリ［名称］、階層４：商品［名称］が定義され、「出力項目」として、データ項目３：売上金額が定義されている。また、「表示形式」として、一覧表示形式が定義されている。これは、階層１〜４の各項目を集計対象とし、これらの階層毎に売上金額を一覧表示形式で出力することを意味している。
【００７９】
図１４（ｂ）に示す出力定義２では、図１９に示す出力結果２を得るために「集計レベル」として、階層１：品目［名称］、階層２：ジャンル［名称］、階層３：カテゴリ［名称］、階層４：商品［名称］、階層５：仕向地［名称］、明細項目１：伝票番号が定義され、「出力項目」として、明細項目２：売上金額が定義されている。また、「表示形式」として、一覧表示が定義されている。これは、階層１〜５の各項目と明細項目２を集計対象とし、これらの階層毎に明細データから抽出した売上金額を一覧表示形式で出力することを意味している。
【００８０】
図１４（ｃ）に示す出力定義３では、図２１乃至図２３に示す出力結果３を得るために「集計レベル」として、階層１：品目［名称］、階層２：ジャンル［名称］、階層３：カテゴリ［名称］、階層４：商品［名称］、階層５：仕向地［名称］が定義され、「出力項目」として、データ項目３：売上金額が定義されている。また、「表示形式」として、ドリリング表示が定義されている。これは、階層１〜５の各項目を集計対象とし、これらの階層毎に売上金額をドリリング表示形式で出力することを意味している。
【００８１】
一覧表示形式はすべての階層の集計データ（売上金額）を一括して表示するのに対し（図１８及び図１９参照）、ドリリング表示形式はユーザの指定操作に伴い各階層毎に分けて集計データ（売上金額）を逐次表示するものである（図２１乃至図２３参照）。
【００８２】
前記出力定義フェーズにて出力定義がなされると、その定義された内容に基づいて図１５乃至図１７に示すような集計レベル項目と出力項目とをフィールドとしたレコードからなる出力ファイル２５が生成され、その出力ファイル２５に基づいて指定の表示形式にて集計結果が表示される。
【００８３】
図１５は前記出力定義１に対応した出力ファイル２５のデータ構造、図１６は前記出力定義２に対応した出力ファイル２５のデータ構造、図１７は前記出力定義３に対応した出力ファイル２５のデータ構造を示している。
【００８４】
図１８及び図１９はそれぞれ一覧表示形式での出力結果例を表しており、図１８の出力結果１は図１４（ａ）の出力定義１に対応しており、そのときの出力ファイル２５のデータ構造が図１５である。図１９の出力結果２は図１４（ｂ）の出力定義２に対応しており、そのときの出力ファイル２５のデータ構造が図１６である。
【００８５】
また、図２１乃至図２３はドリリング表示形式での出力結果例を表しており、これらの出力結果３は図１４（ｃ）の出力定義３に対応しており、そのときの出力ファイル２５のデータ構造が図１７である。
【００８６】
なお、ドリリング表示形式が指定された場合には、その出力結果画面の下部にに図２０に示すようなドリリング指示ボタン４１が表示される。このドリリング指示ボタン４１はドリルダウンボタン４２、ドリルアップボタン４３、ドリルスルーボタン４４からなる。
【００８７】
ドリルダウンボタン４２をクリックすると、現在表示されている出力ファイル２５の集計レベルの下位のレベルのレコードが表示される。ドリルアップボタン４３をクリックすると、現在表示されている出力ファイル２５の集計レベルの上位のレベルのレコードが表示される。ドリルスルーボタン４４をクリックすると、現在表示されている出力ファイル２５の集計レベルに対応した明細ファイル２３のすべての明細項目の内容が表示される。
【００８８】
具体的に説明すると、図２１（ａ）に示すように、現在表示されている出力結果の中で「品目１」のレコードを選択してドリルダウンボタン４２をクリックすると、図２１（ｂ）に示すように「品目１」の下位レベルにある「ジャンル１」のレコードが表示される。この状態で、ドリルスルーボタン４４をクリックすれば、図２１（ｃ）に示すように「ジャンル１」に対応した「伝票番号」として「００１」〜「００４」が明細ファイル２３から抽出されて表示される。また、図２１（ｃ）の状態でドリルアップボタン４３をクリックしていけば、図２１（ｂ）→図２１（ａ）のように表示内容が切り替わる。
【００８９】
同様にして、図２２（ａ）に示すように、現在表示されている出力結果の中で「品目２」のレコードを選択してドリルダウンボタン４２をクリックすると、図２２（ｂ）に示すように「品目２」の下位レベルにある「ジャンル２」のレコードが表示され、再度ドリルダウンボタン４２をクリックすれば、図２２（ｃ）に示すように下位レベルの「商品２０１」のレコードが表示される。この場合、正規の階層順でいけば「ジャンル」の次は「カテゴリ」であるが、図５に示すように、「品目２」に関しては「カテゴリ」の階層を欠落してデータ登録されているため、「ジャンル２」のレコードが表示された状態でドリルダウンすると、「商品２０１」のレコードが表示されることになる。この状態で、ドリルスルーボタン４４をクリックすれば、図２２（ｄ）に示すように「商品２０１」に対応した「伝票番号」として「００５」と「００６」が明細ファイル２３から抽出されて表示される。また、図２２（ｄ）の状態でドリルアップボタン４３をクリックしていけば、図２２（ｃ）→図２２（ｂ）→図２２（ａ）のように表示内容が切り替わる。
【００９０】
また、図２３（ａ）に示すように、現在表示されている出力結果の中で「品目３」のレコードを選択してドリルダウンボタン４２をクリックすると、図２３（ｂ）に示すように「品目３」の下位レベルにある「ジャンル３」のレコードが表示され、再度ドリルダウンボタン４２をクリックしていけば、図２３（ｃ）に示すように下位レベルの「カテゴリ３」のレコードが表示され、続いて図２３（ｄ）に示すように下位レベルの「商品３０１」のレコードが表示される。
【００９１】
ここで、図５に示すように、「品目３」には細目として「仕向地」が登録されているため、図２３（ｄ）の状態でドリルダウンボタン４２をクリックすれば、図２３（ｅ）に示すように最下位層である「仕向地１」と「仕向地２」のレコードが表示される。この状態で、例えば「仕向地１」を選択してドリルスルーボタン４４をクリックすれば、図２３（ｆ）に示すように「商品３０１」の「仕向地１」に対応した「伝票番号」として「００７」と「００８」が明細ファイル２３から抽出されて表示される。また、図２３（ｄ）の状態でドリルアップボタン４３をクリックしていけば、図２３（ｅ）→図２３（ｄ）→図２３（ｃ）→図２３（ｂ）→図２３（ａ）のように表示内容が切り替わる。
【００９２】
このように、途中の階層が欠落している場合でもドリルダウン／ドリルアップが可能であり、さらに細目の階層を含めた全階層に対してドリルスルーが可能となっている。
【００９３】
次に、本システムの処理動作について説明する。
【００９４】
図２４は本システムにおける全体の処理の流れを示すフローチャートである。
【００９５】
階層的に分類されたデータを管理する場合において、ユーザは、まず、所定の操作によりファイル定義フェーズを起動してファイルの構成を定義する（ステップＡ１１）。定義項目としては、図２に示すように、「レコードキー」、「データ項目」、「明細項目」、「リンク情報」があり、ユーザが管理対象となるデータの階層構造に合わせて、これらの項目を定義すると、その定義された内容が制御部１３のファイル定義部１５を通じて記憶部１４の所定のエリアに設けられた定義ファイル２１に格納される。
【００９６】
以下では、商品の売上管理を行う場合を例にして、図３に示すようなファイル定義が行われたものとして説明する。
【００９７】
すなわち、商品の売上管理に関する「品目」、「ジャンル」、「カテゴリ」、「商品」、「仕向地」といった５階層のキー項目からなるレコードキーが定義され、集計用のデータ項目として「名称」、「単価」、「売上金額」、明細項目として「伝票番号」と「売上金額」が定義されると共に、リンク情報として、データ項目（項目３）の「売上金額」と明細項目（明細項目２）の「売上金額」が定義されたものとする。
【００９８】
ユーザによってファイル定義がなされると、その定義内容に基づいてファイル生成処理が行なわれる（ステップＡ１２）。このファイル生成処理の動作を図２５のフローチャートに示す。
【００９９】
前記ステップＡ１１においてファイル定義処理が行われた後、図２５に示すように、ファイル生成部１６にて定義ファイル２１が参照され、ファイル定義時に設定された各階層のキー項目からなるレコードキー項目とそのレコードキー項目に対応したデータ項目とをフィールドとしたレコードからなる集計ファイル２２が生成される（ステップＢ１１）。また、この集計ファイル２２と同じレコードキー項目を用いて、そのレコードキー項目と明細項目とをフィールドとしたレコードからなる明細ファイル２３が生成される（ステップＢ１２）。
【０１００】
具体的には、前記図３のようなファイル定義により、図４（ａ）に示すような集計ファイル２２と、図４（ｂ）に示すような明細ファイル２３が生成される。この場合、集計ファイル２２のレコードキー項目の各フィールドには「品目」、「ジャンル」、「カテゴリ」、「商品」、「仕向地」といった５階層のキー項目が設定され、データ項目の各フィールドには「名称」、「単価」、「売上金額」といった３つの項目１〜３が設定される。また、明細ファイル２３のレコードキー項目の各フィールドには前記集計ファイル２２と同じ５階層のキー項目が設定され、明細項目の各フィールドには「伝票番号」、「売上金額」といった２つの明細項目１，２が設定される。
【０１０１】
次に、図２４の全体の流れを示すフローチャートに戻り、管理対象となるデータを入力するため、ユーザはデータ編集フェーズを起動して、データ編集操作を行う（ステップＡ１３）。データ編集フェーズでは、図５に示すようなデータ編集画面にファイル定義された内容に対応した表３１が階層表示される。この表３１は見出し枠３２と入力罫線枠３３とからなり、見出し枠３２にはファイル定義された「レコードキー」、「データ項目」、「明細項目」の各項目がインデックスとして表示され、この見出し枠３２と対にして表示される入力罫線枠３３に該当するデータを入力していく。この入力罫線枠３３はデータ入力操作に伴い追加表示される。
【０１０２】
ここで、このデータ編集時の処理動作について図２６のフローチャートを参照して詳しく説明する。データ編集処理は、表作成処理とデータ登録処理からなる。表作成処理は前記データ編集画面上に表３１を作成していく処理であり、データ登録処理は表３１の入力罫線枠３３に入力されたデータを集計ファイル２２あるいは明細ファイル２３の該当する項目に登録していく処理である。
【０１０３】
図２６に示すように、データ編集部１７にて定義ファイル２１が参照され、ファイル定義された「レコードキー」、「データ項目」、「明細項目」をインデックスとした表３１の見出し枠３２と入力罫線枠３３がデータ編集画面上に表示される（ステップＣ１１）。初期状態では、図６（ａ）に示すように見出し枠３２の１行分の入力罫線枠３３が表示される。また、データ編集画面の下部に図５に示す階層変更ボタン３４、明細指示ボタン３５、確定指示ボタン３６が表示される。
【０１０４】
データの入力操作は、集計ファイル２２に関するデータを入力する場合と、明細ファイル２３に関するデータを入力する場合に分けられる。集計ファイル２２に関するデータとは、レコードキーを構成する各階層のキー項目（「品目」、「ジャンル」、「カテゴリ」、「商品」、「仕向地」）に対応したコードとその名称のデータと、管理上の固定的なデータつまり「単価」、「売上金額」のデータである。明細ファイル２３に関するデータとは、「売上金額」の集計元の明細データつまり「伝票番号」、「売上金額」のデータである。これらの入力操作は明細指示ボタン３５によって切り替え可能である。
【０１０５】
まず、集計ファイル２２に関するデータの入力処理について説明する。
【０１０６】
集計ファイル２２に関するデータが入力されると（ステップＣ１２のＹｅｓ）、レコードキーのうちの最上位層である階層１の入力であるか否かが判断される（ステップＣ１３）。階層１の入力であった場合には（ステップＣ１３のＹｅｓ）、各階層のキー項目からなるレコードキーの階層１に当たるキー項目のフィールドに当該入力データ（コード）が設定され、階層１以降の下位階層のキー項目のフィールドに特殊データであるブランクコードが設定されて集計ファイル２２のレコードキーとして登録される（ステップＣ１４）。
【０１０７】
例えば、図６（ｂ）に示すように入力罫線枠３３の「品目」の階層に対応した欄に「Ａ」といったコードが入力されたとすると、図１２に示すように「Ａ，ｂ，ｂ，ｂ，ｂ」（ｂはブランクコード）といった細目の階層（仕向地）を含む５階層のキー項目からなるレコードキーが生成されて集計ファイル２２のレコードキー項目に登録される。
【０１０８】
また、階層１以降の入力であった場合つまり階層２〜階層ｎ（ｎ＝５）の場合には（ステップＣ１３のＮｏ）、自己階層（現在入力対象となっている階層）より上位にある階層のレコードデータ（コード）が直前のレコードキーから取得されて該当する階層のキー項目フィールドに設定され、自己階層のキー項目フィールドに当該入力データ（コード）が設定され、それより下位の階層のキー項目フィールドにはブランクコードが設定されて集計ファイル２２のレコードキーとして登録される（ステップＣ１５）。
【０１０９】
例えば、図６（ｄ）に示すように入力罫線枠３３の「ジャンル」の階層に対応した欄に「ＡＡ」といったコードが入力されたとすると、図１２に示すように「Ａ，ＡＡ，ｂ，ｂ，ｂ」といった細目の階層（仕向地）を含む５階層の各キー項目らなるレコードキーが生成されて集計ファイル２２のレコードキー項目に登録される。なお、途中の階層を欠落してデータ入力がなされた場合には、その欠落された階層に対応したキー項目フィールドにブランクコードが設定される。
【０１１０】
また、レコードキー項目以外のデータ項目に該当するデータが入力されると、その入力データは集計ファイル２２の該当するレコードとして登録される（ステップＣ１６）。この場合のレコードキー項目以外のデータ項目とは「名称」である。すなわち、例えば図６（ｂ）に示すように、入力罫線枠３３の「名称」に対応した欄に「品目１」といった「名称」のデータが入力されたとすると、図１２に示すように、集計ファイル２２の中の前記レコードキー「Ａ，ｂ，ｂ，ｂ，ｂ」に対応したデータ項目の「名称」のフィールドに「品目１」といったデータが登録される。
【０１１１】
このようにして、レコードキーとそれに対応した名称のデータがレコードとして集計ファイル２２に登録されると、定義ファイル２１が参照されて自己階層より下位に階層が定義されているか否かが判断される（ステップＣ１７）。自己階層より下位に階層が定義されていれば（ステップＣ１７のＹｅｓ）、下位の階層に合わせて入力罫線枠３３が下行に追加表示される（ステップＣ１８）。例えば、自己階層が「品目」であれば、その下位に「ジャンル」があるので、入力罫線枠３３が下行に追加表示されることになる。この状態が図６（ｂ）→同図（ｃ）である。
【０１１２】
また、自己階層より下位に階層が定義されていない場合、つまり、自己階層が最下位層であれば（ステップＣ１７のＮｏ）、自己階層に合わせて入力罫線枠３３が下行に追加表示される（ステップＣ１９）。ここでは、「仕向地」が最下位層であるため、「仕向地」のデータ入力時には、同じ階層のデータ入力罫線枠３３が下行に追加表示されることになる。
【０１１３】
このようにして、データ入力操作に伴い入力罫線枠３３が追加表示されていく。ここで、入力すべきレコードキー項目があるか否が判断される（ステップＣ２０）。入力すべきレコードキー項目がある場合つまり集計ファイル２２に対するレコードキーの設定が終了していない場合には（ステップＣ２０のＹｅｓ）、前記同様の処理が引き続き行われることになる。その際、階層変更ボタン３４の操作により階層変更指示があった場合には（ステップＣ２１のＹｅｓ）、新たな入力罫線枠３３が指定の階層に合わせて追加表示される（ステップＣ２２）。この状態が図７（ａ）→同図（ｂ）や、図７（ｃ）→図８（ａ）である。
【０１１４】
図７（ａ）→同図（ｂ）の例は、階層４の「商品」のコードとその名称を入力した後に、同じ階層４のデータを入力するべく、階層変更ボタン３４の中の第４階層ボタンをクリックした場合を表している。これにより、本来ならば階層４の下位の階層５に対する入力罫線枠３３が追加表示されるところが、階層変更ボタン３４の操作によって同じ階層４に対する入力罫線枠３３が追加表示されることになる。
【０１１５】
図７（ｃ）→図８（ａ）の例は、階層４の「商品」のコードとその名称を入力した後に、階層１のデータを入力するべく、階層変更ボタン３４の中の第１階層ボタンをクリックした場合を表している。これにより、本来ならば階層４の下位の階層５に対する入力罫線枠３３が追加表示されるところが、階層１に対する入力罫線枠３３が追加表示されることになる。
【０１１６】
一方、前記ステップＣ２０において、入力すべき新たなレコードキー項目がない場合つまり集計ファイル２２に対するレコードキーの設定が終了した場合には（ステップＣ２０のＮｏ）、レコードキー項目以外のデータ項目に該当するデータの入力となり、その入力データは集計ファイル２２の該当するレコードとして登録される（ステップＣ２３）。
【０１１７】
この場合のレコードキー項目以外のデータ項目とは「単価」または「売上金額」である。データ登録後、自己階層より下位の階層に合わせて入力罫線枠３３が表示される（ステップＣ２４）。この状態が図９（ａ）→同図（ｂ）→図１０（ａ）であり、ここで入力された「単価」データである「１０１」と「売上金額」データである「１０１０」は、図１２に示すように、集計ファイル２２の中のレコードキー「Ａ，ＡＡ，ＡＡＡ，１０１，ｂ」に対応したデータ項目の「単価」と「売上金額」のフィールドに登録される。
【０１１８】
このようにして、データ入力画面上にてレコードキーを構成する各階層のキー項目とそれに対応するデータ項目を入力していくと、図１２に示すような集計ファイル２２が得られる。集計ファイル２２に関するデータの入力が終了すると（ステップＣ２５のＮｏ）、次に明細ファイル２３に関するデータの入力処理が行われる。
【０１１９】
明細ファイル２３に関するデータの入力は、最下位層の入力罫線枠が追加表示されている状態で、図５に示すデータ編集画面の所定の下部領域に表示された明細指示ボタン３５をクリックすることで行う。この状態が図１０（ａ）→同図（ｂ）である。明細ファイル２３に関するデータとは、ここではファイル定義フェーズで定義された明細項目である「伝票番号」あるいは「売上金額」である。これらの明細データの入力があると（ステップＣ１２のＮｏ）、集計ファイル２２の直前のレコードキーが読み出されて明細ファイル２３のレコードキーとして登録され（ステップＣ２６）、入力された明細データが明細ファイル２３の該当するレコードとして登録される（ステップＣ２７）。
【０１２０】
すなわち、例えば図１１（ａ）に示すように、明細データである「伝票番号」データとして「００１」と、「売上金額」データとして「７０７」が明細項目１、明細項目２の入力罫線枠にそれぞれ入力されたとすると、直前のレコードキーである「商品１０１」のレコードキー「Ａ，ＡＡ，ＡＡＡ，１０１，ｂ」が図１３に示すように明細ファイル２３のレコードキー項目のフィールドに登録されると共に、「伝票番号」データの「００１」、「売上金額」データの「７０７」がそれぞれ該当する明細項目のフィールドに設定されてレコードとして登録される。
【０１２１】
登録後、明細入力用に合わせて入力罫線枠３３が追加表示される（ステップＣ２８）。この状態が図１１（ｂ）である。
【０１２２】
このようにして、データ編集画面上にて明細データの入力を行っていくことにより、図１３に示すような明細ファイル２３が得られる。データ編集フェーズの終了指示があると（ステップＣ２９のＹｅｓ）、ここでの処理が終了する。なお、前記データ編集フェーズの終了指示は、例えば入力部１１に設けられた特定のキーの操作あるいはデータ編集画面上に表示された図示せぬ終了ボタンをクリックするなどして行う。
【０１２３】
図２４の全体の流れを示すフローチャートに戻って、前記データ編集処理にて集計ファイル２２及び明細ファイル２３に管理対象となる各階層のデータが登録された後、ユーザは所定の操作により出力定義フェーズを起動して、出力ファイルの構成を定義する（ステップＡ１４）。出力ファイルの定義項目としては、図１４に示すように、見出しとなるキーワードとして「集計レベル」、「出力項目」、「表示形式」があり、ユーザがこれらのキーワードに属する各項目を定義すると、その定義された内容が制御部１３の出力定義部１８を通じて記憶部１４の所定のエリアに設けられた出力定義ファイル２４に格納される。
【０１２４】
ユーザによって出力定義がなされると、出力ファイル生成部１９は出力定義ファイル２４を参照して、ユーザが定義した集計レベル項目とその集計レベル項目に対応した出力項目とをフィールドとしたレコードからなる出力ファイル２５を生成する（ステップＡ１５）。
【０１２５】
例えば、図１４（ａ）の出力定義１に示すような定義がなされたとすると、図１５に示すような出力ファイル２５が生成される。同様に、図１４（ｂ）の出力定義２に示すような定義では図１６に示すような出力ファイル２５が生成され、図１４（ｃ）の出力定義３に示すような定義では図１７に示すような出力ファイル２５が生成される。この時点では、出力対象となるデータの階層構造に合わせて出力ファイル２５を構成するレコードの各フィールドが構成されただけであり、実際のデータはまだ登録されていない。
【０１２６】
出力ファイル２５が生成されると、制御部１３の出力ファイル生成部１９によって出力データの生成処理が行なわれる（ステップＡ１６）。
【０１２７】
ここで、この出力データ生成処理の動作について図２７及び図２８のフローチャートを参照して詳しく説明する。出力データ生成処理は、データの集計処理と、その集計結果を出力ファイル２５に登録する登録処理とからなる。
【０１２８】
図２７及び図２８に示すように、まず、出力定義ファイル２４が参照されて、出力定義フェーズ時に集計レベルの最下位に定義された項目が明細ファイル２３の明細項目に当たるものか否かが判断される（ステップＤ１１）。図１４の出力定義例では、図１４（ａ）の出力定義１の集計レベルの最下位は階層４の「商品」であり、これは集計ファイル２２のデータ項目である。また、図１４（ｂ）の出力定義２の集計レベルの最下位は明細項目１の「伝票番号」であり、これは明細ファイル２３のデータ項目である。図１４（ｃ）の出力定義３の集計レベルの最下位は階層５の「仕向地」であり、これは集計ファイル２２のデータ項目である。
【０１２９】
ここで、出力定義フェーズ時に集計レベルの最下位に定義された項目が集計ファイル２２のデータ項目であった場合、つまり、図１４（ａ）の出力定義１または図１４（ｃ）の出力定義３のような出力定義がなされていた場合には（ステップＤ１１のＮｏ）、ステップＤ１２〜Ｄ１９に示す処理が行われる。
【０１３０】
すなわち、まず、出力定義の集計レベルの最下位の指示に従って、集計ファイル２２から集計の最小単位となる出力項目のデータがレコードキーに基づいて引き出される（ステップＤ１２）。本実施形態において、集計の最小単位となる出力項目とは、データ項目３の「売上金額」である。
【０１３１】
ここで、図１４（ａ）の出力定義１の例にして説明すると、ユーザにより出力定義された集計レベルの最下位は階層４の「商品」である。したがって、出力定義１の場合には、ユーザにより定義された集計レベルの最下位に対応する集計ファイル２２のレコードキーのキー項目「商品」のフィールドに登録されているデータである「商品１０１」、「商品１０２」、「商品２０１」、「商品３０１」が対象とされて、それらが含まれているレコードのそれぞれの集計の最小単位である「売上金額」のデータが各々のレコードキーに基づいて集計ファイル２２から引き出されることになる。
【０１３２】
このうち、「商品１０１」及び「商品２０１」を含むレコードキーが設定されているレコードには「売上金額」のデータが集計ファイル２２に登録されているため、そこから引き出すことが可能であるが、「商品１０２」と「商品３０１」を含むレコードキーが設定されているレコードには「売上金額」のデータが集計ファイル２２に登録されていないため（ユーザがデータ編集時に入力しなかったため）、そこから引き出すことはできない。
【０１３３】
集計ファイル２２から該当するデータを引き出せなかった場合には（ステップＤ１３のＮｏ）、集計ファイル２２の中に自身（現在対象となっている項目）のレベルより下位のレベルのキーレコードを含むレコードが存在するか否かが判断される（ステップＤ１４）。前記出力定義１の例で、「商品１０２」と「商品３０１」のうち、「商品１０２」には下位のレベルのキーレコードはないが、「商品３０１」には下位のレベルのキーレコードを含むレコードとして「仕向地１」と「仕向地２」がある。このように下位のレベルのキーレコードを含むレコードが存在する場合には（ステップＤ１４のＹｅｓ）、それら下位レベルのレコードから出力項目のデータが引き出されて集計される（ステップＤ１５）。
【０１３４】
すなわち、「商品３０１」であれば、図１２に示す集計ファイル２２の「仕向地１」及び「仕向地２」を含むレコードが次の対象とされて、「仕向地１」を含むレコードの「売上金額」フィールドの「３０１１０」が引き出されると共に、「仕向地２」を含むレコードの「売上金額」フィールドの「１５０６０」が引き出されて、それらが集計される。これにより、「仕向地１」及び「仕向地２」を包含する上位階層の「商品３０１」を含むレコードの「売上金額」として「４５１７０」といったデータが得られる。
【０１３５】
一方、下位のレベルが存在しない場合（ステップＤ１４のＮｏ）、あるいは下位のレベルがあっても、そこから出力項目のデータを引き出すことができないような場合には（ステップＤ１６のＹｅｓ）、明細ファイル２３から自身（現在対象となっている項目）のレコードキーに該当するレコードか抽出され、リンク情報に基づいて出力項目に該当する明細項目が引き出されて集計される（ステップＤ１７）。
【０１３６】
具体的に説明すると、「商品１０２」を含むキーレコードで設定されるレコードには、出力項目である「売上金額」のデータがなく、しかも、「商品３０１」を含むキーレコードのように下位レベル（「仕向地」）を含むキーレコードも存在しない。したがって、集計ファイル２２上での集計はできないため、明細ファイル２３から「売上金額」のデータを取得する必要がある。
【０１３７】
ここで、「商品１０２」を含むレコードキーは図１２の集計ファイル２２に示すように「Ａ，ＡＡ，ＡＡＡ，１０２，ｂ」である。また、図３のファイル定義にあるように、リンク情報によって集計ファイル２２の項目３の「売上金額」と明細ファイル２３の明細項目２の「売上金額」とがリンクされている。したがって、明細ファイル２３の中から前記「Ａ，ＡＡ，ＡＡＡ，１０２，ｂ」と同一のレコードキーを有するレコードから明細項目２の「売上金額」フィールドの「１４２８」、「６１２」が引き出されて、それらが集計される。これにより、「商品１０２」の「売上金額」として「２０４０」といったデータが得られる。
【０１３８】
このように、出力定義された内容に基づいて、集計ファイル２２から出力定義された集計レベルの最下位に対応した集計ファイル２２のレコードから「出力項目」のデータを引き出し、該当するデータを引き出せない場合には明細ファイル２３から取得するといった処理が行われる。
【０１３９】
出力定義された集計レベルの最下位に対応した「出力項目」のデータが集計ファイル２２から得られると、当該集計レベルのレコードキーとその名称及び出力項目でレコードが作成されて出力ファイル２５に登録される（ステップＤ１８）。この時点で、図１５に示す出力ファイル２５において、レコード番号４、５、８、１２に相当するレコードが作成されたことになる。
【０１４０】
すなわち、レコード番号４に示すように、「商品１０１」を含む集計レベルのレコードキーは「Ａ，ＡＡ，ＡＡＡ，１０１」となり、集計項目のフィールドには「１０１０」といった売上金額データが登録される。同様に、レコード番号５に示すように、「商品１０２」を含む集計レベルのレコードキーは「Ａ，ＡＡ，ＡＡＡ，１０２」となり、集計項目のフィールドには「２０４０」といった売上金額データが登録される。また、レコード番号８に示すように、「商品２０１」を含む集計レベルのレコードキーは「Ｂ，ＢＢ，ｂ，２０１」となり、集計項目のフィールドには「２０１０」といった売上金額データが登録される。更にレコード番号１２に示すように、「商品３０１」を含む集計レベルのレコードキーは「Ｃ，ＣＣ，ＣＣＣ，３０１」となり、集計項目フィールドには「４５１７０」といった売上金額データが登録される。
【０１４１】
出力定義された集計レベルの最下位に対応したレコードが出力ファイル２５に登録されると、それら最下位の集計レベルの上位のすべての集計レベルのレコードが作成されると共に、その各集計レベルに応じた集計値が計算されるか、あるいはロールアップされて出力ファイル２５に登録される（ステップＤ１９）。
【０１４２】
すなわち、まず、出力定義された階層的に最下位の集計レベルである「商品」に関するレコードが出力ファイル２５に登録された後、その上位の集計レベルである「品目」、「ジャンル」、「カテゴリ」に関するレコードが出力ファイル２５に登録される。これら上位の集計レベルのレコードの「売上金額」フィールドには、最下位の集計レベルのレコードキーに含まれる「商品」の「売上金額」の各データが取り出されて適宜計算されて登録されるか、あるいは、その「売上金額」のデータがそのままロールアップされて登録される。
【０１４３】
例えば、「商品１０１」と「商品１０２」であれば、その上位の集計レベルは「品目１」、「ジャンル１」、「カテゴリ１」である。これら集計レベルの各レコードの「売上金額」には、「商品１０１」の「売上金額」である「１０１０」と「商品１０２」の「売上金額」である「２０４０」とが出力ファイル２５から取り出されて集計された「３０５０」が登録される。この時点で、図１５に示す出力ファイル２５において、レコード番号１、２、３に相当するレコードが作成されたことになる。
【０１４４】
また、「商品２０１」であれば、その上位の集計レベルは「品目２」、「ジャンル２」である。これら集計レベルの各レコードの「売上金額」には、「商品２０１」の「売上金額」である「２０１０」がそのままロールアップされて登録される。この場合、「商品２０１」が含まれるレコードキーのうち「カテゴリ」の階層のキー項目が欠落しているが、このように途中の階層が欠落している場合であっても集計を行うことができる。この時点で、図１５に示す出力ファイル２５において、レコード番号６、７のレコードが作成されたことになる。
【０１４５】
また、「商品３０１」であれば、その上位の集計レベルは「品目３」、「ジャンル３」、「カテゴリ３」である。これら集計レベルの各レコードの「売上金額」には、「商品３０１」の「売上金額」である「４５１７０」がそのままロールアップされて登録される。この時点で、図１５に示す出力ファイル２５において、レコード番号８、９、１０に相当するレコードが作成されたことになる。
【０１４６】
以上が出力定義フェーズ時に集計レベルの最下位に定義された項目が集計ファイル２２のデータ項目であった場合の処理であり、最終的に図１５に示すような出力ファイル２５が得られる。
【０１４７】
なお、図１４（ｃ）に示す出力定義３の場合でも同様の処理が行われて、出力定義３の内容に従ったデータが登録され、最終的に図１７に示すような出力ファイル２５が得られる。図１５と図１７に示す出力ファイル２５のデータ構造の違いは、出力定義上の集計レベルの内容によるもので、図１５の出力ファイル２５には「品目」〜「商品」までの４階層分のキー項目でレコードキーが作成されているのに対し、図１７の出力ファイル２５には最下位層の「仕向地」を含む５階層分のキー項目でレコードキーが作成されている。
【０１４８】
次に、出力定義フェーズ時に図１４（ｂ）の出力定義２のように集計レベルの最下位に定義された項目が明細ファイル２３のデータ項目であった場合の処理について説明する。
【０１４９】
前記ステップＤ１１において、出力定義ファイル２４が参照されて出力定義フェーズ時に集計レベルの最下位に定義された項目が明細ファイル２３のデータ項目であると判断されると、つまり、図１４（ｂ）の出力定義２のような出力定義がなされていた場合には（ステップＤ１１のＹｅｓ）、図２８のステップＤ２０〜Ｄ２８に示す処理が行われる。
【０１５０】
すなわち、まず、出力定義の集計レベルの最下位の指示に従って、明細ファイル２３から集計の最小単位となる出力項目の明細データが引き出される（ステップＤ２０）。本実施形態において、集計の最小単位となる出力項目とは、データ項目３の「売上金額」であり、このデータ項目３はファイル定義フェーズで定義されたリンク情報により明細項目２の「売上金額」とリンクしている。
【０１５１】
ここで、図１４（ｂ）の出力定義２の例にして説明すると、ユーザにより定義された集計レベルの最下位は明細項目１の「伝票番号」である。したがって、出力定義２の場合には、ユーザにより定義された集計レベルの最下位である「伝票番号」の「００１」、「００２」、「００３」…「００９」、「０１０」が対象とされて、それぞれの集計の最小単位である「売上金額」の明細データが明細ファイル２３から引き出されることになる。この場合、明細ファイル２３には、すべての伝票番号に関する「売上金額」の明細データが登録されているため、そこから引き出すことが可能である。
【０１５２】
出力定義された集計レベルの最下位に対応した「出力項目」の明細データが明細ファイル２３から得られると、その明細データを含む明細ファイル２３のレコードキーとその名称及び得られた明細データを出力項目としたレコードが作成されて出力ファイル２５に登録される（ステップＤ２１）。この時点で、図１６に示す出力ファイル２５において、レコード番号５、６、８、９、１３、１４、２０、２１、２３、２４に相当するレコードが作成されたことになる。
【０１５３】
続いて、当該集計レベルの上位の集計レベルが存在するか否かが出力定義ファイル２４を参照して判断される（ステップＤ２２）。上位の集計レベルが定義されている場合には（ステップＤ２２のＹｅｓ）、当該集計レベルのレコードキーのキー項目にブランクコードが設定された上位の集計レベルのレコードキーが作成されて、上位の集計レベルのレコードとして出力ファイル２５に登録される（ステップＤ２３）。
【０１５４】
次に、出力項目がファイル定義フェーズ時に定義されたリンク情報に基づいて集計ファイル２２のデータ項目３の「売上金額」に変換され（ステップＤ２４）、その項目フィールドから「売上金額」のデータを引き出せるか否か、つまりデータが存在するかが判断される（ステップＤ２５）。集計ファイル２２から該当するデータを引き出せる場合には（ステップＤ２５のＹｅｓ）、そのデータが集計値として上位の集計レベルのレコードの出力項目フィールドに登録される（ステップＤ２６）。また、集計ファイル２２から該当するデータを引き出せない場合には（ステップＤ２５のＮｏ）、下位の集計レベルのレコードが複数ある場合には、それらレコードの出力項目フィールドの値が集計されるか、あるいは、下位の集計レベルのレコードが単一の場合には、その出力項目フィールドの値がロールアップされて出力ファイル２５に登録される（ステップＤ２７）。
【０１５５】
登録後、次の上位の集計レベルに移り（ステップＤ２８）、前記同様の処理が繰り返される。このようにして、出力定義された集計レベルの最下位の項目から順に上位の集計レベルに対応したレコードが作成されて出力ファイル２５に登録されていく。
【０１５６】
前記ステップＤ２２〜Ｄ２７の処理を具体的に説明すると、例えば最下位の集計レベルである「伝票番号」が「００１」及び「００２」であれば、その直接の上位集計レベルは「商品１０１」である。そこで、まず、「商品１０１」に対するレコードキーとして「Ａ，ＡＡ，ＡＡＡ，１０１，ｂ，ｂ」が作成されて、そのレコードキーが出力ファイル２５に登録される（ステップＤ２２，Ｄ２３）。次に、「商品１０１」に対する出力項目の「売上金額」の登録であるが、図１２に示すようにリンク先の集計ファイル２２のデータ項目３に該当するデータがあるため、そこから「売上金額」として「１０１０」といったデータが引き出されて出力ファイル２５に登録される（ステップＤ２４〜Ｄ２６）。この時点で、図１６に示す出力ファイル２５において、レコード番号４に相当するレコードが作成されたことになる。
【０１５７】
次の上位集計レベルは「カテゴリ１」である（ステップＤ２８→Ｄ２２）。そこで、「カテゴリ１」のレコードキーとして「Ａ，ＡＡ，ＡＡＡ，ｂ，ｂ，ｂ」が作成されて出力ファイル２５に登録される（ステップＤ２２，Ｄ２３）。また、「カテゴリ１」に対する出力項目の「売上金額」は集計ファイル２２には登録されていないため、その下位の「商品１０１」の「売上金額」である「１０１０」と「商品１０２」の「売上金額」である「２０４０」とに基づいて集計値「３０５０」が計算されて出力ファイル２５に登録される（ステップＤ２４、Ｄ２５→Ｄ２７）。この時点で、図１６に示す出力ファイル２５において、レコード番号３に相当するレコードが作成されたことになる。
【０１５８】
次の上位集計レベルは「ジャンル１」である（ステップＤ２８→Ｄ２２）。そこで、「ジャンル１」のレコードキーとして「Ａ，ＡＡ，ｂ，ｂ，ｂ，ｂ」が作成されて出力ファイル２５に登録される（ステップＤ２２，Ｄ２３）。この場合、「ジャンル１」に対する出力項目の「売上金額」も集計ファイル２２には登録されていないため、その下位の「カテゴリ１」の「売上金額」である「３０５０」がそのままロールアップされて出力ファイル２５に登録される（ステップＤ２４、Ｄ２５→Ｄ２７）。この時点で、図１６に示す出力ファイル２５において、レコード番号２に相当するレコードが作成されたことになる。
【０１５９】
次の上位集計レベルは「品目１」である（ステップＤ２８→Ｄ２２）。そこで、「品目１」のレコードキーとして「Ａ，ｂ，ｂ，ｂ，ｂ，ｂ」が作成されて出力ファイル２５に登録される（ステップＤ２２，Ｄ２３）。この場合、「ジャンル１」に対する出力項目の「売上金額」も集計ファイル２２には登録されていないため、その下位の「ジャンル１」の「売上金額」である「３０５０」がそのままロールアップされて出力ファイル２５に登録される（ステップＤ２４、Ｄ２５→Ｄ２７）。この時点で、図１６に示す出力ファイル２５において、レコード番号１に相当するレコードが作成されたことになる。
【０１６０】
他の伝票番号についても同様であり、前記の処理が行われて、最終的に図１６に示すような出力ファイル２５が得られる。この図１６と前記図１５及び図１７のデータ構造の違いは、出力定義上の集計レベルの内容によるもので、図１６の出力ファイル２５には「伝票番号」を含む６階層分のレコードキーが作成されている。
【０１６１】
図２４の全体の流れを示すフローチャートに戻って、出力定義に従った出力ファイル２５の生成とその出力ファイル２５へのデータ登録が終了すると、出力処理部２０により集計結果出力処理が行なわれる（ステップＡ１７）。この集計結果出力処理では、出力ファイル２５に登録されたデータをユーザが定義した表示形式で出力する。
【０１６２】
ここで、前記集計結果出力処理の動作について、図２９のフローチャートを参照して詳しく説明する。
【０１６３】
図２９に示すように、まず、出力定義ファイル２４が参照され、ユーザが定義した表示形式が一覧表示またはドリブン表示であるかが判断される（ステップＥ１１）。表示形式が一覧表示であった場合には（ステップＥ１１のＹｅｓ）、出力ファイル２５から集計レベルのレコードキーの順番にすべてのレコードが抽出され、これらのレコードが出力部１２の画面上に一覧表示形式にて出力結果として表示される（ステップＥ１２）。
【０１６４】
このときの出力結果を図１８及び図１９に示す。
【０１６５】
図１８の出力結果１は、図１５に示す出力ファイル２５のすべてのレコードを階層構造による一覧表示形式で表したものであり、図１４（ａ）の出力定義１に対応している。このような一覧表示により、「品目」、「ジャンル」、「カテゴリ」、「商品」を対象として、それらの売上金額を階層的に一覧で確認することができる。
【０１６６】
図１９の出力結果２は、図１６に示す出力ファイル２５のすべてのレコードを階層構造による一覧表示形式で表したものであり、図１４（ｂ）の出力定義２に対応している。このような一覧表示により、「品目」、「ジャンル」、「カテゴリ」、「商品」に加え、細目である「仕向地」と「伝票番号」を対象として、それらの売上金額を階層的に一覧で確認することができる。
【０１６７】
また、前記ステップＥ１１において、ユーザが定義した表示形式がドリリング表示形式であると判断されると、まず、集計結果出力の最初の表示であれば（ステップＥ１３のＹｅｓ）、出力ファイル２５から集計レベルの最上位に当たるレコードが抽出され、これらのレコードがレコードキーの順番で出力部１２の画面上にドリリング表示形式にて出力結果として表示される（ステップＥ１４）。
【０１６８】
このとき、図２０に示すようなドリリング指示ボタン４１が画面上の所定の位置に表示され、以後、このドリリング指示ボタン４１に設けられたドリルダウンボタン４２、ドリルアップボタン４３、ドリルスルーボタン４４のいずれかのボタンがクリックされたときに、そのボタンに応じた表示処理が行われる（ステップＥ１５〜Ｅ２２）。
【０１６９】
すなわち、初期表示後（ステップＥ１３のＮｏ）、ドリルダウンボタン４２がクリックされてドリルダウン表示が指示されると（ステップＥ１５のＹｅｓ）、出力ファイル２５から指定された行の集計レベルより下位のレベルのレコードが抽出され、これらのレコードがレコードキーの順番で画面上に表示される（ステップＥ１６）。但し、該当する下位レベルの階層が欠落している場合には、更に下位のレベルが表示対象となり、そのレベルのレコードが抽出されて画面上に表示される。
【０１７０】
また、ドリルスルーボタン４４がクリックされてドリルスルー表示が指示されると（ステップＥ１７のＮｏ）、出力ファイル２５から指定された行の集計レベルのレコードキーが検索され、そのレコードキーに基づいて明細ファイル２３から該当する全レコードが抽出され、その中の明細データ（伝票番号及び売上金額）がレコードキーの順番で画面上に表示される（ステップＥ１８）。その際、ドリルスルーからドリルアップの切り替えに備え、前記指定された行の集計レベルのレコードキーが記憶部１４内の図示せぬ一時記憶領域に保持される（ステップＥ１９）。
【０１７１】
また、ドリルアップボタン４３がクリックされてドリルアップ表示が指示されると（ステップＥ１７のＹｅｓ）、直前がドリルスルーであったか否かが判断される（ステップＥ２０）。直前がドリルスルーでなければ（ステップＥ２０のＮｏ）、出力ファイル２５から現在の集計レベルより上位のレベルのレコードが抽出され、これらのレコードがレコードキーの順番で画面上に表示される（ステップＥ２１）。但し、該当する上位レベルの階層が欠落している場合には、更に上位のレベルが表示対象となり、そのレベルのレコードが抽出されて画面上に表示される。
【０１７２】
一方、直前がドリルスルーであった場合には（ステップＥ２０のＹｅｓ）、出力ファイル２５から前記一時記憶領域に保持された集計レベルのレコードキーに基づいてレコードが抽出され、これらのレコードがレコードキーの順番で画面上に表示される（ステップＥ２２）。
【０１７３】
このときの出力結果を図２１乃至図２３に示す。
【０１７４】
図２１乃至図２３の出力結果３は、図１７に示す出力ファイル２５の各レコードをドリリング表示形式で表したものであり、図１４（ｃ）の出力定義３に対応している。なお、図２１は初期表示画面上の「品目１」からの画面の切り替わりを表わし、図２２は初期表示画面上の「品目２」からの画面の切り替わりを表わし、図２３は初期表示画面上の「品目３」からの画面の切り替わりを表わしている。
【０１７５】
ここで、図２１の出力結果３を例にして、前記図１９のステップＥ１３〜Ｅ２２に示されるドリリング表示処理について詳しく説明する。
【０１７６】
まず、起動直後の最初の表示である場合に、図２１（ａ）に示すように、集計レベルの最上位である「品目」が表示対象となり、図１７に示す出力ファイル２５から「品目１」、「品目２」、「品目３」といった各レコードが抽出されてレコードキーの順で表示される（ステップＥ１３→Ｅ１４）。この状態が初期表示であり、ユーザがこの中で「品目１」を指定してドリルダウンボタン４２をクリックすると、図２１（ｂ）に示すように、「品目」の下位の集計レベルである「ジャンル」が表示対象となり、図１７に示す出力ファイル２５から「ジャンル１」のレコードが抽出されて表示される（ステップＥ１５→Ｅ１６）。なお、「ジャンル」の階層が欠落されている場合には、ドリルダウンにより次に存在する下位の階層が表示対象となる。
【０１７７】
ここで、ユーザが図２１（ｂ）の「ジャンル１」を指定してドリルスルーボタン４４をクリックすると、図１７に示す出力ファイル２５から「ジャンル１」のレコードキー「Ａ，ＡＡ，ｂ，ｂ，ｂ」が検索され、図１３に示す集計ファイル２２から前記レコードキー「Ａ，ＡＡ，ｂ，ｂ，ｂ」を含む全レコードが抽出される。この場合、図１３のレコード番号５〜９が該当するレコードであり、その中の明細項目である「伝票番号」及び「売上金額」のデータが図２１（ｃ）のようにレコードキーの順番で表示される（ステップＥ１７→Ｅ１８）。これがドリルスルー表示である。なお、このときにドリルスルーからドリルアップの切り替えに備えて、前記レコードキー「Ａ，ＡＡ，ｂ，ｂ，ｂ」が保持される（ステップ１９）。
【０１７８】
図２１（ｃ）の状態で、ユーザがドリルアップボタン４３をクリックすると、前記レコードキー「Ａ，ＡＡ，ｂ，ｂ，ｂ」に基づいて図１７に示す出力ファイル２５から「ジャンル１」のレコードが抽出されて、図２１（ｂ）のように表示される（ステップＥ１７→Ｅ２０→Ｅ２２）。また、図２１（ｂ）の状態で、ユーザがドリルアップボタン４３をクリックすると、現在表示中の集計レベルである「ジャンル」より上位のレベルである「品目」が表示対象となり、図１７に示す出力ファイル２５から「品目１」、「品目２」、「品目３」といった各レコードが抽出されて、図２１（ａ）のようにレコードキーの順で表示される（ステップＥ１７→Ｅ２０→Ｅ２１）。なお、この例では「品目」が最上位レベルであるため、上位の階層が欠落していることはないが、仮に上位の階層が欠落しているような場合には、ドリルアップにより更に上位に存在する階層が表示対象となる。
【０１７９】
このようなドリルアップ表示またはドリルダウン表示により、集計レベル単位で表示画面を切り替えて売上金額を確認することができ、また、ドリルスルー表示により明細のデータも確認することができる。この場合、途中の階層が欠落していたり、細目の階層の有無に関係なく、このようなドリリング表示が可能である。
【０１８０】
このように、階層的に分類されたデータをファイル化して管理する場合において、データ入力時に階層項目に属するデータを特定するレコードキーを生成することで、すべての階層のデータを一意性を保って管理でき、途中の階層が欠落していても、各階層の連結性が断たれるようなことはなく、目的のデータを速やかに抽出してユーザに提示できるものである。
【０１８１】
なお、上述した実施形態において記載した手法、つまり、図２４乃至図２９の各フローチャートで示した処理はコンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フロッピーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に適用したり、通信媒体により伝送して各種装置に適用することも可能である。本装置を実現するコンピュータは、記録媒体に記録されたプログラムを読み込み、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【０１８２】
【発明の効果】
以上詳記したように本発明によれば、階層的に分類されたデータをファイル化して管理する場合において、データ入力時に階層項目に属するデータを特定するレコードキーを生成し、そのレコードキーに従って各階層のデータをファイルに登録するようにしたため、すべての階層のデータを前記レコードキーにより一意性を保って管理でき、途中の階層が欠落していても管理することができる。
【０１８３】
また、このようなレコードキーの一意性により、目的とするデータを速やかに抽出して出力することができる。
【０１８４】
さらに、データの出力形式として、一覧形式またはドリリング形式を切り換えて指定でき、所望の出力形式にて目的とするデータを確認することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るファイル管理システムの機能構成を示すブロック図。
【図２】前記ファイル管理システムにおけるファイル定義画面の構成を示す図。
【図３】前記ファイル定義画面上で商品の売上管理に関するファイル定義を行った場合の内容を示す図。
【図４】前記商品の売上管理を例にした場合のファイルの構成を示す図であり、図４（ａ）は集計ファイルの構成、同図（ｂ）は明細ファイルの構成を示す図。
【図５】前記ファイル管理システムにおけるデータ編集画面の構成を示す図。
【図６】前記データ編集画面上でのデータ編集操作の手順を具体的に説明するための図。
【図７】前記データ編集画面上でのデータ編集操作の手順を具体的に説明するための図。
【図８】前記データ編集画面上でのデータ編集操作の手順を具体的に説明するための図。
【図９】前記データ編集画面上でのデータ編集操作の手順を具体的に説明するための図。
【図１０】前記データ編集画面上でのデータ編集操作の手順を具体的に説明するための図。
【図１１】前記データ編集画面上でのデータ編集操作の手順を具体的に説明するための図。
【図１２】前記データ編集画面上でのデータ編集操作によって得られた集計ファイルのデータ構造を示す図。
【図１３】前記データ編集画面上でのデータ編集操作によって得られた明細ファイルのデータ構造を示す図。
【図１４】前記ファイル管理システムにおける出力定義画面を示す図であり、図１４（ａ）は出力定義１、同図（ｂ）は出力定義２、同図（ｃ）は出力定義３の内容を表した図。
【図１５】前記出力定義１に対応した出力ファイルのデータ構造を示す図。
【図１６】前記出力定義２に対応した出力ファイルのデータ構造を示す図。
【図１７】前記出力定義３に対応した出力ファイルのデータ構造を示す図。
【図１８】前記出力定義１に対応した出力結果１（一覧表示形式）を示す図。
【図１９】前記出力定義２に対応した出力結果２（一覧表示形式）を示す図。
【図２０】ドリリング表示時に画面上に表示されるドリリング指示ボタンの構成を示す図。
【図２１】前記出力定義３に対応した出力結果３（ドリリング表示形式）の一例を示す図。
【図２２】前記出力定義３に対応した出力結果３（ドリリング表示形式）の一例を示す図。
【図２３】前記出力定義３に対応した出力結果３（ドリリング表示形式）の一例を示す図。
【図２４】前記ファイル管理システムにおける全体の処理の流れを示すフローチャート。
【図２５】前記図２４のステップＡ１２で実行されるファイル生成処理の動作を示すフローチャート。
【図２６】前記図２４ののステップＡ１３で実行されるデータ編集処理の動作を示すフローチャート。
【図２７】前記図２４のステップＡ１６で実行される出力データ生成処理の動作を示すフローチャート。
【図２８】前記図２４のステップＡ１６で実行される出力データ生成処理の動作を示すフローチャート。
【図２９】前記図２４のステップＡ１７で実行される集計結果出力処理の動作を示すフローチャート。
【図３０】従来のＲＤＢによるデータ管理方法を説明するための図。
【符号の説明】
１１…入力部
１２…出力部
１３…制御部
１４…記憶部
１５…ファイル定義部
１６…ファイル生成部
１７…データ編集部
１８…出力定義部
１９…出力ファイル生成部
２０…出力処理部
２１…定義ファイル
２２…集計ファイル
２３…明細ファイル
２４…出力定義ファイル
２５…出力ファイル
３１…表
３２…見出し枠
３３…入力罫線枠
３４…階層変更ボタン
３５…明細指示ボタン
３６…確定指示ボタン
４１…ドリリング指示ボタン
４２…ドリルダウンボタン
４３…ドリルアップボタン
４４…ドリルスルーボタン
【図１】
0003915388.tif 000002
【図２】
0003915388.tif 000003
【図３】
0003915388.tif 000004
【図４】
0003915388.tif 000005
【図５】
0003915388.tif 000006
【図６】
0003915388.tif 000007
【図７】
0003915388.tif 000008
【図８】
0003915388.tif 000009
【図９】
0003915388.tif 000010
【図１０】
0003915388.tif 000011
【図１１】
0003915388.tif 000012
【図１２】
0003915388.tif 000013
【図１３】
0003915388.tif 000014
【図１４】
0003915388.tif 000015
【図１５】
0003915388.tif 000016
【図１６】
0003915388.tif 000017
【図１７】
0003915388.tif 000018
【図１８】
0003915388.tif 000019
【図１９】
0003915388.tif 000020
【図２０】
0003915388.tif 000021
【図２１】
0003915388.tif 000022
【図２２】
0003915388.tif 000023
【図２３】
0003915388.tif 000024
【図２４】
0003915388.tif 000025
【図２５】
0003915388.tif 000026
【図２６】
0003915388.tif 000027
【図２７】
0003915388.tif 000028
【図２８】
0003915388.tif 000029
【図２９】
0003915388.tif 000030
【図３０】
0003915388.tif 000031