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