(57)【特許請求の範囲】
【請求項１】
分類コードをキーとした複数の項目の中に集計対象データを含むレコードを複数記憶するファイル記憶手段と、
集計対象ファイル名を指定するファイル名欄と、当該ファイル名欄のファイルから抽出すべきレコード抽出条件を指定するレコード抽出条件欄と、複数階層の集計レベル別に集計レコード名を指定するレコード名欄と、この各集計レコード名に対応して抽出対象となる分類コードを指定するコード欄と、が設けられた集計定義表を記憶する定義表記憶手段と、
上記集計定義表のファイル名欄で指定されているファイル名のファイル内に記憶される複数のレコードの中から、上記集計定義表のレコード抽出条件欄で指定されているレコード抽出条件に該当するレコードを抽出する第１抽出手段と、
上記第１抽出手段で抽出された各レコードの中で、更に上記集計定義表の各集計レコード名欄に対応するコード欄に定義された分類コードに一致するレコードを更に抽出する第２抽出手段と、
上記第２抽出手段により更に抽出された各レコードを対象に、その各レコード内の上記集計対象データを読み出して、その分類コードに対応して上記集計定義表のレコード名欄で指定された集計レコード名の集計レコードに、上記読み出した集計対象データを集計する第１集計手段と、
上記データの集計された集計レコードの集計レコード名の集計レベルよりも上位の集計レベルのレコード名欄に集計レコード名の指定があれば、その上位の集計レベルのレコード名欄の集計レコード名に対応する上位の集計レコードに対して、上記分類コードに対応する集計対象データが集計された上記集計レコードの集計データを集計する第２集計手段と、
上記各集計レコードにおける各集計データを、上記集計定義表で指定された各階層別の集計レコード名と対応付け、上記集計定義表で指定された階層形態の集計表を作成する集計表作成手段と、
を具備したことを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、オフィスコンピュータやパーソナルコンピュータ等において、会計ファイル、人事ファイル等からレコードデータを加工するデータ処理装置に関する。
【０００２】
【従来の技術】
従来、オフィスコンピュータや汎用コンピュータ等の事務処理装置においては、会計ファイル、人事ファイル、売上伝票ファイル、在庫ファイル等、各種多様のファイルを記憶管理しているが、各ファイルを構成するレコード構造は、ファイル毎に異なっており、同一レコード形態（レコードを構成する各項目が一致するレコード）毎にまとめて別ファイルとして記憶管理している。
ここで、任意の項目を指定してその項目を含むレコードをファイルから読み出して分類集計する場合において、項目内のデータは最初に分類集計し易いような分類コード体系を作っても、時の経過につれて分類が現実に適合しなくなり、そのままでは分類集計を行うことができなくなるのが現状であった。
そこで、従来においては、この対策として分類集計用のコード変換テーブルを設け、このコード変換テーブルを用いて分類集計に最適なコード体系に変換することによって分類集計する方法が現状広く採用されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、コード変換テーブルを用いる方法では専門家であるシステムエンジニアが分類集計用のコード体系（変換テーブル）を作成しなければならなかった。即ち、種々の業務上の要望に応じて分類コード体系を作成することは極めて専門的で高度な知識を必要とする為、一般ユーザの業務担当者にあってはその作成は極めて困難であり、システムエンジニアにその作成を依頼しなければならないのが現状であった。
この発明の課題は、所望する帳票等を得る為にコード体系を予め作成しておかなくても、抽出対象ファイルおよびそのレコード抽出条件を指定すると共に帳票等の出力イメージにしたがって出力レコードのレコード名、出力対象項目等を単に指定するだけで、その指定内容にしたがった帳票等を出力できるようにすることである。
【０００４】
【課題を解決するための手段】
この発明は、分類コードをキーとした複数の項目の中に集計対象データを含むレコードを複数記憶するファイル記憶手段と、集計対象ファイル名を指定するファイル名欄と、当該ファイル名欄のファイルから抽出すべきレコード抽出条件を指定するレコード抽出条件欄と、複数階層の集計レベル別に集計レコード名を指定するレコード名欄と、この各集計レコード名に対応して抽出対象となる分類コードを指定するコード欄と、が設けられた集計定義表を記憶する定義表記憶手段と、上記集計定義表のファイル名欄で指定されているファイル名のファイル内に記憶される複数のレコードの中から、上記集計定義表のレコード抽出条件欄で指定されているレコード抽出条件に該当するレコードを抽出する第１抽出手段と、上記第１抽出手段で抽出された各レコードの中で、更に上記集計定義表の各集計レコード名欄に対応するコード欄に定義された分類コードに一致するレコードを更に抽出する第２抽出手段と、上記第２抽出手段により更に抽出された各レコードを対象に、その各レコード内の上記集計対象データを読み出して、その分類コードに対応して上記集計定義表のレコード名欄で指定された集計レコード名の集計レコードに、上記読み出した集計対象データを集計する第１集計手段と、上記データの集計された集計レコードの集計レコード名の集計レベルよりも上位の集計レベルのレコード名欄に集計レコード名の指定があれば、その上位の集計レベルのレコード名欄の集計レコード名に対応する上位の集計レコードに対して、上記分類コードに対応する集計対象データが集計された上記集計レコードの集計データを集計する第２集計手段と、上記各集計レコードにおける各集計データを、上記集計定義表で指定された各階層別の集計レコード名と対応付け、上記集計定義表で指定された階層形態の集計表を作成する集計表作成手段と、を具備したことを特徴とする。
【０００６】
【実施例】
以下、図１〜図２４を参照して一実施例を説明する。
図１は本実施例に係るデータ処理装置のブロック構成図である。このデータ処理装置はオフィスコンピュータを構成するもので、専門的知識を有しない業務担当者等が集計定義表を用いて集計レベルに対応して集計対象等を任意に指定しておくだけで、この集計定義表の定義内容に該当するレコードを所定ファイルから読み出して集計レベルに応じた階層構造でレコードを集計し、この集計結果を帳票データとして印刷出力するものである。
入力部１は各種のデータやコマンド等を入力するキー入力装置で、入力部１から入力されたデータはパラメータ設定部２に取り込まれて処理されると共に表示部３に表示出力される。なお、入力部１は所定のキー操作に応答してパラメータ設定部２に対して起動命令を与える。
【０００７】
パラメータ設定部２は入力部１からの起動命令に応答して動作し、業務担当者等が所望する任意のレコード集計を指示する為に集計レコードのレコード名や集計対象あるいは集計条件等を定義する定義表（本実施例にあっては２種類のＡ表、Ｂ表）を入力部１から入力されたデータにしたがって生成し、表示部３から表示出力させると共に、パラメータファイル４に設定する。なお、Ａ表、Ｂ表については後で詳細に説明するので、ここでは簡単に説明しておくものとする。例えば、所望する帳票として図２に示す様な「経費実績表」を印刷出力させる為に、この帳票の出力イメージにしたがった集計定義表としてＡ表およびＢ表を生成しておく。ここで、図２に示す帳票は集計レコードのレコード名を行項目に配置し、また集計レコードのデータ項目名を列項目に配置したものである。Ａ表は図３、Ｂ表は図４に示す様に構成されており、Ａ表は抽出対象ファイルおよび該ファイル内のレコード抽出条件や集計レベル毎に集計レコードのレコード名および集計レコードとして抽出される項目内容等を定義する定義表である。また、Ｂ表は集計レコードのデータ項目として出力される項目名およびその項目名に対応してデータ項目として抽出される出力対象項目あるいは帳票印刷時の書式や集計条件等を定義する定義表である。
【０００８】
パラメータファイル４はＡ表、Ｂ表に対応してその基本フォーマット（罫線データ等）が予めメーカサイドによって固定的に格納されている他に、入力部１から任意に入力された各種帳票のＡ表パラメータデータ、Ｂ表パラメータデータおよび、入力部１から任意に入力された各種の帳票名とＡ表パラメータデータ、Ｂ表パラメータデータとを対応付ける対応テーブルが記憶されている。
【０００９】
表構造解析部５は帳票印刷時に入力部１から入力された起動命令にしたがって動作し、出力対象として任意に指定された帳票名に対応するＡ表パラメータデータ、Ｂ表パラメータデータを解析し、その解析結果にしたがって各種のパラメータ解析テーブル６を作成する。この場合、本実施例においてはパラメータ解析テーブル６として図５（Ａ）に示す様な抽出条件テーブル、図５（Ｂ）に示す様なＡ表結合テーブル、図５（Ｃ）に示す様なＢ表結合テーブル、図５（Ｄ）に示す様なＢ表条件テーブル、図５（Ｅ）に示す様なＢ表集計項目テーブルの他、図示しないがＢ表計算式テーブルを作成する。また、表構造解析部５はＡ表に定義されている集計レベルに応じた階層構造等を解析し、その解析結果に基づいて構成ファイル７を作成する。なお、構成ファイル７は後で詳述するが、Ａ表内の集計対象項目とそれに対応するレコードとの対応関係や集計レベルの階層構造における上下関係等を表わす各種の構成レコードから成るものである。更に、表構造解析部５はＢ表のヘッダー位置に定義されている各欄の項目名、例えば“経費項目”、“期初計画”……等の名称を読み出して印刷書式メモリ８に設定する他、Ｂ表の書式の位置に定義されている各欄の印刷書式を読み出して印刷書式メモリ８に設定する。その後、表構造解析部５は展開ファイル作成部９に起動命令を与える。
【００１０】
印刷書式メモリ８は入力部１から任意に設定された印刷書式の他に、集計レベルに応じた帳票フォーマットを帳票名に対応付けて記憶するもので、この帳票フォーマットおよび帳票名は入力部１から任意に入力されたものである。なお、帳票フォーマットは集計レベルに対応した括り用の罫線フォーマットで、この罫線フォーマットの形状に応じて集計レベルの階層構造を表現している。
【００１１】
展開ファイル作成部９はパラメータ解析テーブル６内の各種テーブル内容を参照し、データファイル１０を構成する各種のソースファイルＡ……Ｎの中から集計対象ファイルを指定したり、この集計対象ファイルから抽出したレコードに基づいて１レコードずつ展開レコードを順次生成し、展開ファイル１１に書き出す。これによって展開ファイル１１を作成すると、展開ファイル作成部９は展開集計処理部１２に起動命令を与える。
【００１２】
展開集計処理部１２は構成ファイル７を参照しながら展開ファイル１１の内容に基づいて１レコードずつ集計レコードを順次作成し、集計ファイル１３に書き出す。これによって集計ファイル１３を作成すると、展開集計処理部１２は印刷処理部１４に起動命令を与える。
印刷処理部１４は集計ファイル１３の内容を印刷書式メモリ８に設定されている印刷書式にしたがって１レコードずつ帳票フォーマットと共にプリンタ１５から印字出力させることにより、帳票作成を行う。
【００１３】
次に、本実施例の動作を説明する。
先ず、所望する帳票を得る為に入力部１からＡ表、Ｂ表の作成を指示すると、パラメータ設定部２はこれに応答して動作する。先ず、Ａ表作成時にパラメータ設定部２はパラメータファイル４から読み出したＡ表の基本フォーマットにしたがって表枠等を表示出力させる。図６はＡ表の基本フォーマットの表示状態を示している。ここで、Ａ表の基本フォーマットはその行方向の見出し部として６段階の集計レベルを表わすアルファベット文字Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆと、各集計レベルを区分する括り用の罫線フォーマットが表示され、この括り用の罫線は集計レベル毎に列方向に“ずれて”表示され、この“ずれ”によって集計レベルの階層構造を表現している。この場合の階層構造はＡ＞Ｂ＞Ｃ＞Ｄ＞Ｅ＞Ｆの関係にある。ここで、Ａ表の行項目には集計レコードのレコード名が集計レベルに対応させて入力され、また、その列方向には集計対象のファイル名およびそのファイルから集計レコードとして抽出されるべき項目名が入力される。なお、Ａ表の基本フォーマットはその一部を適宜修正変更可能であり、表枠全体を伸長したり、縮少することもできるようにしてある。
【００１４】
いま、Ａ表の基本フォーマットが表示出力されている状態において、業務担当者は入力部１からＡ表のパラメータデータを入力する。図３はＡ表にパラメータデータを入力した場合の表示例である。ここで、Ａ表の行方向の見出し部には、各集計レベルに対応して任意の名称が集計レコードのレコード名として入力されている。例えば、行Ｎｏ「０１」には集計レベルＡに対応してレコード名「計」が入力され、また、行Ｎｏ「０２」には集計レベルＢに対応してレコード名「固定費」、行Ｎｏ「０３」には集計レベルＣに対応してレコード名「人件費」……が入力されている。なお、上述の例では集計レベル毎に任意のレコード名を入力部１から直接入力するようにしたが、使用するレコード名が予め定まっている場合には、これら使用予定のレコード名をテーブルに記憶しておき、レコード名入力時にこのテーブル内容をウィンドゥ画面に一覧表示させ、その中から任意のレコード名を選択することによってレコード名を入力するようにしてもよい。また、レコード名は名称に限らず、コードであってもよい。
【００１５】
またＡ表の見出し部には抽出対象ファイルを示す任意のファイル名が入力されている。例えば、図３に示すＡ表においては２種類のファイル名「計画ＦＩＬＥ」、「会計ＦＩＬＥ」が入力されており、これによって集計レコードをどのファイルから抽出すべきかの対象ファイルが定義されている。また、ファイル名の後に括弧書きされた文字列は、該ファイルからレコードを読み出す際のレコード抽出条件で、図３の例ではファイル名「計画ＦＩＬＥ」、「会計ＦＩＬＥ」に対応してレコード抽出条件としてそれぞれ「（部門＝“８３”）」が入力されている。このレコード抽出条件はファイル項目名、定数、簡単な演算子を用いた条件式で記述するようにし、上述の（部門＝“８３”）は項目名「部門」においてその項目内容が「８３」のレコードを対象ファイルから読み出すべきことを定義している。また、各ファイル名に対応してその項目名が入力されており、図３の例では「計画ＦＩＬＥ」に対応してその項目名「予算項目」が入力され、また、「会計ＦＩＬＥ」に対応してその項目名「勘定科目」が入力されており、これによって上述したレコード抽出条件にしたがって対象ファイルから読み出されたレコードのうち集計対象となる項目名が定義されている。
【００１６】
更に、Ａ表の行方向および列方向の見出し部によって構成されるマトリックス状の各入力エリアには、集計対象項目の具体的な項目内容（項目コード）が入力されている。例えば、行Ｎｏ「０３」、即ち、集計レベルＣに対応するレコード名「人件費」については、「計画ＦＩＬＥ」の「予算項目」に対応して項目コード「１０１」、「１０２」が入力され、また、「会計ＦＩＬＥ」の「勘定科目」に対応して項目コード「２１１１」、「２１１２」、「２１３４」が入力されており、これによって計画ファイルを構成する予算項目のうち、項目コード「１０１」、「１０２」に該当するレコードを抽出すべきことが定義され、また、会計ファイルを構成する勘定項目のうち、項目コード「２１１１」、「２１１２」、「２１３４」に該当するレコードを抽出すべきことが定義されている。
また、Ａ表には各行Ｎｏに対応して管理単位エリアが設けられており、任意の行を指定してそれに対応する位置に丸印を入力することにより当該行は項目コードが入力されるエリアであることを示す。これはＡ表の定義内容を行単位毎に解析する際に、当該丸印が付されている行が解析対象となり、その他の行を対象から外すことによって処理スピードの向上を図る為である。同時に、業務担当者が抽出集計すべきデータがソースファイル（会計ＦＩＬＥなど）にある事を確認する意味もある。なお、図３で示したＡ表においては、ファイル名として２種類入力した例を示したが、３種類以上入力してもよく、また１つのファイル名に対応してそれぞれ１つずつの項目名を入力したが、１つのファイル名に対応させて２以上の項目名を入力するようにしてもよい。
このようにしてＡ表を作成すると、パラメータ設定部２はそのパラメータデータをパラメータファイル４に設定する。
【００１７】
次に、パラメータ設定部２はパラメータファイル４からＢ表の基本フォーマットを読み出して表示出力させる。図７はこのＢ表の基本フォーマットを示し、この行方向の見出し部にはその行項目のラベルとして「書式」、「対象ＦＩＬＥ」、「集計項目」、「計算式」、「条件項目」、「条件値」が予め固定的に設定されており、また、Ｂ表の列方向における見出し部の各列項目はその項目位置を示す名称として「Ａ」、「Ｂ」、「Ｃ」、……「Ｇ」に対応付けられている。なお、Ｂ表においてもＡ表と同様に、その基本フォーマットの一部を適宜修正変更可能であり、表枠全体を伸長したり、縮少することもできるようにしてある。
【００１８】
いま、Ｂ表の基本フォーマットが表示出力されている状態において、業務担当者は入力部１からＢ表のパラメータデータを入力する。図４はＢ表にパラメータデータを入力した場合の表示例である。ここで、Ｂ表の列方向における見出し部には集計レコードのデータ項目として印刷出力される項目名が入力されている。例えば、項目位置「Ａ」には「経費項目」、項目位置「Ｂ」には「期初計画」、項目位置「Ｃ」には「修正計画」、項目位置「Ｄ」、「Ｅ」にはその共有項目として「実積」およびその下位項目として項目位置「Ｄ」には「部門経費」、項目位置「Ｅ」には「付替経費」、更に項目位置「Ｆ」には「実積計」、項目位置「Ｇ」には「計画差」が入力されている。
【００１９】
また、Ｂ表の行項目において、「書式」には項目データの印刷書式として列項目毎に欄幅、文字種、文字サイズ等が入力されている。また、次の「対象ＦＩＬＥ」には列項目位置「Ｂ」、「Ｃ」に対応して「計画ＦＩＬＥ」が入力され、列項目位置「Ｄ」、「Ｅ」に対応して「会計ＦＩＬＥ」が入力されている。更に、次の「集計項目」は集計対象として抽出されたレコードの中からどの項目データを集計すべきかを定義するもので、列項目位置「Ｂ」、「Ｃ」に対応して「予算額＋」が入力され、また、列項目位置「Ｄ」、「Ｅ」に対応して「借方金額＋」および「貸方金額−」が入力されている。ここで、プラス／マイナスの符号はレコード集計時の加算集計あるいは減算集計を定義するものである。次の「計算式」は集計結果を出力する際の出力単位や集計演算の計算式を入力するもので、図示の例「Ｂ／１０００」はデータ項目Ｂの内容を“１０００”で割って千円単位で出力すべきことを示している。一方、「条件項目」および「条件値」はＡ表の定義内容によって抽出された抽出レコードのうちある項目データが所定の値に該当するレコードのみを集計対象として集計すべきことを定義するもので、「条件項目」として列項目位置「Ｂ」、「Ｃ」にはそれぞれ「計画種別」が入力され、またその「条件値」として列項目位置「Ｂ」には「１」、列項目位置「Ｃ」には「２」、「３」、「４」が入力され、同様に、「条件項目」として列項目位置「Ｄ」、「Ｅ」にはそれぞれ「相手勘定」が入力され、また「条件値」として列項目位置「Ｄ」には「≠００１１（００１１を除く他の全てのコードを抽出すべきことを示している）」、列項目位置「Ｅ」には「００１１」が入力されている。なお、Ｂ表の表枠外には帳票名として「経費実績表」が入力されている。
このようにしてＢ表を作成すると、パラメータ設定部２はそのパラメータデータをパラメータファイル４に設定する。
【００２０】
このようにして、Ａ表、Ｂ表を作成した後、入力部１から任意の帳票名を指定してその印刷指令を与えると、表構造解析部５は図８に示すフローチャートにしたがって動作する。なお、図８は表構造解析部５の全体動作の概要を示したゼネラルフローで、先ず、表構造解析部５はパラメータファイル４から指定帳票のＡ表パラメータデータを読み出して抽出条件テーブルを作成し（ステップＡ１）、次いでＡ表結合テーブルを作成（ステップＡ２）し、更に構成ファイルを作成する（ステップＡ３）。次に、表構造解析部５はパラメータファイル４から指定帳票のＢ表パラメータデータを読み出してＢ表の結合テーブルを作成すると共に（ステップＡ４）、条件テーブル（ステップＡ５）、集計項目テーブル（ステップＡ６）、計算式テーブル（ステップＡ７）をそれぞれ作成する。その後、Ｂ表のパラメータデータから書式に関するデータを取り出して印刷書式メモリ８に書き込む（ステップＡ８）。
【００２１】
図９は抽出条件テーブルの作成フローを示したもので、表構造解析部５はＡ表パラメータを解析し、図５（Ａ）に示す様な抽出条件テーブルを作成する。ここで、抽出条件テーブルはＡ表に定義されている抽出対象のファイル名とそのレコード抽出条件とを対応付けるテーブルで、「ファイル名」、「抽出条件」、「ファイル記号」とから成る。なお、「ファイル記号」はＡ表に定義されているファイル名を「１」からの連続番号で特定する為のレコードである。
先ず、表構造解析部５はパラメータファイル４から指定帳票のＡ表パラメータデータを読み出すと共に（ステップＢ１）、ファイル記号として初期値「１」をセットしておく（ステップＢ２）。そして、Ａ表の列方向の見出し部をその先頭から順次解析してゆく。即ち、先ず、表構造解析部５はＡ表に定義されている先頭ファイル名を指定する（ステップＢ３）。次に、この指定ファイル名の後に括弧“（”が有るかをチェックし（ステップＢ４）、無ければステップＢ８にジャンプするが、有れば、ファイル名の後にレコード抽出条件が定義されているので、次のステップＢ５に進み、指定ファイル名に対応して定義されている抽出条件を指定し、それが予め決められている規則にしたがって記述されているかをチェックする（ステップＢ６）。
ここで、抽出条件の記述に関する規則は次の通りである。
抽出条件は「（  ）」で括り、ファイル項目名、定数、簡単な演算子を用いた
もので、
使用可能な関係演算子は、
＜        ＞      ＜＝    ＞＝      ！＝          ＝
（小さい）（大きい）（以下）（以上）（等しくない）（等しい）
また、使用可能な論理演算子は、
｜    ＆
（和）（積）
である。更に、条件文中の定数（文字型、数値型）は引用符「”」で囲まれていること。なお、「？」、「＊」を使って広範囲のデータを指示することもで
きる。
【００２２】
いま、抽出条件が一定の規則にしたがって記述されていなければステップＢ８にジャンプするが、条件式の記述が適正であれば、指定したファイル名、抽出条件およびファイル記号を１組のデータとして抽出条件テーブルに書き込む（ステップＢ７）。この場合、図３に示すＡ表であれば、抽出条件テーブルの１行目には図５（Ａ）に示す様に、ファイル名「計画ファイル」、レコード抽出条件「（部門＝“８３”）」、ファイル記号「１」が書き込まれる。次に、Ａ表に他のファイル名が定義されているかをチェックし（ステップＢ８）、有れば、ステップＢ９に進み、ファイル記号に「１」を加算してその更新を行ったのちステップＢ３に戻り、以下、同様の動作を繰り返す。ここで、全てのファイルを指定し終ると、ステップＢ１０に進み、上記ステップＢ６で抽出条件の記述が適正でないものが検出されていれば、その旨をガイダンス表示し、その記述を訂正すべきことが報知される。
【００２３】
図１０はＡ表結合テーブルの作成フローを示したもので、図５（Ｂ）に示す様なＡ表結合テーブルを作成する。ここで、Ａ表結合テーブルはＡ表に定義されているファイル名と項目名とを対応付ける対応テーブルで、「ファイル名」、「シークェンシャル番号ＳＥＱ」、「項目名」、「ファイル記号」とから成る。ここで、シークェンシャル番号ＳＥＱは同一ファイル内に定義されている項目名を「０１」から連続番号で特定する為のコードである。
先ず、表構造解析部５はパラメータファイル４から指定帳票のＡ表パラメータデータを読み出すと共に（ステップＣ１）、ファイル記号として初期値「１」を指定しておく（ステップＣ２）。そして、Ａ表の列方向の見出し部をその先頭から順次解析してゆく。即ち、表構造解析部５は先ず、Ａ表に定義されている先頭ファイル名を指定したのち（ステップＣ３）、シークェンシャル番号ＳＥＱの初期値「１」を指定し（ステップＣ４）、更にこの先頭ファイル名に対応する最初の項目名を指定する（ステップＣ５）。これによって指定されたファイル名、シークェンシャル番号ＳＥＱ、項目名、ファイル記号をＡ表結合テーブルに書き込む（ステップＣ６）。次に、同一ファイル名に対応して他の項目名が定義されていれば（ステップＣ７）、シークェンシャル番号ＳＥＱに「１」を加算してその値を更新すると共に（ステップＣ８）、次の項目名を指定し（ステップＣ５）、Ａ表結合テーブルへの書き込みを行う（ステップＣ６）。以下、同一ファイル名に対応する全ての項目名を指定し終るまで上述の動作を繰り返す。この結果、全ての項目名を指定し終ると、次のステップＣ９に進み、Ａ表に他のファイル名が有れば、それを条件にファイル記号「１」を加算し、その値の更新を行う（ステップＣ１０）。以下、ステップＣ３に戻り、Ａ表から当該他のファイル名を指定すると共に、そのファイル名に対応する全ての項目名を順次指定しながらＡ表結合テーブルへの書き込みを行う。
【００２４】
次に、図８で示した構成ファイル７の作成処理（ステップＡ２）を図１１〜図１５を参照して詳述する。
図１１〜図１３は構成ファイル７を作成する際の動作を示したフローチャートであり、また、図１４はこの場合における表構造解析部５の動作内容を図式的に示した図、また図１５は作成された構成ファイル７を示した図である。なお、図１５の（Ａ）は構成ファイル７のレコード構造を示したもので、この構成レコードは「子フード」、「親コード」、「終了フラグ」、「名称」とから成り、「子フード」および「親コード」はＡ表内の集計対象項目とそれに対応する集計レコードとの対応関係を表わしたり、集計レベルの階層構造における親子関係（上下関係）を表わすコードである。また、「終了フラグ」は親コードに集計レベルＡが含まれている場合に“１”となるフラグであり、終了フラグに“１”がセットされている場合にはそれよりも上位レベルへのレコード集計を行わないことを示している。「名称」はＡ表に定義されている集計レコードのレコード名である。先ず、表構造解析部５はＡ表パラメータの先頭行を指定し（ステップＤ１）、指定行の集計レベルは最上位のレベルＡか否かをチェックする（ステップＤ２）。ここで、集計レベルがＡであれば、初期設定の為に、表構造解析部５内の最終項目ワークメモリ（図１４の（Ｂ）参照）の内容を全てクリアしておくと共に（ステップＤ３）、現在着目中のレベル（現在レベル）として集計レベルＡを指定しておく（ステップＤ４）。
この状態において、現在レベルと現在着目している行（現在行）の行Ｎｏとからレベル行データを生成する（ステップＤ５）。例えば、図３に示すＡ表を例に挙げると、Ａ表の先頭行は集計レベルＡであり、かつその行Ｎｏは「０１」であるので、この現在レベルと行Ｎｏとを組み合せたレベル行データ「Ａ０１」を生成する。次に、このレベル行データ「Ａ０１」と現在行の名称（集計レコードのレコード名「計」）とを最終項目ワークメモリの現在レベルＡに対応する位置にセットする（ステップＤ６）。なお、最終項目ワークメモリは図１４の（Ｂ）に示す様に集計レベルＡ、Ｂ、Ｃ、Ｄ……に対応してレベル行データおよび名称を記憶する構成となっており、構成レコード作成時のワークメモリである。
【００２５】
次に、現在行の管理単位エリアに丸印が付されているか否かをチェックする（ステップＤ７）。いま、図３に示す様に先頭行には丸印が付されていないので、Ａ表の次行に着目してその行にレコード名が設定されているか否かをチェックする（ステップＤ８）。ここで、設定有りが検出されると、現在行を更新して次行の指定を行う（ステップＤ９）。これによってＡ表の２行目が指定されると次に、ステップＤ２に戻るが、この場合、２行目の集計レベルはＢ、したがってステップＤ１０に進み、指定行のレベルが現在レベル以上か否かのエラーチェックを行い、現在レベル以上であれば、最終項目メモリ内で指定行のレベル以下の内容を全てクリアしておく（ステップＤ１１）。
【００２６】
いま、指定行レベルＢは現在レベルのＡ未満であるので、ステップＤ１２に進み、指定行レベルを現在レベルとして現在レベルの更新を行う。次に、現在レベルと現在行の行Ｎｏとからレベル行データを生成し（ステップＤ１３）、このレベル行データと現在行の名称とを最終項目ワークメモリの現在レベルに対応する位置にセットする（ステップＤ１４）。この場合、レベル行データ「Ｂ０２」、名称「固定費」が現在レベルＢに対応する位置にセットされる（図１４の（Ｂ）参照）。次に、このレベル行データの先頭に記号（・）を結合し（ステップＤ１５）、この結合データを図１４の（Ａ）に示す様に構成レコードの子コードとしてセットする（ステップＤ１６）。ここで、記号（・）はＡ表のうち項目コードが入力されていない行を着目行とした場合にセットされるもので、これによってソースファイルと対応関係が無いことを示している。そして、図１２のステップＤ１７に進み、最終項目ワークメモリの中から（現在レベル＋１）のレベル位置に格納されているレベル行データを読み出し、このレベル行データの先頭に記号（・）を結合し、この結合コードを構成レコードの親コードとしてセットする（ステップＤ１８）。いま、現在レベルはＢ、したがって最終項目ワークメモリのレベルＡの位置に格納されているレベル行データ「Ａ０１」に記号（・）を結合した結合コードが親コードとなる（図１４の（Ａ）参照）。ここで、親コードのレベルがＡであれば（ステップＤ１９）、構成レコードの終了フラグに“１”をセットする（ステップＤ２０）。次に、親コードの名称を最終項目ワークメモリから読み出して構成レコードの名称としてセットする（ステップＤ２１）。このようにして１レコード分のデータとして子コード「・Ｂ０２」、親コード「・Ａ０１」、終了フラグ「１」、名称「計」が揃うと、この構成レコ−ドは構成ファイル７に書き出される（ステップＤ２２）。
【００２７】
次に図１１のステップＤ７に戻るが、この場合、現在行の管理単位エリアには丸印が付されていないので、次の行の３行目が指定される（ステップＤ９）。その後、上述のステップＤ１２〜Ｄ１４が実行される結果、最終項目ワ−クメモリのレベルＣにはレベル行デ−タ「Ｃ０３」と現在行の名称「人件費」がセットされる（図１４の（Ｂ）参照）。そしてこのレベル行デ−タに記号（・）を付けた結合コ−ドが構成レコードの子コ−ドとしてセットされる（ステップＤ１５、Ｄ１６）。次に、最終項目ワ−クメモリ内のレベルＢの位置（１段上位のレベル位置）から読み出したレベル行デ−タ「Ｂ０２」に記号（・）を付けた結合コ−ドが構成レコ−ドの親コ−ドとしてセットされる（図１２のステップＤ１７、Ｄ１８）。この場合、親コ−ドに対応する最終項目ワ−クメモリ内の名称「固定費」が構成レコ−ドの名称となる（ステップＤ２１）。このようにして１レコ−ド分のデ−タとして子コ−ド「・Ｃ０３」、親コ−ド「・Ｂ０２」、名称「固定費」が揃うと、この構成レコ−ドは構成ファイル７に書き出される（ステップＤ２２）。
【００２８】
続いて、図１１のステップＤ７で３行目の管理単位エリアに丸印が付いていることが検出されると、図１３のステップＤ２３に進み、ファイル記号の初期値として「１」をセットしておく。次に、現在行に入力されている項目コ−ドをその先頭から指定し（ステップＤ２４）、ファイル記号と項目コ−ドとを結合してこの結合コ−ドを構成レコ−ドの子コ−ドとしてセットする（ステップＤ２５、Ｄ２６）。この場合、ファイル記号「１」と項目コ−ド「１０１」とが結合される為、子コ−ドは「１１０１」となる。次に、最終項目ワ−クメモリ内の現在レベルのレベル行デ−タの先頭に記号（・）を結合し（ステップＤ２７）、この結合デ−タを構成レコ−ドの親コ−ドとしてセットする（ステップＤ２８）。そして、この親コ−ドの名称「人件費」を最終項目ワ−クメモリから読み出して構成レコ−ドの名称としてセットする（ステップＤ２９）。図１４の（Ｃ）はこの場合の構成レコ−ドを示し、子コ−ドが「１１０１」、親コ−ドが「・Ｃ０３」、名称が「人件費」から成る構成レコ−ドが、構成ファイル７に書き出される（ステップＤ３０）。次に、現在行に他の項目コ−ドが入力されているかをチェックし（ステップＤ３１）、有れば、ステップＤ２４に戻り、次の項目コ−ドを指定して以下、上述の動作を繰り返す。この結果、３行目の項目コ−ド「１０２」が指定された場合の構成レコ−ドは、子コ−ドが「１１０２」、親コ−ドが「・Ｃ０３」、名称が「人件費」となる。
【００２９】
その後、ステップＤ３１で項目コ−ド無しが検出されるので、ステップＤ３２に進み、他のファイル名がＡ表内に定義されているかをチェックするが、いま、Ａ表内には次のファイル名として「会計ＦＩＬＥ」が定義されているので、ステップＤ３３に進み、ファイル記号に「１」を加算してその値を更新したのち、ステップＤ２４に戻る。この場合、ファイル記号は「２」、項目コ−ドとして最初の「２１１１」が指定される為、構成レコ−ドの子コ−ドは「２２１１１」となり、親コ−ドは「・Ｃ０３」、名称は「人件費」となる。
いま、ステップＤ３２で他のファイル無しが指定されると、図１１のステップＤ８に戻り、以下、ステップＤ８で設定無しが検出されるまで構成レコ−ドを作成して構成ファイル７に書き出す処理を１レコ−ドずつ繰り返す。これによって図１５に示す様な構成ファイル７が作成される。この構成ファイル７の内容は図３のＡ表を参照することによって生成されたもので、この構成ファイル７の８レコード目〜１２レコード目はＡ表の行Ｎｏ「０３」に対応し、また、１３レコード目〜１５レコード目はＡ表の行Ｎｏ「０４」に対応している。
【００３０】
このようにして構成ファイル７を作成し終ると、表構造解析部５はＢ表の結合テーブル、条件テ−ブル、集計項目テ−ブルの他、計算式テ−ブルを作成する。このうち、Ｂ表結合テ−ブル、条件テ−ブル、集計項目テ−ブルは図１６および図１７に示すフローチャートにしたがって作成される。
ここで、Ｂ表結合テ−ブル（図５（Ｃ）を参照）は「ファイル名」、「シークェンシャル番号ＳＥＱ」、条件項目の「項目名」、「ファイル記号」とから成る。また、条件テ−ブル（図５（Ｄ）参照）は「ファイル名」、「Ｂ表の項目位置」、「条件値」、「否定フラグ」とから成る。ここで、「否定フラグ」とは条件値として「≠（等しくない）」が設定されていることを示すフラグである。また、集計項目テ−ブル（図５（Ｅ）参照）は「ファイル名」、「Ｂ表の項目位置」、集計項目の「項目名」、「マイナスサイン」とから成る。ここで、「マイナスサイン」は例えば「貸方金額−」という様に集計項目に項目名にマイナス符号が付いていることを示す。
【００３１】
先ず、表構造解析部５はパラメータファイル４から指定帳票のＢ表パラメータデータを読み出し（ステップＥ１）、その第２列（項目位置Ｂ）を指定しておく（ステップＥ２）。次に、指定列の対象ファイル名を呼び出すと共に（ステップＥ３）、このファイル名に対応するファイル記号をＡ表結合テーブルより呼び出す（ステップＥ４）。そして、次のステップＥ５でシークェンシャル番号ＳＥＱの初期値「１」をセットしたのち、指定列の条件項目に着目して項目名が設定されているかをチェックし（ステップＥ６）、設定されていればその条件項目名を指定する（ステップＥ９）。これによって得られたファイル名、シークェンシャル番号ＳＥＱ、条件項目名、ファイル記号から結合レコードを生成したのち（ステップＥ１０）、この結合レコードをＢ表結合テーブルにセットするが、その際、同一レコードの重複設定を避ける為に、Ｂ表結合テーブル内に同一レコードが設定されていないことを条件に（ステップＥ１１）、生成した結合レコードをＢ表結合テーブルにセットする（ステップＥ１２）。
【００３２】
次に、指定列の条件値に着目してその条件値を指定すると共に（ステップＥ１３）、この条件値に“≠”が付加されていれば（ステップＥ１４）、否定フラグをセットする（ステップＥ１５）。このようにして得られたファイル名、指定列の項目位置を示す列名称、条件値、否定フラグとから条件レコードを生成し（ステップＥ１６）、Ｂ表の条件テーブルにセットする（ステップＥ１７）。ここで、指定列に複数の条件値が定義されていれば、各条件値毎に条件レコードを生成する為、ステップＥ１８では他の条件値が有るか否かをチェックし、有ればステップＥ１３に戻り、次の条件値を指定してそれに対応する条件レコードを生成して条件テーブルにセットする。
そして、次のステップＥ１９では指定列に他の条件項目が有るか否かをチェックし、有ればステップＥ２０に進み、シークェンシャル番号ＳＥＱに「１」を加算してその値を更新したのち、ステップＥ９に戻り、次の条件項目を指定し、以下、それに対応する結合レコードを生成したり、条件レコードを生成して対応テーブルにセットする。
【００３３】
ステップＥ１９で他の条件項目無しが検出されると、ステップＥ２１に進み、指定列の条件項目を指定し、その条件項目にマイナス符号が付加されていれば（ステップＥ２２）、マイナスサインフラグのセットを行う（ステップＥ２３）。このようにして得られたファイル名、指定列の列項目位置を列名称、集計項目、マイナスサインフラグとから集計項目レコードを生成し（ステップＥ２４）、集計項目テーブルにセットする（ステップＥ２５）。
【００３４】
このようにＢ表の１列分の定義内容を解析して１列分のＢ表結合テーブル、条件テーブル、集計項目テーブルを作成したら、ステップＥ７に進み、Ｂ表の次列にデータが指定されているかをチェックし、有ればその行を指定し（ステップＥ８）、以下、ステップＥ３に戻り、上述の動作を繰り返す。
【００３５】
その他、表構造解析部５はＢ表パラメータデータを解析して計算式テーブルを作成するが、この計算式テーブルは各計算式を列項目位置に対応付けたものである。また、表構造解析部５はＢ表パラメータデータから書式データを列項目位置に対応付けて読み出し、印刷書式メモリ８にセットする。
【００３６】
このようなテーブル作成処理が終ると、表構造解析部５は展開ファイル作成部９を起動させる。すると、展開ファイル作成部９は図１８および図１９に示すフローチャートにしたがって展開ファイル作成処理を行う。なお、展開ファイル１１は帳票の出力データである集計ファイル１３を作成するまでに中間的に生成されるファイルである。ここで、図２０はソースファイルが計画ファイルの場合にその１レコード目〜４レコード目の内容にしたがって作成された展開レコードを示し、また、図２１はソースファイルが会計ファイルの場合にその１レコード目〜３レコード目の内容にしたがって作成された展開レコードを示している。更に、図２２はこれによって作成された展開ファイル１１の内容を示している。いま、パラメータ解析テーブル６には図５（Ａ）〜（Ｅ）に示す様な内容の各種テーブルがセットされているものとする。
【００３７】
先ず、展開ファイル作成部９はパラメータ解析テーブル６を参照し、Ａ表結合テーブルよりファイル名（最初は１レコード目のファイル名）を取り出すと共に（ステップＦ１）、そのファイル記号を指定しておく（ステップＦ２）。次に、このファイル名に対応するソースファイルを指定し（ステップＦ３）、このソースファイル内の先頭レコードを指定する（ステップＦ４）。これによって集計対象ファイルとしてＡ表に最初に定義されている「計画ファイル」の先頭レコードが指定される。
次に、展開ファイル作成部９は抽出条件テーブルを参照し、このテーブル内に指定ファイルに対応して抽出条件が定義されていれば、この抽出条件にしたがって指定ファイル（この場合、計画ファイル）から条件に合致するレコードを抽出し、これを図示しないメモリあるいはワークファイル上に再構成し、以降、再構成されたデータを集計対象ファイルとして扱う（ステップＦ４）。いま、計画ファイルに対応してその抽出条件として「部門＝“８３”」が定義されているので、この抽出条件を抽出パラメータに分解し、この抽出パラメータにしたがって順次該当レコードを絞り込みながら「部門＝“８３”」に合致するレコード、つまり、項目名が「部門」で、その項目内容が定数“８３”と等しい値を持ったレコードをそれぞれ計画ファイルから読み出してメモリやワークファイル上に再構成する。このようにして予め集計対象ファイルからその抽出条件に合致するレコードのみを読み出して再構成し、以降、再構成されたデータを集計対象のファイルとして扱う為、処理対象外の無駄なレコードを省き、対象レコードのみに絞り込んだファイルを得ることができる。なお、このようにして得られたファイルを以下、絞り込みファイルと称する。
次に、Ａ表結合テーブルから項目名（最初は１レコード目の項目名）を取り出し（ステップＦ６）、この項目名に対応する項目値をステップＦ５で得られた絞り込みファイル内の指定レコード（最初は先頭レコード）から取り出す（ステップＦ７）。そして、この項目値と指定ファイル記号とを結合し（ステップＦ８）、この結合データを展開レコードの分類キーとしてセットする（ステップＦ９）。いま、図２０に示す様に計画ファイルにおいてその絞り込みファイルの先頭レコードから予算項目の項目値「１０１」が取り出され、この項目値「１０１」と指定ファイル記号「１」とが結合され、この結合データ「１１０１」が展開レコードの１レコード目における分類キーとなる。
【００３８】
次に、この計画ファイルにおける絞り込みファイル（以下、計画絞り込みファイルと略称する）の先頭レコードにおいて、その出力対象項目はＢ表に定義されている抽出条件に合致するレコードか否かを調べる。即ち、先ず、展開ファイル作成部９はＢ表結合テーブルを参照し、このテーブル内に指定ファイル記号が有るかをチェックする（ステップＦ１０）。ここで、上述した様に条件項目がＢ表内に定義されている時に、ファイル名、条件項目名、ファイル記号等がＢ表結合テーブルにセットされる為、ファイル記号がセットされていないということは条件項目がＢ表に定義されていないこと（つまり、出力対象項目の抽出条件がセットされていない無条件）を意味する。いま、Ｂ表結合テーブルには指定ファイル記号「１」がセットされているので、ステップＦ１１に進み、Ｂ表結合テーブルの項目名に対応する項目値を指定レコードから取り出す。この場合、先頭レコードから計画種別の項目値「１」が取り出される。そして、この項目値に対応する条件値をＢ表条件テーブル内から検索し（ステップＦ１２）、一致する条件値が有るかをチェックする（ステップＦ１３）。いま、先頭レコードに含まれている計画種別の項目値「１」はＢ表条件テーブル内の１レコード目に存在する為、次のステップＦ１４に進み、それに対応するＢ表条件テーブル内に否定フラグがセットされているか否かをチェックするが、この場合、否定フラグはセットされていないので、ステップＦ２０に進み、一致した条件値に対応する位置の値（この場合、Ｂ）をＢ表条件テーブルから取り出し、これと一致する項目位置の値を集計項目テーブル内で検索し（ステップＦ２１）、これに対応する項目名を指定する（ステップＦ２２）。ここで、集計項目テーブルにはその１レコード目に項目位置Ｂがセットされているのでそれに対応する項目名「予算額」が取り出され、この項目名に対応する項目値「８００，０００」を指定レコードから取り出すと共に（ステップＦ２３）、この項目位置Ｂに対応して集計項目テーブル内にマイナスサインフラグがセットされているかをチェックする（ステップＦ２４）。次に、ステップＦ２５に進み、指定レコードから取り出した項目値「８００，０００」を展開レコードの対応位置「Ｂ」に集計するが、この場合、マイナスサインフラグがセットされるものについてはマイナス集計が行われ、マイナスサインフラグがセットされていないものはプラス集計される。これによって図２０に示す様な１レコード目の展開レコードが作成される。
【００３９】
次に、集計項目テーブル内で同一の項目位置（この場合、Ｂ）が他にもセットされているかをチェッするが（ステップＦ２６）、図５（Ｅ）に示す様に、会計ファイルについては項目名「借方金額」、「貸方金額」に対応して集計項目テーブル内にそれぞれ２ケ所ずつ同一項目位置Ｄ、Ｅがセットされているが、項目位置Ｂについては複数セットされていないので、ステップＦ１５に進み、Ｂ表条件テーブル内で項目値と一致する条件値が他に有るかをチェックする。いま、Ｂ表条件テーブル内において条件値「１」はその１行目しか存在しない為、ステップＦ１６に進み、指定された計画絞り込みファイル内に次のレコードがあることを条件に、次のレコードを指定する（ステップＦ１９）。
【００４０】
これによって計画絞り込みファイルの２レコード目が指定され、ステップＦ６に戻り、以下、上述の動作が繰り返される。この場合、ファイル記号「１」と２レコード目の予算項目値「１０２」とによって２レコード目における展開レコードの分類キー「１１０２」が生成される（ステップＦ６〜Ｆ９）。また、上記１レコード目と同様に２レコード目の計画種別に対応する項目値も「１」で、この項目値「１」に一致する条件値はＢ表条件テーブル内に存在し、かつそれに対応して否定フラグもセットされていないので、ステップＦ２０に進み、Ｂ表条件テーブルから項目位置「Ｂ」を取り出し、この項目位置「Ｂ」に対応する項目名「予算額」の値を計画ファイルの２レコード目から取り出す（ステップＦ２１〜Ｆ２３）。この場合、図２０に示す様に、計画ファイル（絞り込みファイル）の２レコード目の予算額の項目から「２００，０００」が取り出され、展開レコード（２レコード目）の対応位置「Ｂ」にプラス集計される（ステップＦ２５）。
【００４１】
次に、計画絞り込みファイルの３レコード目が指定されると（ステップＦ１９）、展開レコード（３レコード目）の分類キー「１１０３」が生成される。この場合、計画絞り込みファイルから読み出された３レコード目の計画種別の項目値は「２」で、この項目値と一致する条件値はＢ表条件テーブル内にセットされているが、この条件値に一致する項目値は「Ｃ」である。したがって、計画絞り込みファイルの３レコード目から取り出された「予算額」の項目値「４００，０００」が展開レコード（３レコード目）における対応位置「Ｃ」にプラス集計される。
【００４２】
更に、計画絞り込みファイルの４レコード目が指定されると、その３レコード目と同様に展開レコード（４レコード目）の項目位置「Ｃ」には計画絞り込みファイルの４レコード目から取り出された予算額の項目値「５０，０００」がプラス集計される。なお、この展開レコードの分類キーは「１１０４」となる。
以下、同様に、計画絞り込みファイルを１レコードずつ順次指定しながら、パラメータ解析テーブル６内のＡ表結合テーブル、Ｂ表の結合テーブル、条件テーブル、集計項目テーブルを参照し、計画絞り込みファイルの展開レコードを１レコードずつ順次作成してゆく。
【００４３】
なお、ステップＦ１０でＢ表結合テーブル内に指定ファイル記号がセットされていないことが検出された場合には、条件項目が定義されていない無条件項目である為、ステップＦ２９に進み、Ｂ表条件テーブルの定義内容を参照せず、直接的に、集計項目テーブル内で指定ファイルと同一のファイル名を検索し、以降、ステップＦ２２に戻る。
【００４４】
このような動作を１レコードずつ行った結果、指定ファイル内の全レコードを指定し終り、ステップＦ１６で次レコード無しが検出されると、ステップＦ１７に進み、Ａ表結合テーブル内に他のファイルが定義されているかをチェックする。いま、Ａ表結合テーブル内には、他のファイルとして会計ファイルが定義されているので、最初のステップＦ１に戻り、上述と同様に会計ファイルに対応してその展開レコードを順次生成する処理を行う。
即ち、Ａ表結合テーブルよりファイル名として「会計ＦＩＬＥ」を取り出し（ステップＦ１）、そのファイル記号として「２」を指定しておく（ステップＦ２）。そして、このファイル名に対応するソースファイルとして会計ファイルを指定すると共に（ステップＦ３）、その先頭レコードを指定しておく（ステップＦ４）。
次に、抽出条件テーブルを参照し、会計ファイルからこの抽出条件「部門＝“８３”」に合致するレコードのみを読み出して会計ファイルについての絞り込みファイルを得る（ステップＦ５）。
【００４５】
この状態において、指定レコードの「勘定科目」の項目値「２１１１」とファイル記号「２」とを結合し、１レコード目における展開レコードの分類キー「２２１１１」を生成する（ステップＦ６〜Ｆ９）。そして、ステップＦ１０に進むが、この場合、Ｂ表結合テーブルにはファイル記号「２」が記憶されているので、Ｂ表結合テーブルの項目名「相手勘定」に対応する項目値を会計絞り込みファイルの１レコード目から取り出す（ステップＦ１１）。いま、会計絞り込みファイルの１レコード目からは「相手勘定」の項目値として「００１１」が取り出されるので、この項目値と一致する条件値をＢ表条件テ−ブルから検表する（ステップＦ１２）。この場合、該当する条件値はテ−ブル内の５行目と６行目にそれぞれセットされているので、ステップＦ１３で一致が検出されてステップＦ１４に進み、先ず、最初の５行目に着目し、それに対応する位置に否定フラグがセットされているかをチェックする。いま、Ｂ表条件テ−ブルの５行目には否定フラグがセットされている為、ステップＦ１５に進み、Ｂ表条件テ−ブル内でこの項目値「００１１」と一致する条件値が他に有るかをチェックするが、いま、Ｂ表条件テ−ブル内の６行目に条件値「００１１」が有る為、ステップＦ１４に戻る。いま、この条件値に対応する位置に否定フラグはセットされていないので、ステップＦ２０に進み、Ｂ表条件テ−ブルからこれに対応する項目位置「Ｅ」を取り出し、この項目位置「Ｅ」に一致する集計項目テ−ブル内の項目名を指定するが（ステップＦ２１、Ｆ２２）、この場合、集計項目テ−ブルの５行目、６行目にそれぞれセットされている項目位置「Ｅ」のうち最初の項目位置、つまり、５行目に対応する項目名「借方金額」を指定する。そして、会計絞り込みファイルの１レコ−ド目から指定項目名に対応する項目値「５０，０００」を読み出し、１レコ−ド目における展開レコ−ドの対応位置「Ｅ」にプラス集計する（ステップＦ２３、Ｆ２４）。
【００４６】
そして、ステップＦ２６に進むが、この場合、集計項目テ−ブル内にはその５行目の他に６行目にも同一の項目位置「Ｅ」が存在する為、ステップＦ２２に戻り、集計項目テ−ブル内の当該項目位置に対応する項目名「貸方金額」を指定し、この指定項目名に対応する項目値を会計絞り込みファイルの１レコ−ド目から取り出す（ステップＦ２３）。この場合、会計絞り込みファイルの１レコ−ド目からは貸方金額の項目値として「Ｄ」が取り出され、展開レコ−ドの１レコ−ド目の対応位置「Ｅ」に集計されるが、この際、集計項目テ−ブルの６行目にはマイナスサインフラグがセットされているので、マイナス集計、つまり、（前回の借方金額「５０，０００」−今回の貸方金額「０」）の集計演算が行われる（ステップＦ２５）。その後、ステップＦ２６、Ｆ１５、Ｆ１６からステップＦ１９に進み、会計絞り込みファイルの２レコ−ド目が指定される。
これによって会計絞り込みファイルの２レコ−ド目に対応してその展開レコ−ドが生成されるが、この場合、勘定科目の項目値も「２１１１」で、１レコ−ド目と同様に分類キ−は「２２１１１」となる。また、２レコ−ド目の相手勘定も「００１１」で、項目条件値と一致する為、その借方金額「０」が展開レコ−ドの項目位置Ｅにプラス集計され、またその貸方金額「４０，０００」がその項目位置Ｅにマイナス集計される。この為、２レコ−ド目の展開レコ−ドの項目位置には「−４０，０００」が書き込まれる。
【００４７】
次に、会計絞り込みファイルの３レコ−ド目が指定されるが、この相手勘定の項目値は「００１１」で、Ｂ表条件テ−ブル内にはこれと一致する条件値はセットされていないので、ステップＦ１３からステップＦ２７に進み、Ｂ表結合テ−ブル内で指定ファイル対応して否定フラグがセットされてるかをチェックする。いま、Ｂ表条件テ−ブル内にはその５行目に会計ファイルに対応して否定フラグがセットされているので、ステップＦ２８に進み、否定フラグがセットされている位置の値「Ｄ」をＢ表条件テ−ブルから取り出し、この値に一致する位置を集計項目テ−ブル内から検索し（ステップＦ２１）、その項目名「借方金額」に対応する項目値「８０，０００」を３レコ−ド目から取り出し、展開レコ−ドの対応位置Ｄにプラス集計する。その後、ステップＦ２６からステップＦ２２に戻り、上述と同様に次の項目名「貸方金額」の項目値「０」が展開レコ−ドの位置「Ｄ」にマイナス集計される。以下、次レコ−ドが指定され、ステップＦ１３で不一致が検出される毎に上述と同様の動作が１レコ−ドずつ繰り返される。これによって条件項目「相手勘定」の条件値「≠００１１」にしたがった展開レコ−ドが順次生成される。
【００４８】
その後、会計絞り込みファイルの全レコ−ドを指定し終り、ステップＦ１６で次レコ−ド無しが検出されると、ステップＦ１７に進み、Ａ表結合テ−ブル内に他のファイルが有るかをチェックするが、この場合、ファイル無しが検出されるので、ステップＦ１８に進み、展開レコ−ドの編集処理が行われる。即ち、分類キ−が同一の展開レコ−ドをそれぞれ抽出し、これを１つのレコ−ドにまとめると共に、分類キ−にしたがって各展開レコ−ドを昇順にソ−トする。例えば、図２１に示す様に、１レコ−ド目と２レコ−ド目の展開レコ−ドはその分類キ−が同一である為、１つの展開レコ−ドにまとめられ、その項目位置「Ｅ」の値は「１０，０００」となる。
図２２は上述の様にして作成された展開ファイル１１の内容を示している。即ち、計画ファイル、会計ファイルの内容にしたがって作成された展開ファイル１１で、そのレコード構造はＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの項目を有し、その先頭項目Ａは分類キーとなっている。
【００４９】
このようにして展開ファイル作成部９は展開ファイル１１を作成したのち、展開集計処理部１２を起動させる。すると、展開集計処理部１２は図２３のフローチャートにしたがって集計ファイル１３を作成する。なお、図２４は展開集計処理部１２の動作内容を具体的に説明する為の図である。
展開ファイル作成部９は展開ファイル１１の内容と構成ファイル７の内容とに基づいて集計ファイル１３を部品展開手法にしたがって生成する。
先ず、展開集計処理部１２は展開ファイル１１の先頭から１レコード分のデータを読み込む（ステップＧ１）。そして、次のステップＧ２ではデータ終了か、つまり、展開ファイル１１の先頭から全てのレコードを読み出したか否かをチェックする。最初は展開ファイル１１の先頭から１レコード分のデータを読み込んだ場合であるから、次のステップＧ３に進み、構成ファイル７の内容をサーチし、その分類キーと一致する子コードを持った構成レコードを構成ファイル７から検索する。いま、図２４に示す様に展開ファイル１１の先頭レコード内の分類キーは「１１０１」であり、構成ファイル７には図１５に示す様にこれと一致する子コードを持った構成レコードが存在する為、ステップＧ３でそのことが検出されてステップＧ４に進み、集計ファイル１３のレコード（集計レコード）を生成する。即ち、図２４の具体例において、先ず、展開集計処理部１２はこの子コード「１１０１」に対応する親コードを構成ファイル７から読み出し、この親コード「・Ｃ０３」をＢ表の行Ｎｏ「０３」とそれ以外「・Ｃ」とに分解し、この行Ｎｏ「０３」を集計ファイル１３の１レコード目の先頭項目に配置し、またそれ以外の「・Ｃ」をそれに続けて配置する。そしてこの子コードに対応する名称を構成ファイル７から読み出し、集計レコードの次の項目に配置する。これに続けて展開ファイル１１のデータ項目「８００，０００」を集計レコードの次項目以降に順次配置する。
この集計レコードはＡ表の行Ｎｏ「０３」に定義されているレコード名「人件費」、集計レベル「Ｃ」の集計レコードであり、このレコード名に対応してＡ表に定義されている集計対象コードに該当するデータを集計したものである。
これによって集計ファイル１３の１レコード分のデータが生成されると、この生成レコードを集計ファイル１３に書き出すが、その際、集計ファイル１３内に既に同一分類キーを持つレコードが存在していれば、それを１レコードに集計して集計ファイル１３内に書き込み、また同一分類キーのレコードが存在していなければ、今回生成したレコードを新たに集計ファイル１３に追加する（ステップＧ５）。
【００５０】
次に、構成ファイル７内の該当レコード位置に終了フラグがセットされているか否かをチェックする（ステップＧ６）。ここで、構成ファイル７内の終了フラグは親コードの集計レベルが「Ａ」のときに“１”となるもので、終了フラグが“１”のときにはそのままステップＧ３に戻るが、終了フラグが“１”でなければ新たな展開レコードを生成して展開ファイル１１への書き出しを行う（ステップＧ７）。この場合、図２４の（Ｂ）に示す様なレコードを生成して展開ファイル１１へ戻す。即ち、今回生成した集計レコードよりも上位レベルにあるレコード名がＡ表に定義されていれば、今回生成した集計レコードの集計結果を上位レベルにあるレコード名の集計レコードへ集計させる為に新たな展開レコードを生成して展開ファイル１５への書き出しを行う。ここで、構成ファイル７内の該当する親コード「・Ｃ０３」を先頭項目に配置し、これに続いて展開ファイル１１から読み出したデータを順次配置して成るレコードを展開ファイル１１へ書き出す。なお、図２２で示した展開ファイル１１において、図中破線の下に配置したレコードはこの戻されたレコードを示している。
その後、ステップＧ３に戻り、以下、構成ファイル７の内容を全てサーチし、該当レコードが検出されなくなるまで上述の動作を繰り返す。この結果、ステップＦ３で該当レコード無しが検出されて不一致終了となると、ステップＧ１に戻り、展開ファイル１１から次のレコードを読み出す。このような動作は展開ファイル１１の全レコードに対して行われる。これによって集計対象コードに該当するデータがＡ表の対応するレコード名の集計レコードに集計される他、この集計レコードよりも上位レベルにあるレコード名がＡ表に定義されていれば、この集計レコードの集計結果が上位レベルにあるレコード名の集計レコードに集計される。一方、上位レベルにある集計レコードへのマイナス集計が定義されていれば、上位レベルの集計レコードへマイナス集計される。そして、ステップＧ１でデータ終了が検出されると、ステップＧ８に進み、集計ファイル１３を構成する各レコードをその先頭項目の内容にしたがって昇順にソートする。このようにしてソートされた集計ファイル１７内の各レコードは帳票出力時の印刷順に並べ替えられる。
【００５１】
このようにして集計ファイル１３が作成されると、展開集計処理部１２は印刷処理部１４を起動させる。すると、印刷処理部１４は印刷書式メモリ８の内容を取り込んでその印刷書式にしたがって集計ファイル１３の内容を帳票フォーマットと共にプリンタ１５から印刷出力させる。この場合、集計ファイル１３の集計レコードに記憶されている各レコード名を順次取り出して縦方向に配置すると共に、印刷書式メモリ８に記憶されている各項目名を順次取り出して帳票フォーマットの対応位置に印刷出力させる。図２はこの場合の帳票印刷例で、その行方向には集計レベルに応じた階層構造のフォーマットと共に集計レコードのレコード名が印刷されると共に、列方向には集計レコードの項目名が印刷され、更に集計ファイル１３の内容が１レコード毎に印刷出力される。
【００５２】
以上の様に、本実施例においては、専門的知識を有しない業務担当者が所望する帳票を得る為に、集計対象ファイルおよびそのレコード抽出条件を指定すると共に、帳票等の出力イメージにしたがって集計レベル毎に集計レコードのレコード名、出力対象項目等を単に定義するだけで、その定義内容にしたがって集計対象ファイルから読み出されたレコード項目の内容が集計レベルに応じて集計され、その集計結果が階層構造で印刷されるので、業務担当者等であっても所望する帳票を容易に得ることができる。特に、Ａ表に集計対象ファイルを定義する際に、そのレコード抽出条件も定義できる為、レコード集計を行う前処理として予め処理対象外のレコードを省き、対象レコードのみに絞り込んでおくことができる。即ち、予め集計処理に必要な対象レコードのみを第一段階で絞り込んでおくことができ、これによって第２段階での次のレコード条件の指定が容易になる。
【００５３】
なお、上記実施例はＡ表に定義される対象ファイルの抽出条件として「部門＝“８３”」の場合を例に挙げたが、図２５に示す様な条件式を定義するようにしてもよい。即ち、図２５に示す例では、対象ファイル名として「全社残高ファイル」を定義すると共に、そのレコード抽出条件として（“１２”＜＝勘定科目＆勘定科目＜“１３”）を定義した場合である。これは指定された項目名の中で数値範囲もしくはコード範囲に含まれる項目データを有するレコードのみを対象ファイルから抽出することを示している。即ち、“勘定科目”のコードが“１２”以上で、且つ“１３”より小さいレコードを“全社残高ファイル”から抽出する指定である。なお、項目間の論理演算子「＆」は論理積を示しているが、その他に論理和「１」等の論理演算子で項目間の条件を指定する。また、データ範囲は文字範囲を指定してもよい。
【００５４】
また、上記実施例はレコード集計を行う場合について説明したが、Ａ表の集計レベルをＡだけにすることによりレコード集計に限らず、単にレコード抽出、配列、項目内計算等を行うようにしてもよい。
また、上記実施例は帳票を印刷出力する場合を示したが、ＣＲＴ画面表示やその他の媒体に出力するようにしてもよい。
一方、上記実施例はＡ表、Ｂ表を別個独立に定義するようにしたが、Ａ表、Ｂ表を同一画面上において同時に定義するようにしてもよい。
また、上記実施例においては、Ａ表の見出し部によって構成されるマトリックス上の任意の交点位置に項目コードを入力するようにしたが、項目名を入力するようにしてもよく、またその行方向に入力される集計レコードのレコード名を集計レベルに応じて階層構造で入力するようにしたが、階層構造に限定されないことは勿論である。パラメータファイルからＡ表、Ｂ表のイメージそのものを印刷する事により、帳票などの仕様書として業務担当者がわかる形で保管できる様にしてもよい。
【００５５】
【発明の効果】
この発明によれば、所望する帳票等を得る為にコード体系を予め作成しておかなくても、抽出対象ファイルおよびそのレコード抽出条件を指定すると共に帳票等の出力イメージにしたがって出力レコードのレコード名、出力対象項目等を単に指定するだけで、その指定内容にしたがった帳票等を出力することができるので、従来の様にシステムエンジニア等の専門家にコード体系の作成を依頼する必要はなく、一般ユーザである業務担当者でも容易に帳票等を簡単に得ることが可能となり、極めて実用性に富んだものとなる。特に、抽出対象ファイルの指定時に、ファイル名だけでなく、同時に該当するレコード条件も指定できる為、対象レコードを第一段階で絞り込むことができ、第２段階での次のレコード条件の指定が容易になる。
【図面の簡単な説明】
【図１】実施例に係るデータ処理装置のブロック構成図。
【図２】帳票の印刷出力例を示した図。
【図３】Ａ表に定義された内容を具体的に示した図。
【図４】Ｂ表に定義された内容を具体的に示した図。
【図５】図３、図４に示すＡ表、Ｂ表を解析することによって得られた抽出条件テーブル、Ａ表結合テーブル、Ｂ表結合テーブル、Ｂ表条件テーブル、Ｂ表集計項目テーブルの内容を具体的に示したもので、（Ａ）は抽出条件テーブル、（Ｂ）はＡ表結合テーブル、（Ｃ）はＢ表結合テーブル、（Ｄ）はＢ表条件テーブル、（Ｅ）はＢ表集計項目テーブルを示した図。
【図６】Ａ表の基本フォーマットを示した図。
【図７】Ｂ表の基本フォーマットを示した図。
【図８】表構造解析部５の全体動作の概要を示したゼネラルフローチャート。
【図９】図８で示した抽出条件テーブル作成処理を詳細に示したフローチャート。
【図１０】図８で示したＡ表結合テーブル作成処理の一部を詳細に示したフローチャート。
【図１１】図８で示した構成ファイル作成処理の一部を詳細に示したフローチャート。
【図１２】図１１に続く構成ファイル作成処理の一部を示したフローチャート。
【図１３】図１１に続く構成ファイル作成処理の一部を示したフローチャート。
【図１４】構成ファイル作成処理の動作内容を具体的に示した図で、（Ａ）、（Ｃ）は構成レコード、（Ｂ）は最終項目ワークメモリの内容を示した図。
【図１５】構成ファイルの具体的な内容を示した図。
【図１６】図８で示したＢ表に関するテーブル作成処理の一部を示したフローチャート。
【図１７】図１６に続くテーブル作成処理の一部を示したフローチャート。
【図１８】展開ファイル作成処理の一部を示したフローチャート。
【図１９】図１８に続く展開ファイル作成処理の一部を示したフローチャート。
【図２０】計画ファイルのレコード内容に基づいて作成された展開レコードを示した図。
【図２１】会計ファイルのレコード内容に基づいて作成された展開レコードを示した図。
【図２２】展開ファイル１１の内容を具体的に示した図。
【図２３】展開集計処理部１２による展開集計処理を示した図。
【図２４】展開集計処理の動作内容を具体的に示した図で、（Ａ）は展開ファイル、構成ファイルから集計レコードが生成される様子を示した図、（Ｂ）は新たに生成される展開レコードを示した図。
【図２５】レコード抽出条件の他の指定例を示した図。
【符号の説明】
１  入力部
２  パラメータ設定部
３  表示部
４  パラメータファイル
５  表構造解析部
６  パラメータ解析テーブル
７  構成ファイル
８  印刷書式メモリ
９  展開ファイル作成部
１０  データファイル
１１  展開ファイル
１２  展開集計処理部
１３  集計ファイル
１４  印刷処理部
１５  プリンタ
【図１】
0003548866.tif 000002
【図２】
0003548866.tif 000003
【図３】
0003548866.tif 000004
【図４】
0003548866.tif 000005
【図５】
0003548866.tif 000006
【図６】
0003548866.tif 000007
【図７】
0003548866.tif 000008
【図８】
0003548866.tif 000009
【図９】
0003548866.tif 000010
【図１０】
0003548866.tif 000011
【図１１】
0003548866.tif 000012
【図１２】
0003548866.tif 000013
【図１３】
0003548866.tif 000014
【図１４】
0003548866.tif 000015
【図１５】
0003548866.tif 000016
【図１６】
0003548866.tif 000017
【図１７】
0003548866.tif 000018
【図１８】
0003548866.tif 000019
【図１９】
0003548866.tif 000020
【図２０】
0003548866.tif 000021
【図２１】
0003548866.tif 000022
【図２２】
0003548866.tif 000023
【図２３】
0003548866.tif 000024
【図２４】
0003548866.tif 000025
【図２５】
0003548866.tif 000026