(57)【要約】【課題】  情報の提供をより正確に、効率良くユーザのニーズに合わせるシステムおよび方法を含む動的なレポーティング製品を提供する。【解決手段】  複数のレポートパラメータの順序付けられた組がレポートの定義で宣言され、次いでこのパラメータ定義を使用してユーザに対するプロンプト表示およびレポートの実行が駆動される。パラメータ値は一連の順序で集められるので、１つのパラメータについてユーザが取り出し、指定した値を使用して、その後のパラメータの許容値またはデフォルト値の組が生成される。パラメータはユーザに動的に提示される。すべてのパラメータの値が取り出され、または指定された後、レポートサーバーによってレポートが生成される。【選択図】  図４ 
2004246897.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）複数のパラメータの順序付けられた複数の組を有するレポート定義を受信するステップと、
（ｂ）前記順序付けられた複数の組のうちの１つの第１の組の複数のパラメータについて複数の値を受信するステップと、
（ｃ）前記第１の組のパラメータについて受信した複数の値に応答して、複数のプロンプトを生成し、その後の１組の複数のパラメータについての複数の値を要求するステップであって、そこでは前記複数のプロンプトはその後の複数のパラメータについての１組の複数の許容値を含むステップと、
（ｄ）複数のパラメータの組ごとにすべてのパラメータ値が指定されるまでステップ（ａ）から（ｃ）を繰り返すステップと、
（ｅ）前記レポート定義および前記受信した値に基づいてレポートを実行するステップと
を含むことを特徴とするレポート処理の方法。
【請求項２】
前記複数のプロンプトを生成するステップは、前記第１の組の複数のパラメータについて受信した複数の値に基づいて前記その後の１組の複数のパラメータについての１組の複数の可能な値およびデフォルト値を受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記その後の複数のパラメータについての１組の複数の可能な値を受信するステップ、および
前記第１の組の複数のパラメータについて受信した複数の値に基づいて、前記１組の可能な複数の値を前記１組の複数の許容値に対応するサブセットに制限するステップ
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記複数のプロンプトを生成するステップは、その後の各パラメータごとに前記１組の複数の許容値を含む１つのドロップダウンリストを生成するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記ドロップダウンリストを表示するステップ、およびその後のパラメータごとに受信した１つの値に対応する入力選択を受信するステップをさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記複数の値を受信するステップは記憶デバイスからデフォルト値を受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記複数の値を受信するステップは１つのユーザ入力値に対応する１つの値を受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記複数のパラメータの順序付けられた組の複数の追加パラメータについての１つの値の要求のための追加プロンプトを生成するステップであって、そこでは、前記関連する複数のパラメータについての複数の許容値の１組を含み、該複数の許容値の１組は前に受信した少なくとも１つの値に応答して決定されるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記複数の追加プロンプトは、前記複数のパラメータ間の依存性に基づいて一連の順序で前記複数の追加プロンプトを生成するステップを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記複数の追加パラメータのそれぞれには未解決の依存性がないことを特徴とする請求項８に記載の方法。
【請求項１１】
前記その後の複数のパラメータには未解決の依存性がないことを特徴とする請求項１に記載の方法。
【請求項１２】
前記値の受信に先立って前記複数のパラメータの順序付けられた組の中の複数のパラメータのそれぞれに関連するメタデータを取り出すステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
（ａ）複数のパラメータの順序付けられた複数の組を有するレポート定義を受信するステップと、
（ｂ）前記順序付けられた複数の組のうちの１つの第１の組の複数のパラメータについて複数の値を受信するステップと、
（ｃ）前記第１の組の複数のパラメータについて受信した複数の値に応答して、複数のプロンプトを生成し、その後の１組の複数のパラメータについての複数の値を要求するステップであって、そこでは前記複数のプロンプトはその後の複数のパラメータについての１組の複数の許容値を含むステップと、
（ｄ）複数のパラメータの組ごとにすべてのパラメータ値が指定されるまでステップ（ａ）から（ｃ）を繰り返すステップと、
（ｅ）前記レポート定義および前記受信した複数の値に基づいてレポートを実行するステップと
を含むことを特徴とするレポート処理の方法を実行するためのコンピュータ実行可能命令を格納するコンピュータ可読媒体。
【請求項１４】
前記複数のプロンプトを生成するステップは、前記第１の組の複数のパラメータについて受信した複数の値に基づいて前記その後の１組の複数のパラメータについての１組の複数の可能な値およびデフォルト値を受信するステップを含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記その後の複数のパラメータについての１組の可能な複数の値を受信するステップ、および前記第１の組の複数のパラメータについて受信した複数の値に基づいて、前記１組の複数の可能な値を前記１組の複数の許容値に対応する１つのサブセットに制限するステップのためのコンピュータ実行可能命令をさらに含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１６】
前記複数のプロンプトを生成するステップは、その後のパラメータごとに前記１組の複数の許容値を含むドロップダウンリストを生成するステップを含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１７】
前記ドロップダウンリストを表示するステップ、および
その後のパラメータごとに受信した値に対応する入力選択を受信するステップ
のためのコンピュータ実行可能命令をさらに含むことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記複数の値を受信するステップは記憶デバイスからデフォルト値を受信するステップを含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１９】
前記複数の値を受信するステップは１つのユーザ入力値に対応する１つの値を受信するステップを含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項２０】
前記複数のパラメータの順序付けられた複数の組の複数の追加パラメータについての１つの値を要求するための複数の追加プロンプトを生成するステップであって、そこでは、複数の追加プロンプトの各々は前記関連するパラメータについての１組の複数の許容値を含み、該１組の複数の許容値は前に受信した少なくとも１つの値に応答して決定されるステップのためのコンピュータ実行可能命令をさらに含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項２１】
前記複数の追加プロンプトを生成するステップは、前記パラメータ間の依存性に基づいて一連の順序で前記複数の追加プロンプトを生成するステップを含むことを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
前記複数の追加パラメータのそれぞれには未解決の依存性がないことを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２３】
前記その後の複数のパラメータには未解決の依存性がないことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項２４】
前記複数の値の受信に先立って前記複数のパラメータの順序付けられた組の中の複数のパラメータのそれぞれに関連するメタデータを取り出すステップのためのコンピュータ実行可能命令をさらに含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項２５】
複数のパラメータに関連するデータを格納する記憶デバイスと、
（ａ）複数のパラメータの順序付けられた複数の組を有するレポート定義を受信し、（ｂ）前記順序付けられた複数の組のうちの１つの第１の組の複数のパラメータについて複数の値を受信し、（ｃ）前記第１の組の複数のパラメータについて受信した複数の値に応答して、その後のパラメータについての１組の複数の許容値を含む、前記その後の１組の複数のパラメータについての複数の値を要求するための複数のプロンプトを生成し、（ｄ）パラメータの組ごとにすべてのパラメータ値が指定されるまでステップ（ａ）から（ｃ）を繰り返し、（ｅ）前記レポート定義および前記受信した値に基づいてレポートを実行する、前記記憶デバイスに結合され、レポートプロセッサおよびデータプロセッサを備えるレポートサーバーと
を備えることを特徴とするレポートを処理するためのシステム。
【請求項２６】
前記レポートサーバーは、前記複数のプロンプトを生成する際に、前記第１の組のパラメータについて受信した複数の値に基づいて前記その後の１組の複数のパラメータについて１組の複数の可能な値およびデフォルト値を受信することを特徴とする請求項２５に記載のシステム。
【請求項２７】
前記レポートサーバーは、前記その後の複数のパラメータについて１組の複数の可能な値を受信し、前記第１の組の複数のパラメータについて受信した１つの値に基づいて、前記１組の複数の可能な値を前記１組の許容値に対応するサブセットに制限することを特徴とする請求項２５に記載のシステム。
【請求項２８】
前記レポートプロセッサはその後のパラメータごとに前記１組の複数の許容値を含むドロップダウンリストを生成することを特徴とする請求項２５に記載のシステム。
【請求項２９】
前記レポートサーバーは、ドロップダウンリストを表示し、その後のパラメータごとに受信した１つの値に対応する１つの入力選択を受信することを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記複数の値の少なくとも１つの値は前記記憶デバイスからのデフォルト値を含むことを特徴とする請求項２５に記載のシステム。
【請求項３１】
前記複数の値の少なくとも１つの値はユーザ入力値に対応する値を含むことを特徴とする請求項２５に記載のシステム。
【請求項３２】
前記レポートプロセッサは、前記複数のパラメータの順序付けられた組の複数の追加パラメータについての値を要求するための複数の追加プロンプトを生成し、各追加プロンプトは前記関連するパラメータについての１組の複数の許容値を含み、前記複数の許容値は前に受信した少なくとも１つの値に応答して決定されることを特徴とする請求項２５に記載のシステム。
【請求項３３】
前記レポートプロセッサは前記複数のパラメータ間の依存性に基づいて一連の順序で前記複数の追加プロンプトを生成することを特徴とする請求項３２に記載のシステム。
【請求項３４】
前記複数の追加パラメータのそれぞれには未解決の依存性がないことを特徴とする請求項３２に記載のシステム。
【請求項３５】
前記その後の複数のパラメータには未解決の依存性がないことを特徴とする請求項２５に記載のシステム。
【請求項３６】
前記レポートサーバーは、前記記憶デバイスから前記複数のパラメータの順序付けられた組の中の前記複数のパラメータのそれぞれに関連するメタデータを取り出すことを特徴とする請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に情報システムの分野に関する。より詳細には、本分野はデータのパラメータ化に関する。
【背景技術】
【０００２】
情報システムは、ユーザから値を取り出して、適切な時に適切な情報をユーザに提供する必要がある。クエリベースのレポーティングシステムでは、これは、レポートのパラメータ化を介して達成することができる。複数のパラメータによって、ユーザの選択に基づいてレポートをカスタマイズすることができる。しかし、従来のレポーティング製品では、固定的なパラメータ選択しか提供されない。このやり方では、レポート生成プログラムはデータ依存性を利用しておらず、その結果データおよびレポートの処理および提示が効率的に行われない。さらに、従来のレポーティング製品では、後のデータおよび選択可能なパラメータのユーザへの提示は、非効率的で使いにくい。
【０００３】
例えば図２は、レポートの処理および生成の従来の方法を示すフローチャートである。ステップ２００で、複数のパラメータのリストと、指定されている場合は、パラメータごとの可能な値とを含むレポート定義が取り出される。次いでステップ２３０で、リストから１つのパラメータが取り出され、ステップ２４０で、そのパラメータがドロップダウン（複数の可能な値を含む）の対象としてマークされているかどうかが判定される。マークされている場合、ステップ２５０で、そのフィールドの可能なすべての値が選択されてユーザに提供される。これは、長く扱いにくい値のリストとなり得る。次いでステップ２６０で、ユーザに対してドロップダウンリストから値を入力するよう指示する。ステップ２４０で、パラメータがドロップダウンの対象としてマークされていない場合、処理は直接ステップ２６０に進み、ユーザに対して（ドロップダウンリストからではなく）値を入力するよう指示する。次いでステップ２７０で、任意のパラメータがステップ２２０からのリストに残っているかどうかが判定される。残っている場合、処理はステップ２３０に戻る。すべてのパラメータが取り出され、それらを使用してユーザに対して値を入力するよう要求した後、ステップ２８０でレポートが実行される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この従来の方法では、レポート生成プログラム（ｒｅｐｏｒｔ  ｇｅｎｅｒａｔｏｒ）はデータ依存性を利用せず、ユーザに提示された選択肢は、ユーザの前の選択に基づいて動的に決定されず、または一部に制限されない。
【０００５】
したがって、従来技術の問題を克服し、情報の提供をより正確に、効率良くユーザのニーズに合わせるシステムおよび方法を含む動的なレポーティング製品を提供する必要がある。ユーザ選択可能パラメータが前のユーザ選択に依存するようにカスケードパラメータを提供することが望ましい。
【課題を解決するための手段】
【０００６】
本発明は、ユーザ値およびユーザ選択に従って包括的に定義されたレポートをカスタマイズするように、ユーザ値およびユーザ選択が集められ、レポートサーバーに提供される改良されたレポートパラメータ化システムおよびその方法を対象とする。
【０００７】
順序付けられた複数のレポートパラメータの組（ｓｅｔ）がレポートの定義中でで宣言され、次いでこのパラメータ定義を使用してユーザに対するプロンプト表示およびレポートの実行が駆動される。パラメータ値は一連の順序で集められるので、１つのパラメータについてユーザが取り出し、指定した値を使用して、その後のパラメータの複数の許容値または１つのデフォルト値の組が生成される。複数のパラメータはユーザに動的に提示される。すべてのパラメータのすべての値が取り出され、または指定された後、レポートサーバーによってレポートが生成される。
【０００８】
本発明の他の機能および利点は、添付の図面を参照して進める例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【０００９】
上記の概要、および以下の好ましい実施形態の詳細な説明は、添付の図面と併せ読めばよりよく理解できる。本発明を説明する目的で、図面には本発明の構造の例を示しているが、本発明は、開示した特定の方法および手段に限定されることない。
【発明を実施するための最良の形態】
【００１０】
概要
パラメータ化されたレポートは、レポートの設計者がレポートの実行中にユーザによって提供できる１組の値を指定できるようにすることによって柔軟性を提供する。データは、データベースから、ユーザが見たい情報を含み他のデータを除いて可読形態に変換される。パラメータを使用して、例えばデータまたは強調表示データに制限を加える。パラメータは、動的にユーザに提示される。例えば、ユーザが居住している州を選択するよう要求され、ユーザが「ワシントン」を選択した場合、ユーザに提示される次の選択肢は、ワシントンにある市に制限される。
【００１１】
コンピューティング環境の例
図１は、本発明を実施するのに適したコンピューティング（システム）環境１００の例を示している。コンピューティングシステム環境１００は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆する物ではない。また、コンピューティング環境１００を、動作環境１００の例に示した構成要素のいずれか１つ、またはその組合せに関連する依存性または必要条件を有している物と解釈すべきではない。
【００１２】
本発明は、他の多くの汎用または専用コンピューティングシステム環境または構成で動作する。本発明との使用に適したよく知られているコンピューティングシステム、環境、および／または構成の例には、それだけには限定されないが、パーソナルコンピュータ、サーバーコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたはデバイスを含む分散コンピューティング環境などがある。
【００１３】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明する。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。また本発明は、タスクが通信ネットワークまたは他のデータ送信媒体によってリンクされているリモート処理装置によって実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールおよび他のデータを、メモリ記憶デバイスを含むローカルおよびリモートのコンピュータ記憶媒体に置くことができる。
【００１４】
図１を参照すると、本発明を実施するシステムの例は、汎用コンピューティング装置をコンピュータ１１０の形で含んでいる。コンピュータ１１０の構成要素は、それだけには限定されないが、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素を処理ユニット１２０に結合するシステムバス１２１を含む。システムバス１２１は、様々なバスアーキテクチャのうちの任意の物を使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のどんな物でもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカルバス、および周辺部品相互接続（ＰＣＩ）バス（メザニンバスとしても知られている）などがある。
【００１５】
コンピュータ１１０は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０からアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性のリムーバブルおよび非リムーバブル媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶デバイス、または所望の情報の格納に使用でき、コンピュータ１１０からアクセスできる他の任意の媒体などがある。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定または変更された１つまたは複数のその特徴を有する信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された通信などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組合せでもコンピュータ可読媒体の範囲内に含まれる物とする。
【００１６】
システムメモリ１３０は、ＲＯＭ１３１やＲＡＭ１３２など、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。基本入出力システム１３３（ＢＩＯＳ）は、例えば起動中など、コンピュータ１１０内の要素間での情報の転送を助ける基本ルーチンを含み、一般にＲＯＭ１３１に格納される。ＲＡＭ１３２は一般に、処理ユニット１２０からすぐにアクセス可能な、および／または処理ユニット１２０が現在処理しているデータおよび／またはプログラムモジュールを含む。図１は、それだけには限定されないが一例として、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示している。
【００１７】
コンピュータ１１０は、他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図１は、非リムーバブル不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ１４１、リムーバブル不揮発性磁気ディスク１５２から読み取り、あるいはそこに書き込む磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体など、リムーバブル不揮発性光ディスク１５６から読み取り、あるいはそこに書き込む光ディスクドライブ１５５を示している。動作環境の例で使用できる他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどがある。ハードディスクドライブ１４１は一般に、インターフェイス１４０などの非リムーバブルメモリインターフェイスを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は一般に、インターフェイス１５０などのリムーバブルメモリインターフェイスによってシステムバス１２１に接続される。
【００１８】
上述し、図１に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶を提供する。図１では例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶する物として示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであっても、異なっていてもよいことに注意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は少なくとも異なるコピーであることを示すために、ここではそれらに異なる番号を付している。ユーザは、キーボード１６２や、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置１６１などの入力装置を介してコマンドおよび情報をコンピュータ１１０に入力することができる。他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバス１２１に結合されているユーザ入力インターフェイス１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など他のインターフェイスおよびバス構造で接続してもよい。モニタ１９１または他のタイプの表示装置もまた、ビデオインターフェイス１９０などのインターフェイスを介してシステムバス１２１に接続される。コンピュータは、モニタに加えて、出力周辺インターフェイス１９５を介して接続できるスピーカー１９７やプリンタ１９６などの他の周辺出力装置を含むこともできる。
【００１９】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバー、ルーター、ネットワークＰＣ、ピアデバイス、または他の一般のネットワークノードでよく、一般にコンピュータ１１０に関連して上述した多くまたはすべての要素を含むが、図１にはメモリ記憶デバイス１８１のみを示している。示した論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域エリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。こうしたネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
【００２０】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１１０は、ネットワークインターフェイスまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ１１０は一般に、モデム１７２、またはインターネットなどＷＡＮ１７３にわたって通信を確立する他の手段を含む。モデム１７２は、内蔵の物でも外付けの物でもよく、ユーザ入力インターフェイス１６０または他の適切な機構を介してシステムバス１２２に接続することができる。ネットワーク式環境では、コンピュータ１１０に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶デバイスに格納することができる。図１は、それだけには限定されないが一例として、リモートアプリケーションプログラム１８５をメモリデバイス１８１上に存在する物として示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
【００２１】
分散コンピューティングフレームワークまたはアーキテクチャの例
様々な分散コンピューティングフレームワークが、パーソナルコンピューティングおよびインターネットの集中を考慮して開発されており、現在も開発が進められている。アプリケーションおよびコンピューティングデバイス用のシームレスに相互運用可能なＷｅｂ対応インターフェイスが一様に個人および企業のユーザに提供され、それによってコンピュータアクティビティがますますＷｅｂブラウザまたはネットワーク指向になっている。
【００２２】
例えば、ＭＩＣＲＯＳＯＦＴ（登録商標）のＮＥＴプラットフォームは、サーバー、Ｗｅｂベースのデータ記憶などのビルディングブロックサービス、およびダウンロード可能なデバイスソフトウェアを含む。一般的に．ＮＥＴプラットフォームは、（１）コンピューティングデバイスの範囲全体をいっしょに働かせ、ユーザ情報を自動的に更新させ、それらのすべてにおいて同期させる機能、（２）ＨＴＭＬではなくＸＭＬをより多く使用することによって可能になるＷｅｂサイトのインタラクティブ機能の向上、（３）電子メールなどの様々なアプリケーション、またはＯｆｆｉｃｅ．ＮＥＴなどのソフトウェアを管理するための中央開始点からユーザへのカスタマイズされたアクセスおよび製品およびサービスの提供を特徴とするオンラインサービス、（４）情報へのアクセスの効率および容易さ、およびユーザとデバイスの間の情報の同期化を向上させる集中データ記憶、（５）電子メール、ＦＡＸ、電話などの様々な通信媒体を統合する機能、（６）再利用可能なモジュールを作成し、それによって生産性を向上させ、プログラミングエラー数を低減する開発者向けの機能、および（７）他の多くのクロスプラットフォーム統合機能を提供する。
【００２３】
本明細書の実施形態の例は、コンピューティングデバイスにあるソフトウェアとの関連で説明しているが、本発明の１つまたは複数の部分を、オペレーティングシステム、ＡＰＩ、またはコプロセッサと要求側のオブジェクトの間の「仲介」オブジェクトを介して実施し、その結果すべての．ＮＥＴの言語およびサービス、および他の分散コンピューティングフレームワークによってもサービスを実行し、またはサポートできるようになり、またはそれらを介してサービスにアクセスできるようになる。
【００２４】
実施形態の例
１組の順序付けられた複数のレポートパラメータがレポートの定義中で宣言され、次いでこのパラメータ定義を使用してユーザに対するプロンプト表示およびレポートの実行が駆動される（レポート定義は、図５に関して以下でさらに説明する）。パラメータの定義の例には、パラメータの名前、データ型（文字列、数字、日付など）、許容値の組、または許容値の組の取出しに使用する任意選択のクエリ、デフォルト値、またはデフォルト値の取出しに使用する任意選択のクエリ、およびユーザに値の入力を要求するかどうかを含む。許容値およびデフォルト値のクエリは、任意に複雑でよく、レポートの開発者によって望ましいように定義される。
【００２５】
さらに、許容値およびデフォルト値のクエリは、以前指定されたパラメータ値の値によってパラメータ化することができる。
【００２６】
これによって１つのパラメータについてユーザが取り出した、または指定した値を使用して、その後のパラメータの許容値またはデフォルト値の組を生成することができる。すべてのパラメータの値が取り出され、指定された後、レポートサーバーがレポートを生成する。
【００２７】
一例として、２つのパラメータ「Ｐｒｏｄｕｃｔ  Ｃａｔｅｇｏｒｙ」および「Ｐｒｏｄｕｃｔ  Ｎａｍｅ」に関するレポート定義を仮定する。製品カテゴリのリストがデータベースから取り出され、ユーザは、そのリスト内の１つの項目を選択するよう要求される。ユーザが選択を行うと、選択したカテゴリ内の製品名のリストがデータベースから取り出される。次いでユーザは、リストから１つの製品名を選択し、レポートは、選択した製品を使用して実行する。
【００２８】
本発明の動的パラメータリストおよびデフォルト値を伴う別の例のシナリオとして、レポートに定義されている３つのパラメータ「Ｒｅｇｉｏｎ」、「Ｓｔａｔｅ」、「Ｃｉｔｙ」があると仮定する。各パラメータの入力に使用する３つのドロップダウンリストを備えるユーザインターフェイスが表示される。「Ｒｅｇｉｏｎ」ドロップダウンには、米国の地域が入っている。地域を選択すると（例えば北西部）、「Ｒｅｇｉｏｎ」ドロップダウンリストで選択した地域をクエリパラメータとして使用して、Ｓｔａｔｅパラメータに関連するデータソースのクエリが行われる。「Ｓｔａｔｅ」ドロップダウンリストには、パラメータクエリからの結果の組が入っている。「Ｓｔａｔｅ」ドロップダウンリストで選択を行う（例えばワシントン）と、「Ｓｔａｔｅ」ドロップダウンリストで選択した州をクエリパラメータとして使用して、「Ｃｉｔｙ」パラメータに関連するデータソースのクエリが行われる。
【００２９】
図３は、本発明によるシステムの例を示す高レベルブロック図である。レポートサーバー３００は、レポートプロセッサ３１０およびデータプロセッサ３１５を備え、上述したように要求側コンピュータ３２０と対話する。レポートサーバー３００は、様々な値およびデータについて、外部データソース３３０などの記憶デバイスにアクセスする。例えば要求側コンピュータ３２０を介してレポートの要求に応答して、レポートサーバー３００は、以下で説明するようにレポートを生成する。また、レポートオーサリング／デザインツール３２５を示しており、これを使用して、本明細書で説明するようにレポート定義が作成される。
【００３０】
図４は、本発明によるレポートの処理および生成の方法の例を示すフローチャートである。前処理ステップとして依存性が決定されることが企図される。具体的には、個々のレポートパラメータのデフォルト値および／または許容値をすぐに評価できない場合、その依存性のリストが決定される。これによって、パラメータ入力の依存性を示すツリー構造が得られる。例えば、レポートに定義された３つのパラメータ、パラメータ１、パラメータ２、パラメータ３があると仮定する。パラメータ２の有効値の組は、パラメータ１の値を使用するクエリに基づいている。パラメータ３のデフォルト値は、パラメータ１の値を使用するクエリに基づいている。したがって、そのレポートについてパラメータメタデータが取り出される場合、パラメータ２およびパラメータ３は、パラメータ１に依存していることを示す。
【００３１】
レポートサーバーは、ステップ４００で処理を開始する。ステップ４００で、適切なレポート定義（例えば図５に関して以下で説明）は、パラメータ、データセット、およびデータソースを含めて、記憶デバイスから取り出され、そうでない場合は生成される。次いでステップ４１０で、パラメータメタデータが評価される。このメタデータは、以下で説明するように、ユーザが提供した任意の値とともに、パラメータの許容値およびデフォルト値などの情報を含む。
【００３２】
ステップ４１５で、すべてのパラメータが値を有している場合は、ステップ４９５でレポートが実行される。そうでない場合、ステップ４２０で、他のパラメータに対する未解決の依存性のないパラメータが選択されてさらに処理が行われる。未解決の依存性のないパラメータは、それらの許容値およびデフォルト値を取り出すために処理されて、プロンプト表示のためにユーザに提示される。このように、ユーザが取り出した、または指定した値を使用して、その後のパラメータの許容値またはデフォルト値の組を生成することができる。したがって、あるパラメータの許容値およびデフォルト値の組がユーザに動的に提供されて、より効率の良い正確な処理が可能になる。
【００３３】
ステップ４２５で、未解決の依存性のないパラメータが選択される。ステップ４３０で、パラメータの許容値についてのクエリがあるかどうかが判定される。クエリがある場合、ステップ４３５で、外部データソース４５０を使用して許容値が取り出される。したがって、上記の例に関して、パラメータ「Ｓｔａｔｅ」が、前にユーザが「北西部」を選択したパラメータ「Ｒｅｇｉｏｎ」に依存している場合、ステップ４３５で取り出される許容値は、米国の北西部にある州である。次いでこれらの州は、例えばレポート生成中に使用する値を選択するよう要求するプロンプトとして、ドロップダウンリストでユーザに提供されることが好ましい。
【００３４】
ステップ４３０で許容値に指定されたクエリがない場合、または許容値が取り出された後、ステップ４４０で、デフォルト値についてのクエリがあるかどうかが判定される。クエリがある場合、ステップ４４５で、外部データソース４５０からデフォルト値が取り出される。クエリがない場合、またはデフォルト値が取り出された後、ステップ４６０で、ステップ４２０からの未解決の依存性のないパラメータがまだ残っているかどうかが判断される。パラメータがまだ残っている場合、ステップ４２５で処理が続行して次のパラメータが処理される。
【００３５】
未解決の依存性のないパラメータがすべて処理された後、ステップ４７０で、ユーザに対して値を要求するプロンプトが表示され（例えば、上記の例に沿ってユーザが北西部の州のドロップダウンリストに提示される州から１つの州を選択するなど、ユーザは、取り出し許容値および／またはデフォルト値に応答して提供されるドロップダウンリストから選択を行う）、ステップ４１０で処理が続行して、他のパラメータが取り出され、続いて上記のように処理される。このように、ユーザに一連のドロップダウン（または他のタイプの）リストが提示され、ユーザはそこからその後のレポート生成に使用する値を選択する。ドロップダウンリストは、すべての選択肢のうちの期待されるユーザ応答値のみを含む対象の一部を提示する（例えばユーザが米国の北西部の州を指定した場合、米国のすべての州のリストではなく、北西部の州のドロップダウンリストのみが提示される。北西部の州がすべての選択肢のうちの対象の一部とみなされる）。
【００３６】
図５は、本発明によるレポート定義の例を示す図である。レポート５００は最終的に、名前、説明、作成者、ページの幅および高さなどのメタデータを備える。レポートは、以下でさらに説明するように、クエリパラメータ５７０に基づいてレポートパラメータ５０５およびデータセット５４０に従って生成される。各レポートパラメータは、任意選択でデフォルト値５１０および有効値５２０の組を指定することができる。デフォルト値５１０は、格納されている定数値５１５を介して指定するか、またはデータセット参照５３０を介して導出することができる。同様に、有効値５２０は格納されている定数パラメータ値５２５の集合とするか、またはデータセット参照５３０を介して導出することができる。
【００３７】
データセット５４０は、クエリ５５０およびデータモデル５６０に従って生成される。クエリ５５０は、様々なフィールド５８０を備えるデータモデル５６０とともにクエリパラメータ５７０を含む。データセット参照５３０は、データセットのフィールドへの参照を含む。こうしたフィールドの値は、デフォルト値（データセット参照でのデフォルト値の場合）、または値／ラベルの対（データセット参照での有効値の場合）として使用される。
【００３８】
パラメータは、レポート定義で指定される。パラメータタイプは、レポートパラメータ５０５およびクエリパラメータ５７０を含む。レポートパラメータ５０５は、レポートがデータの異なる側面を示すことができるようにするレポート５００に提供される（またはレポート定義内に含まれる）値である。一般に、レポートパラメータを使用してクエリパラメータに値が提供される。レポートパラメータの他の使用は、クエリ後のフィルタリング、およびレポートに使用する式に応じたレポートの外観の変更を含む。
【００３９】
クエリパラメータ５７０は、その結果を戻すために使用する、クエリ５５０、またはデータプロセッサ内の格納されたプロシージャに提供される値である。クエリパラメータの機能は一般に、データプロセッサ（例えばデータプロセッサ３１５）によって定義される。クエリパラメータは、レポートパラメータ５０５に基づく固定値または式を含めて、許容可能な任意の式に設定することができる。
【００４０】
クエリパラメータは、データプロセッサがサポートするＡＰＩを介してデータプロセッサに渡されることが好ましい。クエリパラメータの式が評価された後、その結果は適切なデータ型に変換され、次いでデータプロセッサに渡される。クエリパラメータ構文は、使用されるデータプロセッサに依存することが好ましい。例えば、ＳＱＬ  Ｓｅｒｖｅｒは、例えば「SELECT * FROM EMPLOYEES WHERE LEVEL = ?」など、ＳＥＬＥＣＴステートメントで疑問符文字を使用することができる。また、格納されたプロシージャで直接定義されるパラメータを使用することもできる（「EXECUTE GetEmployee @EmployeelDParm」など）。
【００４１】
表１は、パラメータのメタデータの例を示している。
【００４２】
【表１】
2004246897.tif 000003
【００４３】
図６は、レポートに関連するレポートパラメータごとに、コントロールの例がどのようにユーザに提示されるかを説明するのに役立つツリー図である。クエリに基づく値は、パラメータ要素にＤｅｐｅｎｄｅｎｃｉｅｓサブ要素（ｄｅｐｅｎｄｅｎｃｉｅｓ  ｓｕｂ−ｅｌｅｍｅｎｔ）が存在し、Ｖａｌｕｅサブ要素が存在しない組合せによって決定される。Ｖａｌｕｅサブ要素の場合、ステップ６００で、その値がクエリに基づいているか、ハードコード化されるか、指定されないかが決定される。値がクエリに基づいている場合、コントロールはクエリベースであり、例えばステップ６０５で適切なメッセージが表示されることに注意されたい。値がハードコード化されるか、指定されない場合、ステップ６１０で、Ｔｙｐｅサブ要素値が決定される。ブール型の場合、ステップ６１５で「真」および「偽」のインジケータ（ラジオボタンなど）が提供され、そうでない場合は表示される。そうでない場合、例えば日時型、倍精度浮動小数点型、整数型、または文字列型の場合、ステップ６２０で有効値が提供されるかどうかが判定される。
【００４４】
有効値が提供されない場合、ステップ６２５で、Ｄｅｐｅｎｄｅｎｃｉｅｓサブ要素が提供されるかどうかが判定される。提供されず、ステップ６４０で複数の値がある場合、ステップ６５５で、マルチラインエディットコントロールが提供される。ステップ６４０で複数の値が存在しない場合、ステップ６５０で、シングルラインエディットコントロールが提供される。ステップ６２５でＤｅｐｅｎｄｅｎｃｉｅｓサブ要素が存在する場合、ステップ６３５で、ドロップダウンリストコントロールが提供される。同様に、ステップ６２０で有効値が提供される場合、ステップ６３０で、ドロップダウンリストコントロールが提供される。ドロップダウンリストコントロールに関して、複数の値が存在する場合、ドロップダウンリストは、複数選択であることが好ましい。そうでない場合、ドロップダウンリストは、単一選択であることが好ましい。
【００４５】
図７は、レポートに関連するレポートパラメータごとに、コントロールの例がどのように初期化されるか、およびそのデフォルト値を説明するのに役立つツリー図である。コントロールは、いくつかの条件に基づいて初期化される。条件は、有効値のリストおよび値が存在しているか、有効値があるかなどを含む。この初期化ツリーは一般に、クエリから導出されない、またはユーザベースではないパラメータに適用可能であることに注意されたい。ステップ７００で、ＶａｌｉｄＶａｌｕｅｓサブ要素が存在しているかどうかが判定される。存在していない場合、ステップ７４０でＶａｌｕｅサブ要素が決定される。Ｖａｌｕｅサブ要素の値がハードコード化される場合、ステップ７４５で値が表示される。Ｖａｌｕｅサブ要素の値が指定されない場合、ステップ７５０で、Ｔｙｐｅサブ要素は日時型であるかどうかが判定される。そうである場合、ステップ７５５で現在の日時が表示され、そうでない場合、ステップ７６０で空白が提供される。
【００４６】
ステップ７００でＶａｌｉｄＶａｌｕｅｓサブ要素が存在している場合、ステップ７０５で、コントロールが有効値で埋められる。ステップ７１０で、ＶａｌｉｄＶａｌｕｅｓサブ要素が取り出され、値が指定されない場合、ステップ７１５で空白が提供される。ステップ７１０からの値がハードコード化されると、ステップ７２０で、値が事前に定義済み、または生成済みのコントロールリストにあるかどうかが判定される。そうである場合、ステップ７３０で値が選択され、そうでない場合は、ステップ７２５で空白が表示される。
【００４７】
レポートパラメータの値の入力が要求される場合、値の設定に使用するコントロール（ＨＴＭＬコントロールであり得る）は、いくつかの条件に基づく。条件は、デフォルト値がどこから来るか、パラメータデータ型、ＮＵＬＬが許容可能な値であるか、有効値の所定のリストが存在するかなどを含む。これらの条件に基づいてレポートに関連するレポートパラメータごとにユーザに提示されるコントロールは、本明細書で説明したように、図６のステップ６１０から開始して、そこに示したように生成されるのが好ましい。
【００４８】
図８は、条件に基づいてレポートに関連するレポートパラメータごとに、コントロールの例がどのようにユーザに提示されるかを説明するのに役立つツリー図である。コントロールは、いくつかの条件に基づいて初期化される。条件は、有効値のリストおよび値が存在しているか、有効値があるかなどを含む。図８は、これらの条件に基づいてレポートに関連するレポートパラメータごとに、コントロールがどのように初期化されるか、およびそのデフォルトを定義する。一部の場合、Ｖａｌｕｅサブ要素の値がＮＵＬＬとなり得ると予想される。
【００４９】
ステップ８００でＶａｌｉｄＶａｌｕｅｓサブ要素が存在するかどうかが判定される。ＶａｌｉｄＶａｌｕｅｓサブ要素が存在しない場合、ステップ８５０で、Ｖａｌｕｅサブ要素が存在するかどうかを判定する。Ｖａｌｕｅサブ要素が存在しない場合、ステップ８５５で空白が提供される。Ｖａｌｕｅサブ要素が存在する場合、ステップ８６０で、Ｖａｌｕｅサブ要素の値がハードコード化されるかどうかが判定される。ハードコード化される場合、ステップ８６５でその値が表示される。Ｖａｌｕｅサブ要素の値が指定されない場合、ステップ８７０で、Ｔｙｐｅサブ要素が日時型であるかどうかが判定される。そうである場合、ステップ８７５で現在の日時が表示される。そうでない場合、ステップ８８０で空白が提供される。
【００５０】
ステップ８００でＶａｌｉｄＶａｌｕｅｓサブ要素が存在している場合、ステップ８０５で、コントロールが有効値で埋められる。ステップ８１０でＶａｌｕｅサブ要素が取り出され、値が存在しない場合、ステップ８１５で空白が提供される。ステップ８１０からの値が存在する場合、ステップ８２０で、Ｖａｌｕｅサブ要素の値がハードコード化されるか、指定されないかが決定される。値が指定されない場合、ステップ８２５で空白が提供される。Ｖａｌｕｅサブ要素の値がハードコード化される場合、ステップ８３０で、値が事前に定義済みまたは生成済みのコントロールリストにあるかどうかが判定される。リストにある場合、ステップ８４０で値が選択され、そうでない場合はステップ８３５で空白が表示される。
【００５１】
上述したように、本発明の実施形態の例は、様々なコンピューティングデバイスおよびネットワークアーキテクチャとの関連で説明してきたが、基礎概念は任意のコンピューティングデバイスまたはシステムに適用できる。
【００５２】
本明細書で説明した様々な技術を、ハードウェアまたはソフトウェアとともに、または適切な場合はそれらの組合せで実施することができる。したがって、本発明の方法および装置、またはその一部の側面または部分は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、または任意の他のマシン可読記憶媒体など、有形の媒体に組み込まれたプログラムコード（すなわち命令）の形をとることができ、コンピュータなどのマシンでプログラムコードをロードし、実行した場合、このマシンは、本発明を実施する装置になる。プログラム可能コンピュータ上でプログラムコードを実行する場合、コンピューティング装置は一般に、プロセッサ、プロセッサから読み取り可能な記憶媒体（揮発性および不揮発性のメモリおよび／または記憶要素を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えばデータ処理ＡＰＩなどの使用によって本発明のドメイン固有のプログラミングモデルの態様の作成および／または実施を利用できる１つまたは複数のプログラムを高水準の手続き型またはオブジェクト指向型プログラミング言語で実施してコンピュータシステムと通信させることが好ましい。しかしプログラムは、要望に応じてアセンブリ言語、またはマシン言語で実施することができる。いずれの場合も、言語は、コンパイル型言語またはインタプリタ型言語とし、ハードウェア実装と組み合わせることができる。
【００５３】
本発明の方法および装置は、電気配線またはケーブルなどの何らかの送信媒体を介して、光ファイバによって、または送信の他の任意の形を介して送信されるプログラムコードの形で組み込まれた通信を介して実施することもでき、例えばＥＰＲＯＭ、ゲートアレイ、プログラム可能論理デバイス（ＰＬＤ）、クライアントコンピュータなどのマシンでプログラムコードを受信し、ロードし、実行した場合、このマシンは、本発明を実施する装置になる。汎用プロセッサ上で実施すると、プログラムコードはプロセッサと結び付き、本発明の機能を呼び出すよう働く固有の装置を提供する。さらに、本発明とともに使用する任意の記憶技術は、常にハードウェアとソフトウェアの組合せとすることができる。
【００５４】
本発明は、様々な図の好ましい実施形態に関連して説明してきたが、他の類似の実施形態を使用できること、または変更および追加を上記の実施形態に加えて本発明から逸脱することなく本発明の同じ機能を実行できることを理解されたい。したがって本発明は、任意の単一の実施形態に限定されるべきではなく、特許請求の範囲による範囲内で解釈すべきである。
【図面の簡単な説明】
【００５５】
【図１】本発明の態様を実施できるコンピューティング環境の例を示すブロック図である。
【図２】レポートの処理および生成の従来の方法を示すフローチャートである。
【図３】本発明によるシステムの例を示す高レベルのブロック図である。
【図４】本発明によるレポートの処理および生成の方法の例を示すフローチャートである。
【図５】本発明によるレポート定義の例を示す図である。
【図６】レポートに関連するレポートパラメータごとに、コントロールの例がどのようにユーザに提示されるかを説明するのに役立つツリー図である。
【図７】レポートに関連するレポートパラメータごとに、コントロールの例がどのように初期化されるか、およびそのデフォルト値を説明するのに役立つツリー図である。
【図８】条件に基づいてレポートに関連するレポートパラメータごとに、コントロールの例がどのようにユーザに提示されるかを説明するのに役立つツリー図である。
【符号の説明】
【００５６】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理ユニット
１２１  システムバス
１３０  システムメモリ
１３１  ＲＯＭ
１３２  ＲＡＭ
１３３  基本入出力システム
１３４、１４４  オペレーティングシステム
１３５、１４５  アプリケーションプログラム
１３６、１４６  他のプログラムモジュール
１３７、１４７  プログラムデータ
１４０、１５０  インターフェイス
１４１  ハードディスクドライブ
１５１  磁気ディスクドライブ
１５２  リムーバブル、不揮発性磁気ディスク
１５５  光ディスクドライブ
１５６  リムーバブル、不揮発性光ディスク
１６０  ユーザ入力インターフェイス
１６１  ポインティング装置
１６２  キーボード
１７０  ネットワークインターフェイスまたはアダプタ
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域エリアネットワーク
１８０  リモートコンピュータ
１８１  メモリ装置
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェイス
１９１  モニタ
１９５  出力周辺インターフェイス
１９６  プリンタ
１９７  スピーカー
３００  レポートサーバー
３１０  レポートプロセッサ
３１５  データプロセッサ
３２０  要求側コンピュータ
３２５  レポートオーサリング／デザインツール
３３０、４５０  外部データソース
５００  レポート
５０５  レポートパラメータ
５１０  デフォルト値
５２０  有効値
５２５  定数値
５３０  データセット参照
５４０  データセット
５５０  クエリ
５６０  データモデル
５７０  クエリパラメータ
５８０  フィールド
【図１】
2004246897.tif 000004
【図２】
2004246897.tif 000005
【図３】
2004246897.tif 000006
【図４】
2004246897.tif 000007
【図５】
2004246897.tif 000008
【図６】
2004246897.tif 000009
【図７】
2004246897.tif 000010
【図８】
2004246897.tif 000011