(57)【要約】【課題】　集計レポートからグラフを生成する場合に発生する、データ入力、データ抽出などの煩雑かつ時間のかかる作業を不要にして、ユーザの負担を軽減する。【解決手段】　取得したレポートの構造を自動的に認識して、レポートの中からグラフ化に必要なデータを抽出する（ステップ５０５）。抽出したデータを利用して、レポート中の集計項目に、所定のグラフ生成規則を対応付けておく（ステップ５１０）。ユーザが、その集計項目をマウスクリックした際に、対応付けておいたグラフ生成規則にしたがって、抽出したデータを用いて自動的にグラフを生成する（ステップ５１５）。【選択図】　　　図５
2004118867.tif 000002
【特許請求の範囲】
【請求項１】
　レポートからのグラフ生成を支援するためのプログラムであって、コンピュータを、
　１以上のデータフィールドと各データフィールドの値を横方向に集計した値が入る横集計フィールドとを含む明細行を少なくとも１つ含むレポートを電子データの形式で取得する手段、
　前記明細行に含まれる横集計フィールドを、該横集計フィールドの列位置により識別する手段、
　前記レポートをコンピュータ画面に表示し、該レポート内のデータフィールドを選択するユーザ入力を受け付ける手段、
　前記ユーザ入力に基づいて、前記レポートの中の前記選択されたデータフィールドを判断する手段、および
　前記横集計フィールドが選択された場合に、当該横集計フィールドが含まれる明細行に含まれる前記各データフィールドの値を表示するグラフを生成する手段、
　として機能させるプログラムコードを含むことを特徴とするグラフ生成支援プログラム。
【請求項２】
　レポートからのグラフ生成を支援するためのプログラムであって、コンピュータを、
　１以上の第ｎレベルの集計行と１以上の第ｎ＋１レベルの集計行とを含み、各第ｎレベルの集計行は、第ｎレベルを意味するコントロールブレークキーと１以上のデータフィールドとを有し、各第ｎ＋１レベルの集計行は、第ｎ＋１レベルを意味するコントロールブレークキーを有すると共に、当該第ｎ＋１レベルに包含される全ての第ｎレベルの集計行の下に配置され、かつ、それぞれに前記全ての第ｎレベルの集計行のデータフィールドの値を縦方向に集計した値が入れられた１以上のデータフィールドを有するレポートを電子データの形式で取得する手段、
　前記第ｎレベルの集計行を、該第ｎレベルの集計行が有する前記コントロールブレークキーにより識別する手段、
　前記第ｎ＋１レベルの集計行を、該第ｎ＋１レベルの集計行が有する前記コントロールブレークキーにより識別する手段、
　前記レポートをコンピュータ画面に表示し、該レポート内のデータフィールドを選択するユーザ入力を受け付ける手段、
　前記ユーザ入力に基づいて、前記レポートの中の前記選択されたデータフィールドを判断する手段、および
　前記第ｎ＋１レベルの集計行に属するデータフィールドが選択された場合に、当該第ｎ＋１レベルの集計行と、その１つ上の第ｎ＋１レベルの集計行との間にある第ｎレベルの集計行のうち、選択された前記データフィールドと同じ列に属するデータフィールドの値を表示するグラフを生成する手段、
　として機能させるためのプログラムコードを含むことを特徴とするグラフ生成支援プログラム。
【請求項３】
　コンピュータを、
　前記レポートと同じ定義規則が適用された一連のレポートをアクセス可能な状態で保管する手段、
　レポートの特定のフィールドが選択された場合に、前記一連のレポートから、それぞれ前記フィールドと同じ行の同じ列に配置されるフィールドを抽出する手段、および
　抽出されたデータフィールドの値を表示するグラフを生成する手段、
　として機能させるためのプログラムコードを含むことを特徴とする請求項１または２記載のグラフ生成支援プログラム。
【請求項４】
　請求項１から３のいずれかに記載のグラフ生成支援プログラムが記録されたコンピュータ読取可能な記録媒体。
【請求項５】
　コンピュータにより実行されるグラフの自動生成方法であって、
　１以上のデータフィールドと各データフィールドの値を横方向に集計した値が入る横集計フィールドとを含む明細行を少なくとも１つ含むレポートを電子データの形式で取得する手段をコンピュータに実現させるステップと、
　前記明細行に含まれる横集計フィールドを、該横集計フィールドの列位置により識別する手段をコンピュータに実現させるステップと、
　前記レポートをコンピュータ画面に表示し、該レポート内のデータフィールドを選択するユーザ入力を受け付ける手段をコンピュータに実現させるステップと、
　前記ユーザ入力に基づいて前記レポートの中の前記選択されたデータフィールドを判断する手段をコンピュータに実現させるステップと、
　前記横集計フィールドが選択された場合に当該横集計フィールドが含まれる明細行に含まれる前記各データフィールドの値を表示するグラフを生成する手段をコンピュータに実現させるステップと、
　を含むことを特徴とするグラフ自動生成方法。
【請求項６】
　コンピュータにより実行されるグラフの自動生成方法であって、
　１以上の第ｎレベルの集計行と１以上の第ｎ＋１レベルの集計行とを含み、各第ｎレベルの集計行は、第ｎレベルを意味するコントロールブレークキーと１以上のデータフィールドとを有し、各第ｎ＋１レベルの集計行は、第ｎ＋１レベルを意味するコントロールブレークキーを有すると共に、当該第ｎ＋１レベルに包含される全ての第ｎレベルの集計行の下に配置され、かつ、それぞれに前記全ての第ｎレベルの集計行のデータフィールドの値を縦方向に集計した値が入れられた１以上のデータフィールドを有するレポートを電子データの形式で取得する手段をコンピュータに実現させるステップと、
　前記第ｎレベルの集計行を、該第ｎレベルの集計行が有する前記コントロールブレークキーにより識別する手段をコンピュータに実現させるステップと、
　前記第ｎ＋１レベルの集計行を、該第ｎ＋１レベルの集計行が有する前記コントロールブレークキーにより識別する手段をコンピュータに実現させるステップと、
　前記レポートをコンピュータ画面に表示し、該レポート内のデータフィールドを選択するユーザ入力を受け付ける手段をコンピュータに実現させるステップと、
　前記ユーザ入力に基づいて前記レポートの中の前記選択されたデータフィールドを判断する手段をコンピュータに実現させるステップと、
　前記ｎ＋１レベルの集計行に属するデータフィールドが選択された場合に当該第ｎ＋１レベルの集計行と、その１つ上の第ｎ＋１レベルの集計行との間にある第ｎレベルの集計行のうち、選択された前記データフィールドと同じ列に属するデータフィールドの値を表示するグラフを生成する手段をコンピュータに実現させるステップと、
　を含むことを特徴とするグラフ自動生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、コンピュータを用いてグラフを自動生成する方法と、そのような方法を用いてグラフの生成を支援するプログラムおよびそのプログラムが記録された記録媒体に関する。
【背景技術】
【０００２】
　業務システムの中には、所定のレポートを出力して、ユーザに繰返し（例えば毎日または毎月）配信するものがある。このようなシステムでは、ユーザはレポートが届く度にそのデータを読まねばならず、大きな負担を強いられていた。また、多くの場合、このようなレポートは文字と数字により構成されており、グラフやチャート等、レポートの理解、利用を容易にするための視覚的イメージは含まれていなかった。
【０００３】
　今日、様々なグラフ作成ツールが提供されている。しかし、どのツールでも、ユーザは、まず必要なデータを選択し、そのデータを整理して（または一部のデータを抽出して）、グラフ作成用に１つのテーブルにまとめ直さなければならない。グラフ作成ツールのみならず、例えばＭＳ―Ｅｘｃｅｌのような表計算ソフトウェアでグラフを作成する場合も、同様の手続きが必要とされる。多くの場合、レポートを受け取ったユーザは、ＭＳ―Ｅｘｃｅｌに必要なデータを手作業で再入カすることによって、グラフ作成に用いられるテーブル用のデータを生成したり、抽出したりしている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
　レポートには、ユーザにとって必要不可欠なデータの他に、表題、ヘッダ等、レポートの属性やレポートの構成を表す情報が含まれている。ユーザに配布されるレポートは、通常、数ページから数百ページもの分量がある。このため、そのレポートから必要なデータ（例、集計値）を選択あるいは抽出する作業は、煩雑であり、時間もかかる。
【０００５】
　従来のシステムでは、テーブル型またはその他の（例えばスプレッドシート）フォーマットのデータからグラフを生成することはできる。しかし、これらのシステムを、個々のユーザ用にカスタマイズされた（あるいは個々のユーザが定義可能な）グラフの自動生成に用いることは、（データのさらなる抽出や加工を行わない限り）容易ではない。
【０００６】
　本発明は、上記問題点に鑑みて、レポートから、ユーザの手を煩わせずに自動的にグラフを生成できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
　本発明の方法は、コンピュータにより実行されるグラフの自動生成方法であって、
　グラフ生成の基礎となるレポートのフォーマットを、１以上のデータフィールドを含む１以上の明細行と、複数のデータフィールドの値の集計値を入れる１以上の集計フィールドを含むフォーマットであって、前記集計フィールドは、各明細行内で同じ位置付けにあるデータフィールドの値を縦方向に集計した値が入る縦集計フィールド、または前記明細行の各データフィールドの値を横方向に集計した値が入る横集計フィールドの少なくとも一方であるようなフォーマットとして認識し、
　前記集計フィールドの１つを指定するユーザ入力を受け付け、
　前記ユーザ入力により指定された集計フィールドに対応する所定の定義規則を用いてグラフを生成することを特徴とする。
【０００８】
　言い換えれば、本発明の方法は、コンピュータにより実行されるグラフの自動生成方法であって、
　グラフ生成の基礎となるレポートのフォーマットを、第１レベルに属する第１グループを少なくとも１つ含み、各第１グループは少なくとも１行の明細行を有し、各明細行はそれぞれ少なくとも２つのデータフィールドを含み、前記第１のグループは、さらに、第１グループ内の複数のデータフィールドの値の集計値が入る縦集計フィールドまたは横集計フィールドのいずれかを含み、前記縦集計フィールドには各明細行内で同じ位置付けにあるデータフィールドの値を縦方向に集計した値が入り、前記横集計フィールドには明細行の各データフィールドの値を横方向に集計した値が入るようなフォーマットとして認識し、
　前記縦集計フィールドまたは横集計フィールドの１つを指定するユーザ入力を受け付け、
　前記ユーザ入力により指定された縦集計フィールドまたは横集計フィールドに対応する所定の定義規則を用いてグラフを生成することを特徴とする。
【０００９】
　本発明は、レポートのフォーマットが、前記縦集計フィールドが縦集計行に配置されているフォーマットである場合に適している。
【００１０】
　また、前記縦集計フィールドに対応する所定の定義規則は、例えば、縦集計フィールドに入る値を構成する個々の値を、グラフを特徴づける個々の要素として利用する規則などとする。また、横集計フィールドに対応する所定の定義規則は、横集計フィールドに入る値を構成する個々の値を、グラフを特徴づける個々の要素として利用するといった規則などとする。
【００１１】
　前記グラフを特徴づける個々の要素は、グラフィカルディスプレイ上に表示される個別の表示コンポーネントとする。
【００１２】
　また、本発明は、前記レポートのフォーマットが、前記縦集計フィールドと前記横集計フィールドの両方を含むフォーマットである場合にも適している。このようなフォーマットとしては、複数の縦集計フィールドの値の合計であり複数の横集計フィールドの値の合計でもあるクロス集計フィールドを含むフォーマットが多いが、本発明はこのようなフォーマットに適している。
【００１３】
　レポートがこのようなフォーマットである場合には、１つのクロス集計フィールドを指定するユーザ入力を受け付け、前記ユーザ入力により指定されたクロス集計フィールドに対応する所定の定義規則を用いて前記グラフを生成する。前記クロス集計フィールドに対応する所定の定義規則は、クロス集計フィールドの値を構成する縦集計フィールドの値または横集計フィールドの値を、グラフを特徴づける個々の要素として利用するなどの規則としておく。具体的には、前記クロス集計フィールドに対応づけられた所定の定義規則の中に、第１のグラフと第２のグラフを生成し、前記第１のグラフはそのクロス集計フィールドの値を構成する個々の縦集計フィールドの値により特徴づけ、前記第２のグラフはそのクロス集計フィールドの値を構成する個々の横集計フィールドの値により特徴づけるという規則などが考えられる。
【００１４】
　前記レポートは、データグループがＮ（Ｎは２以上の整数）レベルに階層化されたフォーマットであり、そのフォーマットは第Ｎレベルに属する第Ｎグループを少なくとも１つ含み、
　レベルＫ（１＜Ｋ≦Ｎ）において、第Ｋグループは１以上の第Ｋ−１グループを含み、さらに第Ｋグループは第Ｋグループ縦集計フィールドを含み、第Ｋグループ縦集計フィールドには、その第Ｋグループの中にある各第Ｋ−１グループの縦集計フィールドの値の合計が入る関係が成り立つようなフォーマットであってもよい。
【００１５】
　データグループがＮレベルに階層化されたフォーマットとは、具体的には、前記レポートのフォーマットが階層的であり、フォーマットは、第２レベルに属する第２グループを少なくとも１つ含み、各第２グループは１以上の第１グループを含み、さらに各第２グループは第２グループ縦集計フィールドを含み、第２グループ縦集計フィールドには、その第２グループの中にある各第１グループの縦集計フィールドの値の合計が入るフォーマットなどである。
【００１６】
　レポートのフォーマットは、前記縦集計フィールドが、縦集計行に配置されていると認識しやすい。
【００１７】
　この場合、１つの第２グループ縦集計フィールドを指定するユーザ入力を受け付け、前記ユーザ入力により指定された第２グループ縦集計フィールドに対応する所定の定義規則を用いてグラフを生成する。
【００１８】
　前記第２グループ縦集計フィールドに対応する所定の定義規則は、第２グループ縦集計フィールドに入る値を構成する第１グループ縦集計フィールドの個々の値を、グラフを特徴づける個々の要素として利用するなどの規則としておく。
【００１９】
　前記各第２のグループは、一般には、それぞれ少なくとも２つの第１のグループを含んでいる。
【００２０】
　また、さらに、レベル数を増やして、前記レポートのフォーマットを、第３レベルに属する第３グループを少なくとも１つ含み、各第３グループは１以上の第２グループを含み、さらに各第３グループは第３グループ縦集計フィールドを含み、第３グループ縦集計フィールドには、その第３グループの中にある各第２グループの縦集計フィールドの値の合計が入るフォーマットとしてもよい。
【００２１】
　この場合、前記第３グループ縦集計フィールドは、１つの行に配置されており、
　１つの第３グループ縦集計フィールドを指定するユーザ入力を受け付け、
　前記ユーザ入力により指定された第３グループ縦集計フィールドに対応する所定の定義規則を用いてグラフを生成する。
【００２２】
　前記第３グループ縦集計フィールドに対応する所定の定義規則は、第３グループ縦集計フィールドに入る値を構成する第２グループ縦集計フィールドの個々の値を、グラフを特徴づける個々の要素として利用するなどの規則としておく。
【００２３】
　ユーザ入力の受け付けは、集計フィールド上で行われたポインティングデバイスによるクリックを前記ユーザ入力として受け付けるなどすればよい。他のフィールドと色分けして表示された集計フィールド上で行われたポインティングデバイスによるクリックを前記ユーザ入力として受け付けてもよい。
【００２４】
　また、前記グラフを特徴づける個々の要素を、その要素を形成する際に用いられた個々の値と関連付けておき、前記要素がポインティングデバイスによりクリックされた際に、関連付けられた個々の値を表示するようにしてもよい。
【００２５】
　あるいは、ユーザから前記要素を指定する入力を受け付けた場合に、その要素を形成する際に用いられた個々の値を含むレポートのページを表示してもよい。
【００２６】
　あるいは、ユーザから前記要素を指定する入力を受け付け前記レポートのページを表示する場合に、前記要素を形成する際に用いられた少なくとも１つの値を、そのページの他の値と対比できるように異なる方法で表示してもよい。
【００２７】
　さらには、ユーザから前記要素を指定する入力を受け付け前記レポートのページを表示する場合に、表示画面内に、前記要素を形成する際に用いられた他のページへのリンクを表示する手法も考えられる。
【００２８】
　また、前記グラフを特徴づける要素が指定された場合に、その指定された要素を形成する際に用いられた値を含むレポートのページ番号を表示するようにしてもよい。
【００２９】
　前記レポートのフォーマットが階層的であり、そのフォーマットは、第２レベルに属する第２グループを少なくとも１つ含み、各第２グループは１以上の第１グループを含み、さらに各第２グループは第２グループ縦集計フィールドを含み、第２グループ縦集計フィールドには、その第２グループの中にある各第１グループの縦集計フィールドの値の合計が入るフォーマットであり、
　前記縦集計フィールドの列位置によりすべての明細行のデータフィールドの列位置が決まるようにしてもよい。
【００３０】
　前記第１グループおよびそれに続く階層グループは、所定のコントロールブレーク文字により規定されることが好ましい。
【００３１】
　また、ユーザ入力により指定された集計フィールドをハイライト表示または色を変化させて表示し、
　ユーザ入力により指定された集計フィールドの値とともにグラフ生成に用いられるコンポーネントデータもハイライト表示または色を変化させて表示してもよい。
【００３２】
　また、一連のレポートから、いずれかの集計フィールドの値に対応するデータを抽出し、前記抽出したデータの値により個々の要素が特徴づけられたグラフを生成してもよい。この方法は、例えば、異なる時期に発行された同じ形式の一連のレポートについてグラフを生成したい場合に適している。
【００３３】
　次に、本発明の画面表示方法は、レポートに対応するグラフを画面表示するコンピュータ表示システムにおいて、グラフの要素を表示する画面表示方法であって、
　複数のデータフィールドを含む複数の明細行を有し、各明細行内で同じ位置付けにあるデータフィールドの値を縦方向に集計した値が入る縦集計フィールドまたは前記明細行の各データフィールドの値を横方向に集計した値が入る横集計フィールドのいずれかを含むレポートフォーマットとして認識されたレポートに対応するグラフ要素を生成し、
　前記縦集計フィールドまたは横集計フィールドのいずれかをハイライト表示し、
　ハイライト表示された縦集計フィールドまたは横集計フィールドを指定するユーザ入力のみを受け付け、
　前記ハイライト表示された縦集計フィールドまたは横集計フィールドを指定するユーザ入力に基づいてグラフを生成することを特徴とする。
【００３４】
　次に本発明のプログラムは、レポートからのグラフ生成を支援するためのプログラムであって、コンピュータに、
　グラフ生成の基礎となるレポートのフォーマットを、１以上のデータフィールドを含む１以上の明細行と、複数のデータフィールドの値の集計値を入れる１以上の集計フィールドを含むフォーマットであって、前記集計フィールドは、各明細行内で同じ位置付けにあるデータフィールドの値を縦方向に集計した値が入る縦集計フィールド、または前記明細行の各データフィールドの値を横方向に集計した値が入る横集計フィールドの少なくとも一方であるようなフォーマットとして認識する処理と、
　前記集計フィールドに所定の定義規則を対応付ける処理とを実行させることにより、
　前記集計フィールドの１つが指定された際に、前記所定の定義規則に基づいてグラフが自動生成されるようにしたことを特徴とする。
【００３５】
　グラフの自動生成まで含め、レポートからグラフを自動生成するコンピュータプログラムであって、
　グラフ生成の基礎となるレポートのフォーマットを、第１レベルに属する第１グループを少なくとも１つ含み、各第１グループは少なくとも１行の明細行を有し、各明細行はそれぞれ少なくとも２つのデータフィールドを含み、前記第１のグループは、さらに、第１グループ内の複数のデータフィールドの値の集計値が入る縦集計フィールドまたは横集計フィールドのいずれかを含み、前記縦集計フィールドには各明細行内で同じ位置付けにあるデータフィールドの値を縦方向に集計した値が入り、前記横集計フィールドには明細行の各データフィールドの値を横方向に集計した値が入るようなフォーマットとして認識する第１のプログラムコードと、
　前記縦集計フィールドまたは横集計フィールドの１つを指定するユーザ入力を受け付ける第２のプログラムコードと、
　前記ユーザ入力により指定された縦集計フィールドまたは横集計フィールドに対応する所定の定義規則を用いてグラフを生成する第３のプログラムコードと
を含むことを特徴とするグラフ自動生成プログラムとしてもよい。
【００３６】
　前記レポートは、データグループがＮ（Ｎは２以上の整数）レベルに階層化されたフォーマットであり、そのフォーマットは第Ｎレベルに属する第Ｎグループを少なくとも１つ含み、
　レベルＫ（１＜Ｋ≦Ｎ）において、第Ｋグループは１以上の第Ｋ−１グループを含み、さらに第Ｋグループは第Ｋグループ縦集計フィールドを含み、第Ｋグループ縦集計フィールドには、その第Ｋグループの中にある各第Ｋ−１グループの縦集計フィールドの値の合計が入る関係が成り立つようなフォーマットであってもよい。
【００３７】
　次に、本発明のシステムは、レポートに対応するグラフを自動的に生成するシステムであって、
　グラフ生成の基礎となるレポートのフォーマットを、第１レベルに属する第１グループを少なくとも１つ含み、各第１グループは少なくとも１行の明細行を有し、各明細行はそれぞれ少なくとも２つのデータフィールドを含み、前記第１のグループは、さらに、第１グループ内の複数のデータフィールドの値の集計値が入る縦集計フィールドまたは横集計フィールドのいずれかを含み、前記縦集計フィールドには各明細行内で同じ位置付けにあるデータフィールドの値を縦方向に集計した値が入り、前記横集計フィールドには明細行の各データフィールドの値を横方向に集計した値が入るようなフォーマットとして認識する認識手段と、
　前記縦集計フィールドまたは横集計フィールドの１つを指定するユーザ入力を受け付ける入力受付手段と、
　前記ユーザ入力により指定された縦集計フィールドまたは横集計フィールドに対応する所定の定義規則を用いてグラフを生成するグラフ生成手段と
を備えることを特徴とする。
【００３８】
　なお、本発明の記録媒体は、上述のようなプログラムが記録されたコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００３９】
　本実施の形態には、以下のような利点がある。
　（１）レポートをデータソースとして利用するので、ユーザは、データを再入力する必要がない。
　（２）ユーザは簡単な操作で、所望のグラフを得ることができる。
　（３）ユーザは、時系列に保存された過去のデータを現在データと共に活用して、時間による変化（データの推移）を示すグラフを得ることができる。
　（４）ユーザは、定期的に繰り返し発行されるレポート中の所望のデータを指定して、指定したデータから自動的にグラフを作ることができる。
　（５）確定された出カレポートを直接のデータソースとして用いるため、データの改ざんまたは変更を防止できる。　
【発明を実施するための最良の形態】
【００４０】
　以下、本発明の実施の形態について、図面を参照して説明する。　
【００４１】
　図１は、本発明のグラフ自動生成方法の概要を示すフローチャートであり、レポートから自動的にグラフを生成する方法を示している。
【００４２】
　本発明のグラフ自動生成方法は、図１のステップ１００から始まる。コンピュータは、ステップ１１０で、生成するグラフの基礎として用いるユーザ用のレポートを取得する。レポートは、電子データとして取得することが望ましい。但し、他の形式の（例えば紙に書かれた）レポートを電子データに変換したものを取得してもよいことは言うまでもない。例えば、紙のレポートをスキャナで読み取ったもの、あるいは紙のレポートに含まれる重要なデータをコンピュータ入力して電子データとしたものをレポートとして取得してもよい。また、レポートを作成する業務システムが、作成したレポートをデータベースに保存し、グラフの自動生成を行うコンピュータがそのデータベースからレポートを取得するようにしてもよい。あるいは、データソースからの生データ（例えば、リアルタイムに生成または変更されるデータ）を、そのままレポートとして取得してもよい。
【００４３】
　電子フォーマットのレポートを取得したら、次に、以下に説明するように、レポートの規則性（特に集計値や集計フィールドに関しての規則性）を活用して、レポートフォーマットの認識を行う。
【００４４】
　業務システムが作成するレポートは、一組の処理ロジックの繰り返しからなることが多い。このため、同じ業務システムで作成されたレポートは、データ量や、計算、表示されるデータの値は異なるものの、一般に同じフォーマットで出力される。
【００４５】
　数値データからなるレポートでは、いくつかのコントロールブレークキー（またはそれに対応するコントロール文字）が定義され、その定義されたコントロールブレークキーを使用してデータセットの計算が行われる。計算結果は、集計値としてレポートに表示される。レポートが数値以外の値を含む場合も同様に、１つあるいは複数の対象データについて、何らかの基準に基づいて平均値や集計値が計算される。例えば、毎日の天気を「晴れ」、「曇り」、「雨」のように分類する天気の報告であれば、週（または月）の天気が、何らかの定義された基準に基づいて計算される。この場合の基準としては、例えば、週の天気を、その週の各日の天気のうち最も多かった天気に分類する方法が考えられる。この場合、その週のうち４日間が「晴れ」であれば、その週の天気は「晴れ」となる。
【００４６】
　一般に、レポートは、複数のコントロールブレークキーを含んでおり、これらは階層的に定義されている。このため、業務システムが作成したレポートは、所定の規則性を有しており、日、月（または他の期間）ごとのデータが、同じレポートフォーマットで繰り返し出力されたものとなる。以下、この規則性を識別し、利用するための重要な要素について説明する。
【００４７】
　図２は、レポートのフォーマットの例を示す図である。以下、このレポートを識別の対象として説明する。このレポートは、複数の明細行から成り、各明細行は、それぞれ１つ以上のデータフィールドを含んでいる。図２（ａ）は、２種類の製品Ａ−ＡとＡ−Ｓについての第一課の販売実績レポートのフォーマットであり、各製品に対応する２つの明細行が示されている。各明細行２０１は、それぞれ４月から９月までの６ヶ月の販売状況を示す複数のデータフィールド２０３を含む。また、各明細行２０１には、その明細行に含まれるデータフィールドの値を横方向に集計した値を入れる横集計データ項目２０２も含まれている。例えば、図２（ａ）の第一課では、製品Ａ−Ａの明細行のデータフィールドの横方向の集計値が横集計データ項目に示され、製品Ａ−Ｓの明細行のデータフィールドの横方向の集計値が横集計データ項目に示されている。このフォーマットでは、横集計データ項目２０２を識別するための専用のコントロールブレークキー（または文字）は必要ない。横集計データ項目２０２は、明細行２０１内の横集計データ項目２０２の位置などにしたがって、容易に識別することができるからである。例えば、明細行２０１が８０または１３３の列あるいは文字ポジションを有する場合、明細行内の列の位置（例えば、列７１−８０）を、横集計データ項目２０２の識別に利用することができる。
【００４８】
　上述のような横集計データ項目２０２に加え、レポートには、通常、図２（ｂ）に示すような１つ以上の縦集計データ項目２０４が含まれている。縦集計データ項目２０４には、階層的に定義されたグループのうち第１階層グループ（本実施の形態では、「課」を第１階層グループとする。）に属する明細行２０１の該当データフィールドの値を集計した値が入る。例えば、一課の４月の縦集計データ項目２０４の値は、第１階層グループ（一課）に属する各明細行２０１の４月のデータフィールドの値、すなわち１０００と８００を合計した値となる。同様に、５月の縦集計データ項目２０４の値は、１２００と９００を合計した２１００となるが、これは一課の明細行の５月のデータフィールドの値を集計したものである。このように、一課の一月の縦集計データ項目２０４には、一課の各明細行２０１の該当する月のデータフィールド２０３の値を集計した値（例えば、４月であれば１８００）が入る。図２（ｂ）に示すように、一課は製品Ａ−ＡおよびＡ−Ｓに対応する明細行２０１を含む。また、二課（別の第１階層グループ）は、３つの製品Ａ−Ａ、Ａ−ＳおよびＡ−Ｄの明細行２０１を含む。したがって、二課の場合には、縦集計データ項目２０４は二課の３行の明細行２０１の該当する月のデータフィールド２０３（４月から９月）が入る。その結果、二課の縦集計データ項目２０４は、４月が２０００，５月が３５５０，６月が２２００のようになる。
【００４９】
　また、レポートのフォーマットは、図２（ｂ）に示すように、各縦集計データ項目２０４が横方向に配置されたフォーマットであることが多い。多くの場合、各縦集計データ項目２０４は、第１階層グループそれぞれの最後に配置されている。また、このようなレポートでは、通常、各明細行２０１の各データフィールド２０３を識別するためのヘッダ行２０４Ｈが配置されている。一般には、第１階層グループの一列目の明細行２０１の前にヘッダ行が配置されることが多い。
【００５０】
　図２（ｂ）に示す例のように、縦集計データ項目２０４の値を得る際に集計の対象となる明細行の数は、課ごとに異なる場合がある。例えば、一課では、縦集計データ項目２０４には、２つの明細行２０１のデータフィールド値を集計した値が入るが、二課では、集計の対象となる明細行２０１は３つある。したがって、レポートには、集計行２０４Ｔの各縦集計データ項目２０４の位置を識別するためのコントロールブレークキー（または文字、単語その他適宜明示されたもの）がなければならない。例えば、図２（ｂ）の例では、「課合計」をコントロールブレークキーとして使用している。これにより、第１階層グループである「一課」の、（集計行２０４Ｔの）縦集計データ項目２０４の位置を識別できる。このようなコントロールブレークキーは、図２（ｂ）に示す例では、第１階層グループをまとめるものとして、明細行２０１の並びの最後にある（縦集計データ項目２０４を含む）集計行２０４Ｔに配置されている。
【００５１】
　また、図２（ｂ）の例は、上述のように１つのグループについてフィールド値を集計して縦集計データ項目２０４（および対応する集計行２０４Ｔ）を示すのみならず、グループを階層化して、１つまたは複数の第１階層グループの全明細行２０１をまとめたものを第２階層グループとした例である。第２階層グループの縦集計データ項目２０５には、各第１階層グループのすべてのデータフィールド２０３の値を縦方向に集計した値が入る。以上のようにして、第２階層グループが形成されている。この例では、第２階層グループのすべての縦集計データ２０５は、１つの集計行２０５Ｔに配置されているが、複数行にわたって配置されている場合もある。図２（ｂ）の例では、４月の第２階層グループの縦集計データ項目２０５の値は３８００であるが、これは、第１階層グループの４月の縦集計データ項目２０４の値である１８００と２０００（それぞれ一課および二課に対応する）を合計した値である。以下、グループの階層レベルについて、図４を参照して、詳細に説明する。
【００５２】
　図２（ｂ）および図４に示すように、第１階層グループである「課」をまとめて集計したものが、第２階層グループである「部」の縦集計データ項目２０５となる。図２（ｂ）の例では、２つの第１階層グループ「一課」と「二課」それぞれの縦集計行２０４Ｔの値が集計されたものが、第２のグループ縦集計項目２０５（「部合計」）となっている。また、図４に示すように、第１階層グループ４０１の数は可変であり、その数が第２階層グループ４０２の形成に関係する。このため、第２階層グループの位置を識別するためのコントロールブレークキー（または文字）が必要となる。例えば、「部」あるいは「部合計」のラベルを、第２階層グループの縦集計データ項目２０５の位置を識別するのに利用することができる。
【００５３】
　本発明の方法では、上述のようにレポートの規則性を識別した後、ユーザからの入力を受け付ける処理を行う。図１のステップ１２０では、レポートに対するユーザからの入力を受け付けて、ユーザがレポート内のいくつかのフィールドを選択指示できるようにする。例えば、レポートをコンピュータ画面に表示して、ユーザに、表示されたレポートの中のいくつかのフィールドを画面上で選択させるなどの方法が考えられる。例えば、マウスなどのポインティングデバイスを用いてフィールドをクリックすることにより、コンピュータに対して選択フィールドを指示できるようにする。ユーザが選択フィールドをコンピュータに指示することができれば、タッチパネル入力や、音声入力、ワイヤレス入力など他の指示手段でもよいことは言うまでもない。また、１人または複数のユーザが選択したフィールドの情報をコンピュータファイルに保存しておき、そのファイルを参照することによってユーザの指示内容を判断する方法なども考えられる。
【００５４】
　また、ユーザが選択できるフィールドを制限して、例えば集計フィールドのみ選択できるようにしてもよい。さらに、セキュリティ上の理由や、その他の要求に応じて、各ユーザが画面表示できるフィールドや、選択できるフィールドを制限してもよい。例えば、表示されたレポートの、ユーザが選択できるフィールドを、色付けしたり、ハイライト表示したりする手法が考えられる。
【００５５】
　規則性が識別されたレポートに対し、ユーザからのフィールド選択指示が入力されたら、次に、図１のステップ１３０において、ユーザが選択したフィールドに対応付けられている規則にしたがって、選択されたフィールドの値に基づくグラフを生成する。
【００５６】
　以下、グラフの生成について説明する。本発明は、前述のレポートの規則性を用いて、非常に簡単な操作で、レポートから様々なグラフを生成する。
【００５７】
　例えば、図２（ｂ）の例で、ユーザにより、縦集計データ項目２０４の集計行２０４Ｔに表示された合計値（図２（ｂ）の２１９または２２０）のうち、一課の合計値２１９が指定された場合には、所定の規則に基づいて一課の６箇月の内訳を月ごとにグラフ表示する。グラフを表示する際には、色付け、模様（ハッチング）、影づけ、その他適当な方法によって特徴別にグラフを区分し、グラフの隣に凡例として、データ項目と色、影づけなどの対応付けを示してもよい。換言すれば、グラフは、ユーザが選択した値を求めるために用いられた各データ項目の値、すなわち集計前の値をグラフの要素として、あるいは区分けされた特徴として表示したものである。例えば、「一課」の６箇月の合計値２１９がユーザによって指定された場合、所定の規則に従い、各月の集計値“１８００”、“２１００”、“２０００”、“２７００”、“１６５０”、および“４１００”がグラフ表示される。同様に、「一課」の４月の縦集計値がユーザによって指定された場合には、その集計値を計算するのに用いられた値“１０００”および“８００”がグラフ表示される。
【００５８】
　表示するグラフは、棒グラフや円グラフなど、グラフ化したいデータをグラフの表示コンポーネントや特徴として表現することができるものであれば、どのようなタイプのグラフでもよい。例えば、複数のデータの大きさを比較したければ棒グラフが適しており、各データの全体に対する割合を見たければ円グラフが適している。このように、グラフ化されるデータは、棒グラフの棒や円グラフの区分のような表示コンポーネントや特徴として表示される。このような表示コンポーネントや特徴は、表示するデータによって、色を変えたり、他の表示あるいはマルチメディア表現（例えば点滅表示など）により表したりしてもよい（例えば、ある閾値以上あるいは以下の全データを同じ色にしたり、点滅表示させることが考えられる）。なお、本発明によりレポートを正規化して所定の規則によりグラフを生成する場合に、グラフ化されたデータを識別するのに、上記例以外にも様々な手法が考えられるということは、当業者にとって明らかである。
【００５９】
　また、図２（ｂ）の例で、ユーザにより、一課の８月の売上データの縦集計データ項目２０４が指定された場合には、他の規則にしたがって、一課の８月の売上を製品別内訳グラフとして表示する。すなわち“７５０”および“９００”をデータ項目としたグラフを生成、表示する。同様に、ユーザにより、二課の７月の縦集計データ項目２０４が指定された場合には、二課の７月の売上を製品別内訳グラフとして表示する。すなわち、“１３００”、“１２００”および“１５０”をデータ項目としたグラフを表示する。
【００６０】
　さらに、ユーザにより、第２階層グループである「部」の縦集計データ項目２０５、例えば６月の部集計である縦集計データ項目が指定された場合には、６月の各課（第１階層グループ）の内訳グラフ、すなわち“２０００”（一課）および“２２００”（二課）をデータ項目とするグラフを表示する。
【００６１】
　ユーザにより、「部集計」行２０５Ｔと「横集計」列２０２が交差するところにある集計データ項目２０６が指定された場合には、部の総集計の月別内訳と課別内訳の２つの内訳を２つのグラフとして表示する。あるいは、ユーザが、２つのグラフの中から表示するグラフを指定できるようにしてもよい。同様に、集計行と集計列が交差するところにあるデータ項目が指定された場合には、２種類のグラフのうち一方または両方のグラフを生成する。図２（ｂ）の例でいえば、集計データ項目２０６が選択された場合には、次のグラフのうち一方または両方が、所定の規則にしたがって表示される。１つ目のグラフは、各月ごとの縦集計データ項目２０５の値（４月“３８００”、５月“５６５０”、６月“４２００”等）をグラフ化したものであり、２つ目のグラフは、横集計列２０２の横集計項目２１９、２２０の値（一課の“１４，３５０”および二課の“１６，７００”）をグラフ化したものである。
【００６２】
　以上に説明したように、本発明の方法では、ユーザによりレポート中のあるデータ項目が指定された場合に、予め定義された規則に基づいてそのレポートのデータをグラフ化する。この際、ユーザが、グラフの種類を選択できるようにしてもよい。すなわち、ユーザが、参照中のレポートのデータをグラフ化するか、一連の（例えば、対象とする時期が異なる）複数のレポートからデータを抽出して時系列グラフを生成するか、いずれかを選択できるようにしてもよい。
【００６３】
　以下に説明する実施の形態は、複数のレポートが時系列に生成、保存される場合（定期的または不定期に似たようなレポートが生成、保存される場合）に、それらのレポートに含まれるデータから時系列グラフを生成する形態である。時系列グラフの生成に用いるデータは、グラフ自動生成処理専用に保管されているか、あるいは専用でないまでもアクセス可能な状態で保管されている一連のレポートから抽出する。例えば、月次レポートを受けているユーザは、自動的に（例えば1回マウスクリックするだけで）、所定の期間、例えばある会計年度またはある半期の、売上高の推移を示すグラフや、その期間の売上高と前年・前期の売上高とを対比するグラフを生成することができる。
【００６４】
　前述したように、ユーザはいずれかの集計フィールドを指定して、参照中のレポートから内訳グラフを生成するか、あるいは過去の選択可能な期間内に受けたレポートのデータから時系列グラフを生成することができる。ユーザにグラフを選択させる方法としては、例えば、集計フィールドを指定するとポップアップメニューが開いて、参照中のレポートではなく時系列に生成された一連のレポートからグラフを生成するよう要求でき、さらにグラフ化の対象とするレポートの期間を指定できるようにする方法などが考えられる。あるいは、マウスを普通に左クリックすれば参照中のレポートについてのグラフが生成され、マウスを右クリックした場合には時系列グラフが生成されるようにしてもよい。この他、生成するグラフの種類の切換には、様々な制御メカニズムを採用できることは、当業者の知るところである。
【００６５】
　ここで、本発明の方法の特徴であるレポートの正規化について、詳細に説明する。レポートを作成するためのソースデータは、通常業務システムが処理するデータファイルに保存されている。データファイルは、複数のデータレコードからなり、レポートは、これらのデータレコードのグループを、ユーザに読みやすく、理解しやすいフォーマットに整えたものである。
【００６６】
　業務システムのプログラムは、通常、１つのデータレコードがレポートの１明細行となるように、レポートのフォーマットを整える。しかし、データ項目数やデータ長が既定のサイズを越える場合には、１つのデータレコードを複数の明細行とすることもある。また、財務報告などに見られるように、データレコードの項目ごとに行を割り当て、１つのデータレコードを、１明細行ではなく、複数の明細行に表示することもある。このように、レポートのフォーマットは種々存在する（以下、フォーマットについて詳細に説明する）。本発明の方法では、異なるフォーマットのレポートでも、データレコードが同じであれば同じように処理できるように、レポートを正規化する。　　　
【００６７】
　レポートは、例えば図３（ａ）、（ｂ）、（ｃ）に示すように、色々なフォーマットで出力される可能性がある。図３（ａ）に示す第1のフォーマットは、各レコード３１０をレポートの複数の明細行に振り分け、それらの明細行とは別に、ページごとまたは画面ごとに数行のヘッダ３１１を付加するフォーマットである。第１のデータレコード３１０はデータ項目３０１〜３０３からなり、第２のデータレコード３１０はデータ項目３０４〜３０６からなり、以下同様に各データレコードは３つのデータ項目からなる。　　　
【００６８】
　図３（ｂ）に示す第２のフォーマットは、１つのデータレコードを複数の明細行に振り分け、その間にヘッダを混在させるフォーマットである。第1のデータレコード３１０はデータ項目３０１と３０２からなり、第２のレコード３１０はデータ項目３０３と３０４からなり、以下同様に各データレコードは２つのデータ項目からなる。　　　
【００６９】
　図３（ｃ）に示す第３のフォーマットは、１つのデータレコード３１０を構成するデータ項目３０１〜３０９を、各データ項目がレポートの1明細行となるように、縦に並べたフォーマットである。　　　
【００７０】
　レポートの正規化とは、データレコード（または明細行）に含まれるデータ項目を正規化規則に基づいて論理的に再配置することによって、例示した上記３種類のフォーマットのレコード配置がすべて同じになるようにして、３種類のフォーマットを同一の方法で処理できるようにすることをいう。具体的には、例えば、データレコードを、各データレコードを横方向の明細行（データレコードのすべてのデータ項目を含む明細行）として配置した論理的なテーブルフォーマットに正規化し、ヘッダ行と、明細行のデータ項目の値の集計値とを追加する。　　　
【００７１】
　１つのレコードが複数の明細行に分散して振り分けられた第1のフォーマット（図３（ａ））のレポートを正規化した場合、図３（ｄ）に示すように、１つのデータレコードを構成するデータ項目３０１〜３０３は、横方向に配列される。同様に、それぞれ１つのデータレコードを構成するデータ項目３０４〜３０６および３０７〜３０９も横方向に配列される。　　　
【００７２】
　また、１つのデータレコードを複数の明細行に振り分け、その間にヘッダを混在させた第２のフォーマット（図３（ｂ））のレポートを正規化した場合、１つのデータレコードを構成するデータ項目３０１〜３０２および３０３〜３０４は、それぞれ横方向に配列される。同様に、第３のフォーマットのレポートを正規化した場合には、１つのデータレコードを構成するデータ項目３０１〜３０９（図３（ｃ）に示されているレコード３１０から得られる）は、（図３（ｄ）に示すように）１つのデータレコードとして横方向に配列される。　　　
【００７３】
　本発明のもう１つの特徴は、レポートのフォーマットが階層的である場合にその階層構造を利用することである。本発明の方法では、図４のような階層構造を利用し、その階層構造と結び付いた規則を用いて、前述のようにグラフを自動生成する。すなわち、本発明の方法では、最小単位となるグループ（第1階層グループ）をまとめた上位のグループを第２階層グループとし、さらにその上位のグループを第３階層グループとするような場合に、各階層グループをそれぞれ別々に認識する。　　　
【００７４】
　図４に示すように、第１階層グループ４０１はいくつかの明細行２０１と、縦集計データ項目２０４を含む行を含む。この第１階層グループ４０１が１つ以上集まって形成された第２階層グループ４０２は、縦集計データ項目２０５を含む少なくとも１行の縦集計行を備えている。縦集計データ項目２０５には、その第２階層グループに属する第１階層グループ４０１の縦集計データ項目２０４を合計した値が入る。この第２階層グループ４０２がさらに１つ以上集まって形成された第３階層グループ４０３は、縦総集計データ項目２０７を含む集計行を備えている。縦総集計データ項目２０７には、その第３階層グループに属する第２階層グループ４０２の縦集計データ項目２０５を合計した値が入る。このように、本発明では、レポートを正規化し、レポートの階層構造を識別し、その階層構造を利用する。階層構造に特定の規則を関連付けておき、ユーザが各階層グループのデータ項目を選択した際に、階層に応じたグラフを生成する。　　　
【００７５】
　以上、本発明によるグラフの自動生成方法について説明した。以下、上記方法に基づいて処理を行う本発明のプログラムおよびシステムの好ましい実施の形態について、図５から１０までを参照しながら説明する。図５は、本実施の形態のグラフの自動生成プログラムの処理概略を示すフローチャートである。本実施の形態では、このプログラムはパソコン上で動作する。以下の説明において、「表示」とは、パソコンの画面への表示を意味する。　　　　　　
【００７６】
　このグラフ自動生成プログラムは、グラフ生成処理を容易にするために、まず、ステップ５０５において業務レポートの構造を認識する。コンピュータ出力される業務レポートは、通常何らかの構造を有しているので、本実施の形態のプログラムでは、それらの構造を、以下に説明するような簡単な規則に基づいて認識する。　　　
【００７７】
１.　レポート構造の認識
１．１　レベル１のデータグループ
　図４を参照して説明したように、レポートはマルチレベル層の階層データグループの組合せで構成される場合が多い。この場合、一つのデータグループ４０１（図４または図８参照）は、複数の明細行２０１と複数のデータ項目２０３、および明細行２１０のそれぞれの数値を縦集計する縦集計項目２０４からなる一つの集計行２０４Ｔの組合せより成る。最下層の階層レベルで定義されたこのデータグループを、「レベル１データグループ」とする。　　　
【００７８】
（１）明細行
　複数の明細データ項目２０３が水平に配列された「行」を、「明細行」２０１とする。　　　
【００７９】
（２）テーブル
　複数の明細行２０１よりなり、その各々が水平に配列された文字列よりなるデータ項目２０３を有する場合には、これを「テーブル」とする。すなわち、各テーブルに含まれる明細行２０１は、１つの場合もあるし、複数の場合もある。　　　
【００８０】
（３）集計行
　「テーブル」の末尾の行は、テーブル内の列位置が同じデータ項目２０４の集計値を示す行２０４Ｔとする。例えば、図６のレポートの場合、各明細行２０１は各製品のデータから成り、テーブル末尾に一課の集計値を示す行２０４Ｔがある。この行を「レベル１集計行」２０４Ｔと称する。　　　
【００８１】
（４）集計項目
　明細行内には、その行の数値データの集計を示すデータ項目が設けられている場合がある。これを横集計項目２０２とする。横集計項目２０２は、１つの明細行２０１内に１つとは限らず、複数ある場合もある。　　　
【００８２】
（５）「テーブル」、「行」および「データ項目」の識別子
　「テーブル」には、テーブルのタイトルを示す文字列がついていることがある。また、テーブルには、テーブル内の各行の名称を示す文字列や、テーブルの前またはテーブルの明細行に示される各データ項目の名称を示す他の文字列が含まれている。（例えば、明細行２０３の各データ項目２０１を説明したヘッダ行２０４Ｈ）　　　
【００８３】
（６）レベル１データグループ
　タイトル、行の名称、データ項目の名称を含むテーブルの最小単位を、「レベル１データグループ」とする。　　　
【００８４】
（７）Ｖ集計項目
　集計行２０４Ｔにある数値データ項目を「Ｖ集計項目」２０４（または縦データ項目集計）とする。複数明細行２０１のデータ項目２０３の値を縦方向に集計した値を表示する項目である。複数の「Ｖ集計項目２０４」が１行の集計行２０４Ｔに並ぶ場合がある。　　　
【００８５】
（８）Ｈ集計項目
　上記（４）に定義した明細行２０１内のデータ項目２０３の集計値を表す数値データ項目、すなわち明細行の集計項目を「Ｈ集計項目」２０２（または横データ項目集計）とする。複数の「Ｈ集計項目」２０２が一つの行に並ぶこともある（図６では、１つの明細行２０１につき１つの場合を示している）。　　　
【００８６】
（９）Ｘ集計項目
　集計行２０４Ｔ、すなわち集計行のデータ項目をさらに集計した値を表す数値データ項目２０６を、「Ｘ集計項目」２０６（または、横集計および縦集計の集計）とする。すなわち、「Ｘ集計項目」は、Ｖ集計項目２０４であると同時に、Ｈ集計項目２０２でもある。　　　
【００８７】
１．２　レベル２のデータグループ
　次に、図７および図８を参照して説明する。前述したように、レポートは複数の階層状のデータグループ（４０１，４０２，４０３等）を組み合わせた構造となっている。このような構造のデータグループの最下位レベルを「レベル１データグループ」４０１といい、１つ上のレベルのグループを、「レベル２データグループ」４０２とする。　　　
【００８８】
（１）データグループの名称
　上記の「レベル１データグループ」４０１は、レポート中に繰り返し表示されることがある。そのような場合には、通常、タイトルまたは「レベル１データグループ」４０１Ｈの名称を示す文字列が、複数のテーブルの前の行に、または「レベル１データグループ」４０１の各々の行に表示されている。　　　
【００８９】
（２）レベル２集計行
　繰り返し表示される「レベル１データグループ」４０１の、各々のレベル１集計行２０４Ｔの集計値を示す行２０５Ｔは、その繰り返される「レベル１データグループ」の最後に表示されることが多い。例えば、各月のデータの集計値である課テーブルの集計行は、部単位で表示される。この行を「レベル２集計行」２０５Ｔとする。　　　
【００９０】
（３）レベル２データグループ
　上記複数の「レベル１データグループ」４０１、タイトルを示す行４０２Ｈ、および「レベル２集計行」２０５Ｔと呼ばれる集計行より成るグループを「レベル２データグループ」４０２とする。　　　
【００９１】
（４）Ｖ集計項目とＸ集計項目
「レベル２集計行」２０５Ｔの集計値を表す数値データ項目２０６を、「Ｘ集計項目」とする。Ｘ集計項目は、前述したレベル１の場合の定義と同様、「Ｖ集計項目」２０５であると同時に「Ｈ集計項目」２０２でもある。　　　
【００９２】
１．３　　データグループの階層
（１）レベル３集計行
　図８に示すように、レポートでは、「レベル２データグループ」４０２が、さらに繰り返し表示される場合がある。このような場合には、複数の「レベル２データグループ」の「レベル２集計行」２０５Ｔから求められる集計値を表す行を、「レベル３集計行」２０７Ｔとする。　　　
【００９３】
（２）レベル３データグループの定義
　複数の「レベル２データグループ」４０２と「レベル３集計行」２０７Ｔのグループを合わせたものを、「レベル３データグループ」４０３とする。　　　
【００９４】
（３）データグループの階層
　本発明のプログラムは、上記のような規則に基づいて、階層構造のデータグループを認識して、レポートを正規化する。すなわち、各階層レベルごとに、集計値を表す行があるものとし、それらの行を「レベル３集計行」２０７Ｔ、「レベル４集計行」（図示せず）、以下階層順に、レベルＮ集計行として認識する。各レベルに対する集計行を構成する一群の行は、階層順にそれぞれ「レベル３データ・グループ」、「レベル４データ・グループ」などとする。　　　
【００９５】
１．３．１　レポートの各レベルの集計行の数値データは、次のような値となる。
（１）「レベル１集計行」２０４Ｔは、同じ「レベル１データグループ」４０１の「明細行」２０１の数値データの集計値を表す。　　　
【００９６】
（２）「レベル２集計行」２０５Ｔは、同じ「レベル２データグループ」４０２の「レベル１集計行」２０４Ｔの数値データの集計値を表す。　　　
【００９７】
（３）「レベル３集計行」２０７Ｔは、同じ「レベル３データグループ」４０３の「レベル２集計行」２０５Ｔの数値の集計値を表す。　　　
【００９８】
（４）レベル３以降の集計行は、レベル２データグループ４０２とレベル３データグループ４０３について説明したのと同様に、１つ下のレベルのグループの集計行の数値データの集計値を表す。　　　
【００９９】
　以上のようにレポートの構造を認識した後、本発明のプログラムは、このレポートを正規化する。レポートを正規化すれば、ステップ５１０（図５参照）において、グラフ生成規則を使用して、ユーザがレポートを構成するある要素（例えば、データ集計項目）を選択した場合に、その要素に対応づけられたグラフ生成規則に基づいて、特定のグラフを自動的に生成する。ここで、グラフ生成規則は、レポートを構成する要素を（特定のデータ項目を用いて）特定のグラフに関連付ける規則である。以下、レポートの正規化の処理、すなわちレポートから正規化レポートの構成要素を抽出する処理について説明する。　　　
【０１００】
２．　レポートの正規化
２．１「集計行」の抽出
　集計値を表示するデータ項目を含む「行」の識別条件を定め、その特定の集計行に「集計行名」をつける。　　　
【０１０１】
（ａ）「行」は、例えば、その行の所定の列に所定の文字があるか否かをもって識別する。　　　
【０１０２】
（ｂ）「集計行名」は、以下の３方法のいずれかにより決定する。
　タイプ１：特定の集計行の所定の列位置にある文字列を、「集計行名」とする。
　タイプ２：集計行以外にある文字列を「集計行名」とする。この場合、その集計行から、１つ前の同じデータグループの集計行までの間にある行の、所定の列位置に示された文字列を集計行名とする。
　タイプ３：固定の文字列を「集計行名」とする。このタイプは、一つのレポートの中で階層グループごとに集計行が１つあればよい場合に適している。　　　
【０１０３】
　以下に、集計行の識別条件と集計行名の決め方の具体例を示す。
レベル１集計行：
　識別条件：列２１で、文字列「課集計」を含む行
　集計行名：タイプ２（最初の列が「空白」でない最初の行の、列１１から列１６までの文字列）
レベル２集計行：
　識別条件：列２１で、文字列「部集計」を含む行
　集計行名：タイプ２（最初の列が「空白」でない最初の行の、列１から列２０までの文字列）
レベル３集計行：
　識別条件：列１で、文字列「全社集計」を含む行
　集計行名：タイプ１（列１１から列２５までの文字列）　　　
【０１０４】
２．２「明細行」の抽出
　数値データ項目（集計行の集計値も含む）からなる「明細行」の識別条件を定め、各明細行に「明細行名」をつける。　　　
【０１０５】
（ａ）識別条件：「明細行」は、以下の２方法のうち、いずれかにより識別する。
　タイプ１：データ項目と同じ行の所定の列に所定の文字列がある場合に、その文字列が存在する行を「明細行」として識別する。
　タイプ２：データ項目が存在する行とは異なる行の所定の列に所定の文字列がある場合に、そのデータ項目が存在する行を「明細行」として識別する。（例えば、所定の列に所定の文字列が存在する行より何列か上または下の行を「明細行」とする。）
（ｂ）（ａ）のようにして所定の列中の所定の文字列を検出し、その文字列と同じ行にある特定の列位置の文字列を「明細行名」とする。
（ｃ）明細行の決め方は、レポートごとに統一する。　　　
【０１０６】
　以下に、明細行の識別条件と明細行名の決め方の具体例を示す。
（例１）
　所定の文字が所定の列に含まれている行を「明細行」とし、ある行の所定の位置に表示されている文字列を「明細行名」とする例：
「明細行」識別条件：　文字「Ａ」が列２１に含まれている行
「明細行名」：列２１から列３０に表示されている文字列
（例２）
　所定の列に所定の文字を含む行から数えてｎ番目の行（例えば、すぐ下の行や２つ下の行）を「明細行」とし、その所定の列に所定の文字が存在する行の、ある位置に表示されている文字列を「明細行名」とする例：
「明細行」識別条件：文字Ｘが列２１に含まれている行の、次の行
「明細行名」：列２１から列３０に表示されている文字列　　　
【０１０７】
２．３　「Ｖ集計項目」の抽出：（「集計行」ごと）
（ａ）集計行の所定の列にある項目を、「Ｖ集計項目」とする。
（ｂ）１つの行に、複数の「Ｖ集計項目」がある場合もある。
（ｃ）「Ｖ集計項目」の抽出方法は、レポート中のあらゆるレベルの集計行について共通であるため、レポートごとに統一する。
（ｄ）「Ｖ集計項目」が示す集計値は、集計の対象となる「明細行」の、その「Ｖ集計項目」と同じ列位置にある数値データを集計した値である。　　　
【０１０８】
以下は、「Ｖ集計項目」の抽出の例を示す。
Ｖ集計項目１：列３１から列４０まで
Ｖ集計項目２：列４１から列５０まで
Ｖ集計項目３：列５１から列６０まで　　　
【０１０９】
２．４　「Ｈ集計項目」の抽出
　「Ｈ集計項目」の抽出方法は、「明細行」と「集計行」の両方に、すなわちＨ集計データ項目を含むすべての行に共通である。１つの行に、複数の「Ｈ集計項目」がある場合もある。
（ａ）１つの「明細行」内にある数値データの集計値を示す数値データ項目の、列位置によって抽出する。
（例）「Ｈ集計項目１」：　列６１から列７０まで
（ｂ）「明細行」の、集計値を構成する数値データ項目の列位置を指定し、データ項目ごとに「データ項目名」となる文字列を抽出する。
（例）３つのデータ項目の集計値を示す「Ｈ集計項目１」の場合
データ１：列３１から列４０までのデータ。「データ項目名」：第２行の列３１から列４０までの文字列。
データ２：列４１から列５０までのデータ。「データ項目名」：第２行の列４１から列５０までの文字列。
データ３：列５１から列６０までのデータ。「データ項目名」：第２行の列５１から列６０までの文字列。　　　
【０１１０】
２．５　「Ｘ集計項目」の抽出
　「Ｘ集計項目」は、集計行内の「Ｈ集計項目」と同じ列位置にあるデータ項目を「Ｘ集計項目」とみなせばよいので、「Ｖ集計項目」と同様の識別条件を用いて識別することができる。
（例）「Ｘ集計項目」：列６１から列７０まで（「Ｈ集計項目」と同じ列位置）　　　
【０１１１】
　以上に説明したように、本発明のプログラムは、ステップ５１０および５１５（図５参照）で、もととなるレポートから正規化レポートの構成要素となるデータを抽出しているが、さらにその後、その抽出した要素にレポートベースのグラフ生成規則を関連付ける処理を行う。これにより、ユーザが、（例えばコンピュータスクリーンに）表示されたレポート上で、そのレポートを構成する要素の１つを選択（あるいは何らかの方法で指定）した場合には、選択された要素と関連付けられたレポートベースのグラフ生成規則に基づいて、グラフが自動生成されるようにする。以下、このレポートベースのグラフ生成規則について説明する。　　　
【０１１２】
３．　レポートベースのグラフ生成規則
３．１　上述のように、レポートを構成する要素データの抽出を、レポート中のユーザがグラフ表示することを望んでいるすべてのデータに関して行った場合、そのレポート中の集計値を示すすべての「Ｖ集計項目」と「Ｈ集計項目」用に、次のようなデータが抽出される。　　　
【０１１３】
（Ｉ）「Ｖ集計項目」に関連するデータ
　レポート中の「Ｖ集計項目」の表示位置（行番号、列番号および列数）、「集計行名」および「Ｖ集計項目」の集計値を構成するデータが含まれる「明細行」または「集計行」の行番号。　　　
【０１１４】
（II）「Ｈ集計項目」に関連するデータ
　レポート中の「Ｈ集計項目」の表示位置（行番号）。（表示される列位置や列数、対応する集計項目を構成するデータの列位置や列数は、レポート中のすべてのＨ集計項目に共通である）。　　　
【０１１５】
３．２　グラフ化対象レポートのコンピュータディスプレイへの表示
　「Ｖ集計項目」、「Ｈ集計項目」および「Ｘ集計項目」は、ユーザがマウスクリックで簡単に指定できるような表示にする。例えば、これらのデータ項目を、それぞれ異なる色でカラー表示（あるいはハイライト表示）するなどして、これらの項目を選択すればグラフが生成されるということが、ユーザに判るようにすることが好ましい。　　　
【０１１６】
　「Ｈ集計項目」と同じ列位置に表示される「Ｖ集計項目」は、「Ｘ集計項目」として表示する。　　　
【０１１７】
３．３　ユーザは、グラフ表示したい集計項目を、マウスクリック（または当業者なら認識しているであろうその他の指示手段）によって指定することができる。　　　
【０１１８】
３．４　「Ｖ集計項目」が指定された場合、本実施の形態のプログラムは、「Ｖ集計項目」の集計値を構成する明細行や集計行のデータ項目と、明細行名または集計行名を抽出する。この際、ユーザにより指定された「Ｖ集計項目」とプログラムが抽出したコンポーネントデータ項目には、マークをつけたり、カラーで（または色の変化やハイライトによって）表示したりして、ユーザが他の項目と区別できるようにすることが好ましい。　　　
【０１１９】
３．５　「Ｈ集計項目」が指定された場合、本実施の形態のプログラムは、「Ｈ集計項目」の集計値を構成する明細行や集計行のデータ項目と、データ項目名を抽出する。この際、ユーザにより指定された「Ｈ集計項目」とプログラムが抽出したコンポーネントデータ項目には、ユーザが他の項目と容易に区別できるように、マークや色をつけて表示することが好ましい。　　　
【０１２０】
３．６　「Ｘ集計項目」は「Ｖ集計項目」でもあり「Ｈ集計項目」でもあるため、「Ｘ集計項目」が指定された場合には、本実施の形態のプログラムは、３．４および３．５において説明したのと同様の方法により、集計行名やデータ項目名と共に各データ項目を抽出する。この際、ユーザにより指定された「Ｘ集計項目」とプログラムが抽出したコンポーネントデータ項目には、ユーザが他の項目と容易に区別できるように、マークや色をつけて表示することが好ましい。　　　
【０１２１】
３．７　３．４から３．６にかけて説明したように、ユーザは、レポートが表示されたウィンドウ（またはこれに相当する他のディスプレイ）上で、「グラフ表示」を指示することができる。ユーザから「グラフ表示」の指示を受けた本実施の形態のプログラムは、３．４から３．６で説明した処理により抽出したデータを用いてグラフを生成する。生成したグラフは、レポートを表示するウィンドウとは別のウィンドウに表示することが好ましい。　　　
【０１２２】
表示するグラフの形式は、予め（表示するデータ項目を決定する所定の規則と共に）定義しておくのがよい。あるいは、ユーザがマウスクリック（または他の指示手段）により「グラフ表示」を指示する際に、オプション指定できるようにしてもよい。　　　
【０１２３】
「Ｘ集計項目」が指定された場合、本実施の形態のプログラムは、「Ｖ集計項目」と「Ｈ集計項目」の両方のグラフを生成し、表示する。但し、「Ｘ集計項目」が指定された際に、「Ｖ集計項目」と「Ｈ集計項目」の一方のみについてグラフを生成するよう、ユーザが指定できるようにする形態も考えられる。　　　
【０１２４】
３．８　また、本実施の形態のプログラムは、ユーザが、グラフが表示されているウィンドウ上でグラフの一部をマウスクリック（または同等の他の指示手段により指定）した場合に、テーブルへの標準リンクや関連付けを利用して、「オリジナルのレポート」や「生成されたグラフに対応するデータ項目のテーブル」を簡単に表示する。このようなコンポーネントデータは、レポートを正規化する段階で抽出しておいて、後の利用形態に合わせて所望の形式のファイルとして保存しておいてもよい。　　　
【０１２５】
　図９および図１０は、正規化レポートの要素データが選択指定された際に、レポートベースのグラフ生成規則に基づいてグラフが生成される画面の一例を示す図である。図９は画面左側、図１０は画面右側に表示される内容を示している。　　　
【０１２６】
（ａ）Ｖ集計項目９０１が指定された場合：
　Ｖ集計項目９０１は、レベル１集計行にあるので、図９の例ではレポートの最初の行からこの集計行の１つ上の行までが集計の対象となる。Ｖ集計項目９０１がマウスクリック（その他類似の手段）で指定されると、本実施の形態のプログラムは、「指定されたＶ集計項目」と同じ列位置にある、次のような明細行のデータ項目を抽出する。
　集計行名：「一課」
　明細行名「ＡＡ」、数値データ項目「１０００」、
　明細行名「ＡＢ」、数値データ項目「２０００」、
　明細行名「ＡＣ」、数値データ項目「３０００」。
　さらに、抽出したデータセットから、図１０に示すように、「一課」の集計の要素を示すグラフ９０１Ｇを生成し、表示する。　　　
【０１２７】
（ｂ）Ｖ集計項目９０２が指定された場合：
　図９に示すように、Ｖ集計項目９０２は、レベル２集計行（横浜営業部の「部集計」行）にあるので、指定されたレベル２集計行と、その１つ前のレベル２集計行との間にあるレベル１集計行が集計の対象となる。本実施の形態のプログラムは、「指定されたＶ集計項目」と同じ列位置にあるレベル１集計行の、次のようなデータ項目を抽出する。
　集計行名：横浜営業部
　集計行名：「一課」、数値データ項目「６０００」
　集計行名：「二課」、数値データ項目「３０００」
　さらに、抽出したデータセットから図１０に示すように、「横浜営業部」の集計の要素を示すグラフ９０２Ｇを生成し、表示する。　　　
【０１２８】
（ｃ）Ｖ集計項目９０３が指定された場合：
　図９に示すように、Ｖ集計項目９０３は、レベル３集計行（全社集計行）にある。この項目が指定された場合、本実施の形態のプログラムは、次のようなデータ項目を抽出する。
　レベル３集計行名：全社合計
　レベル２集計行名：東京営業部、数値データ１２０００
　レベル２集計行名：横浜営業部、数値データ９０００
　レベル２集計行名：大阪営業部、数値データ１２０００
　さらに、抽出したデータセットから全社集計の要素を示すグラフ９０３Ｇを生成して、表示する。　　　
【０１２９】
（ｄ）Ｈ集計項目９０４が指定された場合：
　図９に示すように、Ｈ集計項目９０４は、明細行（製品ＡＡの行）にある。この項目が指定された場合、本実施の形態のプログラムは、その明細行から、次のデータを抽出する。
　明細行名：「ＡＡ」
　データ項目名：「１０月」、数値データ「１０００」
　データ項目名：「１１月」、数値データ「１０００」
　データ項目名：「１２月」、数値データ「１０００」
　さらに、抽出したデータセットから、製品「ＡＡ」の各月の集計値を対比表示するグラフ９０４Ｇを生成し、表示する。　　　
【０１３０】
（ｅ）Ｘ集計項目９０５が指定された場合：
　図９において、Ｘ集計項目９０５が指定された場合には、本実施の形態のプログラムは、Ｖ集計項目が指定された場合の処理と、Ｈ集計項目が指定された場合の処理の２種類の処理を実行する。
　まず、「Ｖ集計項目」に組み込まれた規則に基づいて、レポートから、次のデータを抽出する。
　集計行名：「一課」
　明細行名：「ＡＡ」、数値データ「３０００」
　明細行名：「ＡＢ」、数値データ「６０００」
　明細行名：「ＡＣ」、数値データ「９０００」
　さらに、抽出したデータセットから、一課の製品別売上の要素を示すグラフ９０５ＧＶを生成して、表示する。
　次に、「Ｈ集計項目」に組み込まれた規則に基づいて、レポートから、次のデータを抽出する。
　集計行名：「一課」
　データ項目名：「１０月」、数値データ「６０００」
　データ項目名：「１１月」、数値データ「６０００」
　データ項目名：「１２月」、数値データ「６０００」
　さらに、この抽出したデータセットから、図１０に示すような一課の月別売上状況を示すグラフ９０５ＧＨを生成し、表示する。　　　
【０１３１】
　以上、１つのレポートからグラフを生成する場合について説明した。次に、図１１を参照して、複数のレポート間のデータの推移を示すグラフを生成する場合について説明する。　　　
【０１３２】
　繰り返し発行される複数のレポート（例えば月次レポート）に、常に同じレポートグラフ定義規則が適用される場合、例えば、「集計行名」が同じ行の、同じ列に配置される「Ｖ集計項目」は、同じデータ項目と考えることができる。例えば、毎月発行される売上レポートの場合には、「Ｖ集計項目」は各月次レポートの中の同じ課や部の集計値を示す。　　　
【０１３３】
　例えば月ごとに繰り返し発行され、世代ごとに管理されるレポートの場合、レポートが発行される度に、同じグラフ生成規則を適用すれば、各レポートから、同じ「Ｖ集計項目」の数値データを抽出することができる。　　　
【０１３４】
　本実施の形態では、「Ｖ集計項目」に、レポートグラフ定義規則の１つとして、「複数世代にわたる推移／変動データ処理」を予め対応付けておく。これにより、本実施の形態のプログラムは、関連するレポートから上述のような処理により必要なデータを抽出して、複数のレポートにわたってのデータ推移を表す時系列グラフ、または前期との対比グラフを生成し、新たなウィンドウに表示する。　　　
【０１３５】
　図１１および図１２において、レポート１０１０、１０１２、１０１４は、同じ部の３ヶ月の売上レポートである。ユーザによって、表示されたレポート１０１４のレベル２集計項目１００１がクリック（または別の方法で指示）された場合には、本実施の形態のプログラムは、３ヶ月分のレポート１０１０、１０１２、１０１４から、レベル２集計項目１００１と同等の位置付けにある項目のデータを抽出し、図１２に示すように、同じ部の、最近３ヶ月のレベル２集計項目の値を示すグラフ１００１Ｇを生成する。同様に、図１１において、ユーザにより、レポート１０１４のレベル２集計項目１００２がクリック（または別の方法で指示）された場合には、本実施の形態のプログラムは、３ヶ月の売上レポート１０１０、１０１２、１０１４から、レベル２集計項目１００２と同等の位置付けにある項目のデータを抽出して、図１２に示すグラフ１００２Ｇを生成する。　　　
【０１３６】
　なお、生成された時系列グラフの一部をユーザがマウスクリックした場合には、個別のウィンドウに、そのグラフを構成するデータをテーブル様式で表示するようにしてもよい。そのようなデータは、レポートを正規化する段階で抽出しておいて、後の利用形態に合わせて所望の形式のファイルとして保存しておいてもよい。
【０１３７】
　または、レポートのページが表示されていない状況でグラフのある特性値がクリックされた場合に、グラフを生成するのに用いられたデータ項目が載っている関連レポートのページ、課または部を表示してもよい。また、グラフのある特性値がクリックされた場合に、そのレポートのページ番号のみを表示してもよい。関連レポートのページ、課または部、ページ番号などの表示は、当業者に知られている技術の組合せにより容易に達成することができる。　　　
【０１３８】
　なお、本発明の範囲は、上記実施の形態に限定されるものではなく、当業者であれば、本明細書の開示内容に基づいて、他の様々な類似の形態に容易に到達できることは明らかである。例えば、上記図９〜１２に示した例は、レポートからの要素データの抽出処理とグラフ生成処理とを同一のコンピュータに実行させる例であるが、例えばサーバ上でデータの抽出やグラフ生成規則との対応付けを行い、ＰＤＡ（Personal Digital Assistant）や携帯電話機などでサーバにアクセスして、グラフの生成はＰＤＡ側で実行するなどの形態も考えられる。
【図面の簡単な説明】
【０１３９】
【図１】本発明の方法の概要を示すフローチャート
【図２】レポートの一例を示す図
【図３】レポートの正規化について説明するための図
【図４】グループレベルの階層について説明するための図
【図５】本発明のプログラムの処理概要を示すフローチャート
【図６】レポートの一例を示す図
【図７】レポートの他の例を示す図
【図８】レポートの階層構造について説明するための図
【図９】レポートの表示画面の例を示す図
【図１０】生成され、表示されるグラフの例を示す図
【図１１】複数のレポートが表示される画面の例を示す図
【図１２】時系列グラフの例を示す図
【図１】
2004118867.tif 000003
【図２】
2004118867.tif 000004
【図３】
2004118867.tif 000005
【図４】
2004118867.tif 000006
【図５】
2004118867.tif 000007
【図６】
2004118867.tif 000008
【図７】
2004118867.tif 000009
【図８】
2004118867.tif 000010
【図９】
2004118867.tif 000011
【図１０】
2004118867.tif 000012
【図１１】
2004118867.tif 000013
【図１２】
2004118867.tif 000014