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