(57)【要約】【課題】  サポートされるレポートレイアウトに対して利用可能である特徴を、カスタムレイアウトに対して利用可能にさせるカスタムレポートレイアウトをサポートする。【解決手段】  カスタムレイアウト定義はレポート処理ソフトウェアに対して認識可能となるように最初に１組のレポート定義基準を満たす。当該定義を作成するのに用いられ得る設計ツールが提供される。カスタムレイアウトはレポート作成ソフトウェアに渡される。当該ソフトウェアは最初にカスタムレイアウトを処理し、このレイアウトに最初の処理で利用可能などの特徴も与える。当該ソフトウェアはカスタムレイアウトのカスタム処理用のインターフェイスを提供する。これはカスタムレイアウトビルダオブジェクトからアクセスできる。当該オブジェクトは、カスタムレポートレイアウトを構築するインターフェイスを介して与えられるレポート構築コンポーネントを使用するように設計される。【選択図】  図４
2006072980.tif 000002
【特許請求の範囲】
【請求項１】
レポートを生成する命令を伝達するコンピュータ可読媒体であって、
レポートのグラフィック表現を定義するレポート定義ファイルを読み出す命令と、
レポート用の複数の画像特徴を生成する命令と、
自動化された外部プロセスを、前記生成する命令によって表される関数にアクセスさせるインターフェイスを提供する命令であって、そうすることによって、前記自動化されたプロセスは、前記生成する命令によって作成されるレポート用の前記画像特徴を制御することによって、前記レポート定義ファイル中で定義された前記グラフィック表現を構築し得る命令と
を備えることを特徴とするコンピュータ可読媒体。
【請求項２】
前記前記レポート定義ファイルは、第１の識別を伝達し、前記自動化されたプロセスは、第２の識別を伝達し、適切な外部プロセスは、前記第１および第２の識別に基づいて、前記レポート定義ファイルとともに使用するために選択され得ることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記インターフェイスは、前記コンピュータ可読媒体のすべてのユーザに、前記自動化されたプロセスを作成させるために公開されることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項４】
前記レポート定義ファイルに対して最初の処理を実施する命令をさらに備え、最初の処理は、前記自動化された外部プロセスによる処理に先立って起こり、前記最初の処理は、前記レポート定義ファイル用の１組の基準を強制することを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項５】
前記レポート定義ファイルの作成を支援するための設計ツールを提供する命令をさらに備えることを特徴とする請求項４に記載のコンピュータ可読媒体。
【請求項６】
自動化された第２の外部プロセスが、設計ツールを提供する前記命令によって表される関数にアクセスすることを可能にする第２のインターフェイスを提供する命令をさらに備えることを特徴とする請求項５に記載のコンピュータ可読媒体。
【請求項７】
前記自動化された外部プロセスが利用可能でない場合、前記グラフィック表現を構築するための自動化された第２のプロセスを確定する命令をさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項８】
前記グラフィック表現用の１組の列グループを受け取る命令と、前記列グループにデータを配置する命令をさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項９】
前記グラフィック表現中のセル用の１組のセル識別子を受け取る命令と、前記セルにデータを配置する命令をさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１０】
前記レポート定義ファイルは、ＸＭＬ（拡張マークアップ言語）ファイルであることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１１】
レポート用の複数の画像特徴を生成する前記命令は、索引中で参照されることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１２】
レポートを生成する方法であって、
レポートのグラフィック表現を定義するレポート定義ファイルを読み出すステップと、
レポート用の複数の画像特徴を生成する複数のプロセスを提供するステップと、
外部プロセスを、前記生成するプロセスにアクセスさせるインターフェイスを提供するステップであって、そうすることによって、前記外部プロセスは、前記生成するプロセスによって作成されるレポート用の前記画像特徴を制御することによって、前記レポート定義ファイル中で定義された前記グラフィック表現を構築し得るステップと
を含むことを特徴とする方法。
【請求項１３】
前記前記レポート定義ファイルは、第１の識別を伝達し、前記外部プロセスは、第２の識別を伝達し、適切な外部プロセスは、前記第１および第２の識別に基づいて、前記レポート定義ファイルとともに使用するために選択され得ることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記インターフェイスは、前記コンピュータ可読媒体のすべてのユーザに、前記外部プロセスを作成させるために公開されることを特徴とする請求項１２に記載の方法。
【請求項１５】
前記レポート定義ファイルに対して最初の処理を実施するステップをさらに含み、最初の処理は、前記外部プロセスによる処理に先立って起こり、前記最初の処理は、前記レポート定義ファイル用の１組の基準を強制することを特徴とする請求項１２に記載の方法。
【請求項１６】
前記レポート定義ファイルの作成を支援するための設計ツールを提供するステップをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
第２の外部プロセスが、前記設計ツールの関数にアクセスすることを可能にする第２のインターフェイスを提供するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記自動化された外部プロセスが利用可能でない場合、前記グラフィック表現を構築するための自動化された第２のプロセスを確定するステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１９】
前記グラフィック表現用の１組の列グループを受け取るステップと、前記列グループにデータを配置するステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項２０】
前記グラフィック表現中のセル用の１組のセル識別子を受け取るステップと、前記セルにデータを配置するステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項２１】
前記レポート定義ファイルは、ＸＭＬ（拡張マークアップ言語）ファイルであることを特徴とする請求項１２に記載の方法。
【請求項２２】
レポート用の複数の画像特徴を生成する前記プロセスは、索引中で参照されることを特徴とする請求項１２に記載の方法。
【請求項２３】
レポートのグラフィック表現を定義するレポート定義ファイルを読み出す手段と、
レポート用の複数の画像特徴を生成する手段と、
自動化された外部プロセスを、前記生成する手段によって表される関数にアクセスさせるインターフェイスを提供する手段であって、そうすることによって、前記自動化されたプロセスは、前記生成する手段によって作成されるレポート用の前記画像特徴を制御することによって、前記レポート定義ファイル中で定義された前記グラフィック表現を構築し得る手段と
を備えることを特徴とするレポート生成システム。
【請求項２４】
前記前記レポート定義ファイルは、第１の識別を伝達し、前記自動化されたプロセスは、第２の識別を伝達し、適切な外部プロセスは、前記第１および第２の識別に基づいて、前記レポート定義ファイルとともに使用するために選択され得ることを特徴とする請求項２３に記載のレポート生成システム。
【請求項２５】
前記インターフェイスは、前記レポート生成手段のすべてのユーザに、前記自動化されたプロセスを作成させるために公開されることを特徴とする請求項２３に記載のレポート生成システム。
【請求項２６】
前記レポート定義ファイルに対して最初の処理を実施する手段をさらに備え、最初の処理は、前記自動化された外部プロセスによる処理に先立って起こり、前記最初の処理は、前記レポート定義ファイル用の１組の基準を強制することを特徴とする請求項２３に記載のレポート生成システム。
【請求項２７】
前記レポート定義ファイルの作成を支援するための設計ツールを提供する手段をさらに備えることを特徴とする請求項２６に記載のレポート生成システム。
【請求項２８】
第２の自動化された外部プロセスが、設計ツールを提供する前記手段によって表される関数にアクセスすることを可能にする第２のインターフェイスを提供する手段をさらに備えることを特徴とする請求項２７に記載のレポート生成システム。
【請求項２９】
前記自動化された外部プロセスが利用可能でない場合、前記グラフィック表現を構築するための第２の自動化されたプロセスを確定する手段をさらに備えることを特徴とする請求項２３に記載のレポート生成システム。
【請求項３０】
前記グラフィック表現用の１組の列グループを受け取る手段と、前記列グループにデータを配置する手段をさらに備えることを特徴とする請求項２３に記載のレポート生成システム。
【請求項３１】
前記グラフィック表現中のセル用の１組のセル識別子を受け取る手段と、前記セルにデータを配置する手段をさらに備えることを特徴とする請求項２３に記載のレポート生成システム。
【請求項３２】
前記レポート定義ファイルは、ＸＭＬ（拡張マークアップ言語）ファイルであることを特徴とする請求項２３に記載のレポート生成システム。
【請求項３３】
レポート用の複数の画像特徴を生成する前記手段は、索引中で参照されることを特徴とする請求項２３に記載のレポート生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レポートの生成に関し、より詳細には、商用レポート作成ソフトウェアにおけるカスタムレポート定義をサポートする技術に関する。
【背景技術】
【０００２】
どの企業においても、企業の局面に関するデータが、時間の経過に伴って蓄積される。このデータは、企業の状況を報告するのに用いられ得る。たとえば、販売会社に関しては、販売員、顧客、販売員の地域、顧客の地域、販売量、販売された製品の量、販売日付、販売された製品の引渡し日付などを含む、製品のそれぞれの販売に関する販売データが蓄積され得る。次いで、このような販売データに基づいて、年間ベース、月間ベース、年間ベースかつ顧客別、各四半期ベースかつ製品別、引渡し日付ベースかつ販売員別、週間ベースかつ地域別などによる売上高を詳述するレポートが生成されることになり得る。
【０００３】
レポートに投入するデータは通常、データベースなどのデータソースに蓄積される。ここで用いられるデータソースという用語は、デジタル記録されたデータの貯蔵庫である。データソース中のデータをフィルタリングして、レポート用に正しく編成された列および行に入れるために、レポート設計者は、レポート定義において、データソースから望まれる特定のデータを指定することができる。たとえば、レポート設計者は、レポートの第１列に「販売員名」を入れたいと指定することができる。
【０００４】
レポート設計者は次いで、レポート定義の第１列に対して指示されたフィールド（販売員名）を認識し、すべての販売員名を求めてデータソースを照会し、販売員名を次々とレポートの第１列に配置するプログラムを書くことができる。このタスクを実施する独自のプログラムを書くのではなく、レポート設計者は、この機能を提供する商用レポート作成ソフトウェアを利用することができる。このようなソフトウェアは、レポート設計者が、レポート定義において、レポートの様々な列および／または行に入れたいと思う、あるタイプのデータを容易に指定することを可能にさせ得る。商用ソフトウェアは次いで、自動的にレポート定義を分析し、データベースを照会し、レポート中に所望のデータを配置する。
【０００５】
図５ａおよび図５ｂは、レポート定義および対応するレポートの簡単な例を提示する。図５ａの例示的なレポートデザインは、販売員の列５０１、１９９０年度の売上高の列５０２、および総売上げの列５０３を用意する。この例示的なレポートデザインは、指定されたデータを１つまたは複数のデータソースから引き出すとともに図５ｂに示すようなレポート用にデータを適切にフォーマットすることができる商用レポート作成ソフトウェアに提出され得る。図５ｂは、データを投入された販売員列５０１ａａ、データを投入された１９９０年度の売上げデータ列５０２ａａ、およびデータを投入された総売上げの列５０３ａａを示す。
【０００６】
レポート定義のより的確な図が、図１ｂに提示されている。レポート定義、すなわちレポート定義ファイル１４０は通常、レポートレイアウト１４０ａおよびクエリ１４０ｂを指定する。クエリ１４０ｂは、レポート用に望まれるデータを提供し、レイアウト１４０ａは、データがレポートに提示される方式を与える。言い換えると、レイアウトは、表示面にレポートのグラフィック表現を提供する。したがって、図５ａのレポート定義は、レイアウト１４０ａのグラフィック表現、およびレポート定義１４０のクエリ１４０ｂと理解されることができる。横一列に並んでいる３つのボックスの提示は、３つの列が生成されるべきであることを仮想レポート生成ソフトウェアに表明し得る。各ボックス、すなわち５０１、５０２、５０３の内容は、各列に配置されることになるクエリ結果を提供し得る。このように、レポート定義は、グラフィカルに表され得る。レポート定義は、レポートのレイアウトおよび内容を記述する他のどの手段によっても表され得る。たとえば、レポートの様々なレイアウトプロパティおよびデータ内容を宣言するのに、ＸＭＬ（拡張マークアップ言語）などのマークアップ言語が用いられ得る。したがって、レポート定義ファイルは、ＸＭＬファイルでよい。
【０００７】
図１ａは、レポート定義１００に適切なデータを投入する例示的なレポート処理ソフトウェア１１０の上位レベルの図を提示する。レポート処理ソフトウェア１１０は、複数のデータソース１２０、１２１のいずれに格納されているデータも正しく翻訳する複数のデータ拡張１１１を備え得る。レポート処理ソフトウェア１１０は、いくつかのレンダリング拡張１１２も備え得る。レンダリング拡張１１２は、生成されたレポートを、適切なファイル形式、たとえばＨＴＭＬ（ハイパーテキストマークアップ言語）１３０、ＸＭＬ（拡張マークアップ言語）１３１、または他の何らかのファイル形式１３２に変換する。フォーマットされた出力ファイル１３０、１３１、１３２を読むことができるプロセス（図示せず）は次いで、ＧＵＩ（グラフィックユーザインターフェイス）を介してレポートを表示することができる。要するに、レポート定義１００は、レポート処理ソフトウェア１１０によって、データソース１２０、１２１から集められたデータを識別するとともに、そのデータを、正しく構造化されたレポートに編集するのに用いられる。ソフトウェア１１０は、レポートを、どのファイル形式１３０、１３１、１３２でも生成することができる。このプロセスは、米国特許出願公開２００４／０１９４０３１（米国特許出願第１０／４００７３４号）「Defining a report based on data regions and including custom data in a report definition」にも記載されている。
【０００８】
レポートをデザインする人は、レポートを編成し提示し得る方式に柔軟性を望む。したがって、最新の商用レポート作成ソフトウェアは一般に、様々なレポートレイアウトをサポートする。今日一般的である主要なレポートレイアウトの２つが、テーブルおよび行列である。テーブルレイアウトが、図５ｂに示され、例示的な行列レイアウトが、図６ａに示される。テーブルは空である隅のセルをもたないが、行列が通常、レポートの左上の領域にある、空である隅のセルによってどのように特徴づけられるかを留意されたい。どちらのレイアウトも、水平軸に沿って配列された列および垂直軸に沿って配列された行によって特徴づけられる。
【０００９】
テーブルおよび行列レポートレイアウトは一般的であり、したがって、商用レポート作成ソフトウェアによって一般にサポートされるが、多くの追加レイアウトがしばしば望まれる。図６ｂは、サポートされない可能性があるレポートレイアウトの一例のみを提示する。図６ｂのレポートレイアウトは、どの程度の量のデータがあるかに応じて、水平レイアウト６６０から垂直レイアウト６７０に動的に変化する。レポート用に、４つのデータエントリ、すなわち６５０、６５１、６５２、および６５３のみがある場合は、水平レイアウト６６０が用いられるが、４つより多いエントリ、たとえば６５０、６５１、６５２、６５３、６５４、６５５、および６５６がある場合は、垂直レイアウト６７０が望まれる。ワシントン州内およびその周辺の都市名を用いた場合、図６ｂの例示的なレポートは、次のどちらかとして現れ得る。
【００１０】
【表１】
2006072980.tif 000003
【００１１】
【表２】
2006072980.tif 000004
【００１２】
このようなレイアウトが望まれる状況を想像することができよう。同様に、このようなレポート用のレポート定義ファイルを想像することができよう。レポート定義ファイルは、動的変更プロパティを含むレポートの様々なレイアウトプロパティ、および様々なレイアウトプロパティ中に配置するデータを指定する。残念ながら、最新のレポート処理ソフトウェアは、図６ｂのレイアウトをサポートすることができず、かつおそらくサポートせず、同様に、他の多くのカスタムレポートレイアウトをサポートすることができない可能性がある。レポート処理ソフトウェアは、広範囲のレイアウトをサポートすることができるが、望まれ得る報告用レイアウトにはほぼ無限の可能性がある。商用レポート作成ソフトウェアは、できるだけ多くの現実的なレイアウトをサポートしようと試みることができるが、一部の設定においては、必然的に顧客の要求に応えることができない。
【００１３】
カスタムレイアウトを用いてレポートを作成することを望む人にとっての解決策は従来、所望のレポートを生成するためにカスタムソフトウェアを書くことであった。言うまでもないが、この解決策は、商用レポート作成ソフトウェアを使うより多少手間がかかり得る。レポート設計者が、自分の商用ソフトウェアによってサポートされる１つまたは複数のレイアウトを用いて間に合わせる結果に頻繁になり得ることは、カスタムレポートレイアウトの作成にとって障害である。したがって、設計者は、自分が望むレポートにとって「次善」であるレイアウトを選ぶ場合がある。あるいは、レポート設計者は、所望のレイアウトをサポートするためのプログラムを書くと決めた場合、商用レポート作成ソフトウェアによって提供される多くの付加特徴なしで済ませなければならなくなる。
【００１４】
図３は、一般的な商用レポート作成ソフトウェア３１０のより詳細な図を提示する。サポートされる複数のレポートレイアウト３４０が、ソフトウェア３１０とともに用いられることができるが、サポートされない多くのレポートレイアウト３５０は、ソフトウェア３１０とともに使用するのに利用可能ではない。ソフトウェア３１０は、レポートの作成を容易にする様々な特徴３６０を含む。特徴３６０は、たとえば、色、ドリルスルー、表示／隠すなど、望ましいプロパティの挿入を容易にする機能を含み得る。最新の商用レポート作成ソフトウェア３１０において利用可能なこのような多くの特徴３６０があり、網羅的リストは、ここでは役に立たない。こうした特徴３６０は、カスタムレポート定義をサポートするためのカスタムソフトウェアを書く人に対しては利用可能でない。
【００１５】
一般的な商用レポート作成ソフトウェア３１０は、サポートされる様々なレイアウト３４０のレポートを構築する基本的なプロセス３７０も含み得る。こうしたプロセス３７０は、レポートへの挿入のためにすぐに使用可能なレポートプロパティを提供する１組のレポート構築コンポーネント３８０に頼り得る。レポートは通常、ＧＵＩ（グラフィックユーザインターフェイス）でレンダリングされることになっているので、コンポーネント３８０は、レンダリング拡張３１２に対して認識可能であるように構成され得る。例示的な構築コンポーネント３８０は、たとえばテキストボックスを生成するプロセス、画像を生成するプロセス、円を描き、列を作成するプロセスなど、レポートの生成において有用であるどのようなものでもよい。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
商用レポート作成ソフトウェアにおける当該分野の現況を鑑み、商用レポート作成ソフトウェアにおいてカスタムレポートレイアウトのサポートを提供するという、これまで認識されていなかった必要性がある。
【課題を解決するための手段】
【００１７】
上で特定された当該分野の欠点を考慮した上で、本発明は、レポート作成ソフトウェアにおいて、レポートのカスタムグラフィック表現、および／またはレポートの領域をサポートするシステムおよび方法を提供する。本発明を利用すると、サポートされるレポートレイアウト用に利用可能であり得るどのレポート作成ソフトウェア特徴も、カスタムレイアウトに対しても利用可能にされ得る。カスタムレイアウト定義は、レポート処理ソフトウェアに対して認識可能となるように、最初に１組のレポート定義基準を満たすことができる。このようなカスタムレイアウト定義を作成するのに用いられ得る設計ツールが提供される。カスタムレイアウトは次いで、レポート作成ソフトウェアに渡され得る。レポート作成ソフトウェアは、最初にカスタムレイアウトを処理し、このレイアウトに、最初の処理段階で利用可能などの特徴も与えることができる。レポート作成ソフトウェアは、カスタムレイアウトのカスタム処理用のインターフェイスを提供することができる。インターフェイスは、カスタムレイアウトビルダオブジェクトにとってアクセス可能であり得る。カスタムレイアウトビルダオブジェクトは、レポート作成ソフトウェアによって提供される画像特徴を生成する複数のプロセスを用いて、レポートレイアウトを生成するように設計され得る。本発明の他の利点および特徴は、後で記述される。
【００１８】
本発明による、レポート作成ソフトウェアにおいてカスタムグラフィック表現をサポートするシステムおよび方法が、添付の図面を参照してさらに記述される。
【発明を実施するための最良の形態】
【００１９】
本発明の様々な実施形態の完全な理解をもたらすために、以下の説明および図面において、特定の具体的な詳細が説明される。ただし、コンピューティングおよびソフトウェア技術にしばしば関連する特定の公知の詳細は、本発明の様々な実施形態を不必要に不明瞭にするのを避けるために、以下の開示において説明されない。さらに、以下で記述される詳細の１つまたは複数なしでも本発明の他の実施形態を実現できることを当業者は理解するであろう。最後に、以下の開示において、ステップおよびシーケンスを参照して様々な方法が説明されるが、このような説明は、本発明の実施形態の明瞭な実装を可能にするためであり、ステップおよびステップのシーケンスは、本発明を実施するのに必要であると見なされるべきでない。
【００２０】
この詳細な説明は概して、本発明の要約において上で導入された概念を説明し、この概念に基づいて展開する。最初に、本発明の総括が、図４および図７を参照して提示される。次に、カスタムレイアウトをレポート作成ソフトウェアと動作可能にさせるカスタムレポート定義基準の側面が説明される。次に、レポート処理ソフトウェアによって提供され得るインターフェイスが、インターフェイスの動作に関連する様々なサポートプロセスおよび特徴に従って記述される。最後に、本発明の一部としても使われ得る設計ツールが説明される。
【００２１】
以下の説明は概して、カスタムレポートレイアウトを、レポートの全体的なレイアウトであると仮定されているように扱うが、この仮定は、説明を簡単にするためであり、そうすることが必要とされるわけではないことに留意されたい。カスタムレポートレイアウトは、全体のレポートレイアウトの単なる１つのコンポーネントでよい。実際、いくつかの独立カスタムレポートレイアウトが、レポート中で、標準レイアウトコンポーネントと混合されて使われ得る。本明細書に記載されるカスタムレポートレイアウト制御は、レポートレイアウトの標準部分に関して何もする必要はない。カスタムレポートレイアウト制御はそれぞれ、全体のレポートレイアウトのうち、全体のレイアウト用にデザインされた特定のカスタム部分に対して作用するだけでよい。
【００２２】
（概要）
図４は、本発明の様々な態様の多くの、上位レベルの図を提示する。概して、図４は、サポートされる１組のレポートレイアウト４４０、すなわちサポートされる画像特徴に加えて、カスタムグラフィック表現４５０（レポートレイアウトとも呼ばれる）をサポートするレポート処理ソフトウェア４１０を示す。図４の構成は、プラットフォームの作成者と関係のないサードパーティが、プラットフォーム自体を修正することなく、かつプラットフォーム自体の背景における設計を知る必要なく、プラットフォームを拡張し、その価値を高めることができる、報告作成用の拡張可能プラットフォームである。図４のレポート処理プラットフォームによって提供されるコア機能でさえも、サードパーティによってアップグレードされ、改良され得る。逆に、図４のレポート処理プラットフォームに対するアップグレードは、どのサードパーティ拡張との使用にも利用可能にされ得る。
【００２３】
カスタムレポートレイアウト４５０は、レポート作成ソフトウェア４１０によって最初に処理され得るように、１組のレポート定義基準（図示せず）を満たすように設計され得る。レポート作成ソフトウェア４１０によって提供される特徴４６０のいずれも、カスタムレポートに対して利用可能にされ得る。レポート作成ソフトウェア４１０は、インターェイス４９０を装備することもできる。インターフェイス４９０は、カスタムレポート定義４５０の作成者にとってアクセス可能になるように公開され得る。インターフェイス４９０は、カスタムレポートビルダプロセス４９１、４９２が、レポート構築ソフトウェア４１０によってサポートされるレポート構築コンポーネント４８０を用いて、カスタムレイアウト、たとえば４５０ａで指定されたレポートを構築することを可能にする。デザイナー４５５は、レポート作成ソフトウェア４１０のレポート定義基準を満たすカスタムレポート定義４５０の作成を助けることができる。様々な実施形態において、カスタムレイアウトも、カスタムレポートビルダ、たとえば４９１用のどの基準も満たすように、デザイナー４５５は、カスタム設計制御４５６で補足され得る。
【００２４】
図７は、本発明の様々な実施形態の、別の上位レベルの図を提示する。図７は、図４で導入された様々な処理コンポーネントの間の好ましい相互作用を示す。図７では、図４のレポート処理ソフトウェア４１０は、レポート処理エンジン７００と呼ばれる。図４の特徴４６０およびサポートされるレイアウト用のレポートビルダ４７０は概して、図７ではレポート処理７１０と呼ばれる。図４のレポート構築コンポーネント４８０は、図７ではレンダリングオブジェクトモデル７２０と呼ばれる。
【００２５】
図７は、カスタムならびに標準レポートレイアウト定義が配置され得るレポート定義ストア７５０を提示している。レポートが生成されるとき、７５０からのレポート定義が、７１０によって処理され得る。レポート定義が７１０へ、それを介して渡らなければならない定義基準ボックス７５５によって示されるように、レポート定義は、７１０による処理に先立って、１組の定義基準を満たすように構成され得る。背景において説明したように、処理７１０は概して、データストア７３０からの、レポート用データの取得を含む。レポート定義によって指定されたレイアウトにデータを正しくフォーマットするために、レポート定義およびデータが、レンダリングオブジェクトモデル７２０に引き渡され得る（７０１）。サポートされるレポートレイアウト定義の場合、データは、レンダリングオブジェクト７２０と、どのカスタムレイアウト制御７６０との間の相互作用もなく、レンダリングオブジェクト７２０によって適切なレイアウトに配置され得る。カスタムレイアウト制御７６０は概して、図４のカスタムレポートビルダ４９１、４９２に対応する。
【００２６】
しかし、カスタムレポートレイアウト定義の場合、レンダリングオブジェクト７２０は、インターフェイス７２３を介して、１つまたは複数のカスタムレポートレイアウト制御７６０と通信することができる。こうした制御は、７２０で与えられるオブジェクトを使って、レポート作成者の要望に従ってカスタムレポートを正しく生成することができる。レポートは、どのファイル形式でも生成され得る。たとえば、レポートは、ＸＭＬ、ＨＴＭＬ形式でも、ＪＰＥＧのＴＩＦＦなどの画像としても生成され得る。好ましい実施形態において、レポートは、マイクロソフト（登録商標）によって提供される中間レポートファイル形式などの中間形式で生成されることができ、そうすることによって、次いで、個々のレンダラ（ｒｅｎｄｅｒｅｒ）７４０によって要求され得る適切などの形式にも変換され得る。したがって、図７によって促されるプロセスの最終ステップとして、生成されたレポートが、表示のためにレンダラ７４０に渡され得る。
【００２７】
（例示的なレポート定義基準）
レポートレイアウト定義基準７５５は、レポート定義が従い得る、いずれか１組の規則である。基準７５５に従うことによって、カスタムレポート定義が、レポート処理７１０によって処理され得る。基準７５５は、非常に単純なものから非常に複雑なものまで変化し得る。単純な基準の提供は、カスタムレポート定義の作成を容易にするという利点を有するが、処理され得るカスタムレポートレイアウトのタイプにおける柔軟性を低下させる可能性もある。より複雑な基準は、概して、ユーザにとって学習をより難しくさせ得るという犠牲を払って、より洗練されたカスタムレイアウトを可能にし得る。
【００２８】
レポート定義を含むために用いられ得る、非常に様々なファイル形式があり、基準７５５は、レポート処理７１０によって使われる特定のファイル形式に応じて変わり得る。たとえば、レポート定義は、ＸＭＬファイル、ＨＴＭＬファイル、シンプルテキスト（．ｔｘｔ）ファイル、またはデジタル情報を格納する他のどのファイルとしても格納され得る。レポート定義言語（ＲＤＬ）と呼ばれるレポート定義ファイルの側面を描写する１組の標準タグが現在、マイクロソフト（登録商標）コーポレーションでの開発を完成させつつある。ＲＤＬは、本発明とともに用いるための、優れた候補ファイルタイプと思われる。
【００２９】
本発明の例示的な基準は、レポート作成ソフトウェアの設計能力を拡張させる。従来技術は、設計者が、テーブルまたは行列における列幅など、確立されサポートされているレイアウトのプロパティを指定することを可能にするが、本発明は、レポート作成ソフトウェアの所与の実施形態においてネイティブサポートされていない、全く新しいレイアウトを設計者が指定することを可能にする。ほとんどのレポート作成ソフトウェアは、テーブルおよび行列をサポートするが、テーブルまたは行列レポートレイアウト定義をサポートしないレポート作成ソフトウェアを検討してみる。この場合、テーブルおよび行列は、レポート作成ソフトウェアの能力を拡張させるためのカスタムレイアウトとして提供され得る。以下は、このセクションで説明された定義基準を用いる、カスタムレイアウトの２つの例である。第１の例は、仮想レポート処理ソフトウェアとともに用いられるのに十分な定義基準を満たすカスタムレポートレイアウト定義として、テーブルを提示する。第２の例は、仮想レポート処理ソフトウェアとともに用いられるのに十分な定義基準を満たすカスタムレポートレイアウト定義として、行列を提示する。
【００３０】
【表３−１】
2006072980.tif 000005
【００３１】
【表３−２】
2006072980.tif 000006
【００３２】
【表４−１】
2006072980.tif 000007
【００３３】
【表４−２】
2006072980.tif 000008
【００３４】
【表４−３】
2006072980.tif 000009
【００３５】
（例示的なインターフェイスおよびサポートプロセス）
オブジェクト指向のコンピュータプログラミングという状況におけるインターフェイスは、当該分野において公知であるが、本発明は、レポートレイアウトに対する前例のないカスタム制御を可能にするためのインターフェイスを新たに利用する。このセクションは最初に、オブジェクト指向コンピューティングおよびインターフェイスの基本原理を説明する。次いで、本発明とともに用いるための、インターフェイスの様々な潜在的特徴が記述される。
【００３６】
図７の要素７００、７１０、７２０、７６０など、およびソフトウェアとして実装され得る、本発明の他のどの態様も、通常、オブジェクト指向プログラミング技術を用いて生成される、ソフトウェアの別個のユニットでよい。このような１つの例示的オブジェクトが、図８に示されており、図８は、一般的なＣＯＭオブジェクト８００の特徴を示す。他のオブジェクトタイプも利用可能であり、当業界において広く用いられており、ここで述べられるオブジェクト８００は、例示を目的とした非限定的な例を意図している。８００などのオブジェクトは概して、１つまたは複数のインターフェイス８０２、８０３、８０４をサポートし、こうしたインターフェイスはそれぞれ、メソッド８０５を含み得る。メソッド８０５は通常、ある特定のアクションを実施し、ソフトウェア、たとえば別のオブジェクトによってコールされ得る関数またはプロシージャである。このようなソフトウェアは、そのオブジェクト８００のクライアントと呼ばれる。インターフェイス８０３を構成する複数のメソッド８０５は通常、何らかの形で相互に関連している。概して、クライアントは、オブジェクトのインターフェイス８０２、８０３、８０４中のメソッド８０５を呼び出すことによって、オブジェクト８００によって提供されるサービスにアクセスすることができる。クライアントは概して、オブジェクトのデータにアクセスすることを禁止される。オブジェクトによって遂行される、本明細書および特許請求の範囲に記載される関数は、互いにインターフェイスをとるように設計された複数のオブジェクトを介しても達成され得ることが留意されるべきである。
【００３７】
通常、オブジェクト８００は、ある特定のクラスのインスタンスである。あるクラスが、たとえば、データベースサーバへの接続をオープンするサービスを提供するオブジェクトを含むことができ、別のクラスが、ファイルにデータを書くオブジェクトを含むことができる。通常、プログラマは、そのオブジェクトのインスタンスの実行に先立って、オブジェクトのクラスを知っている。オブジェクトのクラスは、クラスライブラリ中でルックアップされる。このようなライブラリは、オブジェクトの使用可能なすべてのクラスからなるディレクトリにアクセスすることができる。クライアントは、欲しいと思うオブジェクトのクラス、およびそれを指すポインタを欲しいと思うサポートされる第１のインターフェイスを指定して、ライブラリ中の関数をコールすることができる。ライブラリは次いで、そのクラスのオブジェクトを実装するサーバに実行を開始させる。ライブラリはまた、開始側クライアントに、新たにインスタンス化されたオブジェクトにおいて、要求されたインターフェイスを指すポインタを戻す。クライアントは次いで、オブジェクトに直接、オブジェクトがサポートする他のどのインターフェイスへのポインタも求め得る。
【００３８】
オブジェクトによってサポートされるインターフェイスは概して、オブジェクトとそのクライアントの間のコントラクトと思われる。オブジェクトは、インターフェイスがメソッドを定義すると、そのメソッドのサポートを保証し、クライアントは、メソッドの正しい呼出しを保証する。したがって、オブジェクトおよびクライアントは、各インターフェイスを明示的に識別する方式、インターフェイス中のメソッドを記述し、または定義する共通の方式、およびどのようにしてインターフェイスを実装するかという具体的な定義において一致しなければならない。
【００３９】
したがって、オブジェクトは、継承するインターフェイスパラメータ、ならびに継承するクラスパラメータによって記述され得る。たとえば、オブジェクトのクラスが、ファイルにデータを書く関数をもっている場合、そのクラスを継承するインスタンスも、インスタンス中で提供されるどの付加特徴および関数とも同様に、ファイルにデータを書き込むことができる。クラスが特定のインターフェイスをサポートする場合、そのクラスのインスタンスは、「コントラクト」を継承し、したがって、そのインターフェイスもサポートする。本発明の態様がそれを介して実装されるオブジェクトは概して、こうしたプログラミング原理ならびにオブジェクト、クラス、およびインターフェイスの定義の理解に準拠する。ただし、オブジェクト指向プログラミング技術に対する修正および改良は絶えず起こっており、本発明は、特定のタイプのオブジェクトにも、特定のどの特徴を有するオブジェクトにも限定されないことが明らかであろう。提供されるインターフェイスは、現在利用されている、または今後開発されるどの種類のオブジェクトにも関連して実装され得る。
【００４０】
図７を参照すると、本発明に関連して使用される特定のインターフェイス７２３は、非常に様々な特徴のいずれも有し得る。インターフェイス７２３は概して、カスタムレポートレイアウト制御７６０のクライアントが、レポート処理エンジン７００のサーバオブジェクトの特徴にアクセスすることを可能にする。様々な実施形態が、レポート処理エンジン７００内で提供されるレンダリングオブジェクト７２０へのより明確なアクセスをもたらし得る。インターフェイス７２３がもたらし得る多数の有利な特徴があり、このような多くの特徴が後で提示される。本発明は、ここで説明される特定のどのインターフェイス特徴の使用にも、ここで説明されるインターフェイス特徴の企図される実装形態にも限定されない。そうではなく、こうしたインターフェイス特徴は、本発明とともに用いるためのインターフェイスの多くの有用な潜在的側面をエニュメレーションするために提示される。最後に、インターフェイス７２３の使用を容易にする本発明の様々な態様も、後で説明される。
【００４１】
最初に、インターフェイス７２３は、１つまたは複数のカスタムレポートレイアウト制御７６０によってアクセスされるように設計され得る。このようなアクセスを容易にするために、インターフェイス７２３は、公開されているインターフェイスでよく、このようなインターフェイスにおいて、カスタムレポートレイアウト制御７６０がインターフェイス７２３にアクセスすることを可能にする様々なプロパティが、一般の人が使用するために提供され得る。インターフェイスは、インターネット上での公開や、ソフトウェア販売によって配布される文献を用いた公開を含む、幾通りのやり方でも公開され得る。
【００４２】
インターフェイス７２３は、カスタム制御７６０から登録情報を獲得するように構成され得る。レポート処理エンジン７００は、エンジン７００とともに用いられるカスタムレポートレイアウト制御７６０の登録を維持するように構成され得る。たとえば、処理制御７６０用のアセンブリおよびクラスが、登録のために入手され得る。登録ファイルは、たとえば、ｃｏｎｆｉｇファイルでよい。登録ファイル中のカスタム制御７６０のエントリは、レポート定義７５０に格納されているカスタムレポートレイアウトの名前にマッチングされ得る。このようにして、エンジン７００は、特定のカスタムレイアウトとともにどのカスタム制御７６０を使うか判定することができる。以下は、登録ファイル中の例示的なエントリである。
【００４３】
【表５】
2006072980.tif 000010
【００４４】
本明細書において説明されるシステムおよび方法による処理制御インターフェイス７２３は、複数のインターフェイスを含むことができ、複数のオブジェクトが、そうしたインターフェイスをサポートし得る。図１０は、本発明に関連して用いられ得る相互運用オブジェクト１０５０〜１０５５およびインターフェイス１０６０、１０６１の全体図を示す。レポート処理エンジン１０４０は、このような任意の数の相互運用オブジェクト１０５０〜１０５５を備え得る。また、複数のオブジェクト１０５０〜１０５５は、インターフェイス１０６０用のサポート処理を提供し得る。１つまたは複数の互いに異なる個々のオブジェクトによって実施されることもでき、より大きいオブジェクトのサブプロセスとして実施されることもできるサポートプロセスが、後で記述される。したがって、プロセスが、以下でオブジェクトとして記述される場合、オブジェクトの柔軟な潜在的構成が重視されるべきである。
【００４５】
概して、インターフェイス７２３は、複数のプロパティ、すなわちインターフェイス７２３に渡され得る情報を認識するように構成され得る。以下は、処理制御インターフェイス７２３とともに用いられ得る例示的なプロパティのリストである。
【００４６】
カスタムレイアウトプロパティ：このプロパティは、上記の定義基準セクション（例示的なレイアウト基準３を参照）で論じられたカスタムレポートレイアウト用に指定された情報のタイプを含み得る。したがって、カスタムレイアウトプロパティは、標準（レンダリング可能）レポートレイアウトに変換するために、レンダリングオブジェクト７２０にカスタムレポートレイアウトの詳細を与え得る。
【００４７】
レンダリングレイアウトプロパティ：このプロパティは、レンダリングオブジェクト７２０がカスタムレイアウトを構成するのに用いることができる、標準的なレンダリング可能レポートレイアウトプロパティを識別することができる。このプロパティは、最初はヌルでよい。
【００４８】
インターフェイス７２３は、インターフェイス７２３からのサービスを要求するのに用いられ得る複数のメソッドを備えることができる。以下は、処理制御インターフェイス７２３とともに用いられ得る例示的なメソッドのリストである。
【００４９】
プロセスメソッド：プロセスメソッドは、カスタムレポートレイアウトから、標準レポートレイアウトを生成することができる。プロセスメソッドは、作成された標準レポートレイアウトを、レンダラ７４０への引渡しのために目印をつけられた場所に格納することができる。
【００５０】
オンクリックメソッド：オンクリックメソッドは、ユーザ操作用のイベントハンドラを提供することができる（以降のイベントセクションを参照）。
【００５１】
オンダブルクリック：オンダブルクリックメソッドは、ユーザ操作用の別のイベントハンドラを提供することができる（以降のイベントセクションを参照）。
【００５２】
オンバリュー変更：オンバリュー変更メソッドは、ユーザ操作用の別のイベントハンドラを提供することができる（以降のイベントセクションを参照）。
【００５３】
オンムーブ：オンムーブメソッドは、ユーザ操作用の別のイベントハンドラを提供することができる（以降のイベントセクションを参照）。
【００５４】
上記のインターフェイスプロパティおよびメソッドは、レンダリングオブジェクト７２０におけるプロセスによってサポートされ得る。こうしたプロセスは、カスタムレポートレイアウト中で用いられる様々な基準を認識するとともにレンダリングオブジェクト７２０にアクセスすることができるカスタム制御７６０に適切なサポートを提供するように拡張され得る。本明細書に記載される例示的な実施形態に沿って、以下は、カスタムレイアウト用のサポートを適切に提供するように実装され得るレンダリングオブジェクト７２０の拡張のリストを示す。
【００５５】
（例示的なレンダリングオブジェクトの拡張１：カスタムレポートレイアウト）
カスタムレポートレイアウトオブジェクトは、どの標準レポートレイアウトオブジェクトのサブクラスでもよい。カスタムレポートレイアウトオブジェクトは、カスタムレポートレイアウトを表すプロセスを含み得る。様々な実施形態において、こうしたプロセスは、次のように記述され得るプロパティ（ここでは任意の名前を与えられている）を認識することができる。
【００５６】
【表６】
2006072980.tif 000011
【００５７】
（例示的なレンダリングオブジェクトの拡張２：カスタムデータ）
カスタムデータオブジェクトは、カスタムレポートレイアウトで表示するために、どのデータも表すことができる。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００５８】
【表７】
2006072980.tif 000012
【００５９】
（例示的なレンダリングオブジェクトの拡張３：データグループ化コレクション）
データグループ化コレクションオブジェクトは、カスタムレイアウト用のデータグループ化の順序つきリストを与え得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００６０】
【表８】
2006072980.tif 000013
【００６１】
（例示的なレンダリングオブジェクトの拡張４：データメンバコレクション）
データメンバコレクションオブジェクトは、データメンバの順序つきリストを与え得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００６２】
【表９】
2006072980.tif 000014
【００６３】
（例示的なレンダリングオブジェクトの拡張５：データメンバ）
データメンバオブジェクトは、カスタムレポートレイアウトのデータ中のグループインスタンスを表し得る。各グループインスタンスごとに、１つのデータメンバが存在し得る。たとえば、列に沿った製品カテゴリおよび製品、ならびに行に沿った国および地域についての販売データグループがある場合、データ列のグループ化の中に、各製品カテゴリごとに１つのデータメンバ（そのカテゴリの各製品ごとのデータメンバを含む）があり、データ行のグループ化の中に、各国ごとに１つのデータメンバ（その国の各地域ごとのデータメンバを含む）があり得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００６４】
【表１０】
2006072980.tif 000015
【００６５】
（例示的なレンダリングオブジェクトの拡張６：データセルコレクション）
データセルコレクションオブジェクトは、カスタムデータ中のデータセルすべてを表し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００６６】
【表１１】
2006072980.tif 000016
【００６７】
（例示的なレンダリングオブジェクトの拡張７：データセル）
データセルオブジェクトは、カスタムデータ中の単一のセル値を表し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００６８】
【表１２】
2006072980.tif 000017
【００６９】
（例示的なレンダリングオブジェクトの拡張８：データ値コレクション）
データ値コレクションオブジェクトは、カスタムデータの１つのセル中のデータ値のリストを提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００７０】
【表１３】
2006072980.tif 000018
【００７１】
（例示的なレンダリングオブジェクトの拡張９：データ値）
データ値オブジェクトは、データセル中の単一の値を表し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００７２】
【表１４】
2006072980.tif 000019
【００７３】
（例示的なレンダリングオブジェクトの拡張１０：レポート）
レポートオブジェクトは、レポート用のどの追加プロパティも提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００７４】
【表１５】
2006072980.tif 000020
【００７５】
（例示的なレンダリングオブジェクトの拡張１１：レポートレイアウト）
レポートレイアウトオブジェクトは、サポートされるレポートレイアウト用のどの追加プロパティも提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００７６】
【表１６】
2006072980.tif 000021
【００７７】
（例示的なレンダリングオブジェクトの拡張１２：グループ）
グループオブジェクトは、グループ用のどの追加プロパティも提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００７８】
【表１７】
2006072980.tif 000022
【００７９】
（例示的なレンダリングオブジェクトの拡張１３：カスタムプロパティコレクション）
カスタムプロパティコレクションオブジェクトは、レポート、レポートレイアウト、またはグループ用のカスタムプロパティのリストを提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００８０】
【表１８】
2006072980.tif 000023
【００８１】
（例示的なレンダリングオブジェクトの拡張１４：カスタムプロパティ）
カスタムプロパティオブジェクトは、レポート、レポートレイアウト、またはグループ用のカスタムプロパティを提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００８２】
【表１９】
2006072980.tif 000024
【００８３】
（例示的なレンダリングオブジェクトの拡張１５：変更タイプエニュメレーション(enumeration)）
変更タイプエニュメレーションオブジェクトは、カスタムレポートレイアウトに対する変更のタイプも、カスタムレポートレイアウト用のイベントハンドラも定義することができる。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００８４】
【表２０】
2006072980.tif 000025
【００８５】
（例示的なレンダリングオブジェクトの拡張１６：画像マップレイアウト）
画像マップレイアウトオブジェクトは、画像マップ中の領域を提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００８６】
【表２１】
2006072980.tif 000026
【００８７】
（例示的なレンダリングオブジェクトの拡張１７：画像マップポイントコレクション）
画像マップレイアウトオブジェクトは、画像マップレイアウトポイントのリストを提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００８８】
【表２２】
2006072980.tif 000027
【００８９】
（例示的なレンダリングオブジェクトの拡張１８：ドロップダウン値コレクション）
ドロップダウン値コレクションオブジェクトは、ドロップダウン用に可能な値のリストを提供し得る。ドロップダウンは、コレクション中に（タイプオブジェクトの）名称および値両方を有する。名称は、ユーザに示されることができ、値は、後で説明されるオンバリュー変更イベント用に得られる値として用いられることができる。
【００９０】
（例示的なレンダリングオブジェクトの拡張１９：値コレクション）
値コレクションオブジェクトは、レポートレイアウト用のデータ値のリストを提供し得る。関連プロセスは、以下の例示的なプロパティを認識することができる。
【００９１】
【表２３】
2006072980.tif 000028
【００９２】
上で説明されたのは、インターフェイス７２３用の潜在的プロパティ、メソッド、およびサポートプロセスの拡張である。インターフェイスに関連づけられ得る別の１組の特徴は、インターフェイス７２３によって提供され得るイベントである。概して、何かが起こったというイベントが、オブジェクトとの通信を可能にする。起こることは、どのようなことでもよい。ただし、本発明のシステムおよび方法と関連して使用するのに有用な１組のイベントが確定されている。本発明は、ここで説明される特定のどのイベントの使用にも、イベントの企図される実装形態にも限定されない。そうではなく、以下のイベントは、本発明の完全な開示に対する法定要件に従うように提示される。
【００９３】
イベントは、インターフェイス７２３におけるイベントメソッドを介してカスタムレポートレイアウト制御７６０に渡され得る。任意の名前を与えられた次のイベントが渡され得る。
【００９４】
ＯｎＣｌｉｃｋ：ボタンのクリック、画像マップなどに対して用いられ得るイベント。ＯｎＣｌｉｃｋイベントは、ユーザが、クリックイベントを受け取るために印をつけられているレポートレイアウトをクリックするとコールされ得る。このようなイベントに応答して、カスタムレポートレイアウト制御７６０は、クリックに基づいてレンダリングされる新しいレンダリングレイアウトを（必要とされる場合）修正することも作成することもできる。このイベントとともに提供され得る例示的な引数は、次の通りである。
【００９５】
【表２４】
2006072980.tif 000029
【００９６】
ＯｎＤｏｕｂｌｅＣｌｉｃｋ：ボタンのクリック、画像マップなどに対して用いられ得るイベント。オンダブルクリックイベントは、ユーザが、クリックイベントを受け取るために印をつけられているレポートレイアウトをダブルクリックするとコールされ得る。カスタムレポートレイアウト制御７６０は、ダブルクリックに基づいてレンダリングされる新しいレンダリングレイアウトを（必要とされる場合）修正し、または作成するように構成され得る。このイベントとともに提供され得る例示的な引数は、次の通りである。
【００９７】
【表２５】
2006072980.tif 000030
【００９８】
OnValueChange：ライトバック、ドロップダウン選択などに対して用いられ得るイベント。オンバリュー変更イベントは、ユーザがレポートレイアウトの値を（たとえばテキストボックスの編集またはドロップダウンでの値の選択を介して）修正するとコールされる。カスタムレポートレイアウト制御は、値の変更に基づいてレンダリングされる新しいレンダリングレイアウトを（必要とされる場合）修正し、または作成するように構成され得る。このイベントとともに提供され得る例示的な引数は、次の通りである。
【００９９】
【表２６】
2006072980.tif 000031
【０１００】
ＯｎＭｏｖｅ：テーブル列の再編成、行列の再ピボットなどに対して用いられ得るイベント。オンムーブイベントは、ユーザが、ドラッグ可能なレポートレイアウトを、有効なドロップ目標である別のレポートレイアウトにドラッグするとコールされ得る。カスタムレポートレイアウト制御７６０は、ドラッグ／ドロップに基づいてレンダリングされる新しいレンダリングレイアウトを（必要とされる場合）修正し、または作成するように構成され得る。このイベントとともに提供され得る例示的な引数は、次の通りである。
【０１０１】
【表２７】
2006072980.tif 000032
【０１０２】
レンダリングオブジェクト７２０中のレポートレイアウトプロパティは、どのレポートレイアウトがどのイベントに応答するかを制御するのに用いられ得る。たとえば、次の例示的なレポートレイアウトプロパティが用いられ得る。
【０１０３】
【表２８】
2006072980.tif 000033
【０１０４】
以下の例示的なマウスボタンのエニュメレーションが、イベントとともに、どのマウスボタンがクリックされたかを示すのに用いられ得る。この例では、同時に行われた複数のクリックは、エニュメレーションの中で最初に合致するレイアウトを生じ得る。
【０１０５】
【表２９】
2006072980.tif 000034
【０１０６】
（例示的な設計ツール）
本発明を用いると、サポートされるレポートレイアウト用に利用可能であり得るどのレポート作成ソフトウェア特徴も、カスタムレイアウトに対しても利用可能にされ得る。上述したように、カスタムレイアウト定義は、レポート処理ソフトウェアに対して認識可能であるように、最初に１組のレポート定義基準を満たすことができる。このようなカスタムレイアウト定義を作成するのに用いられ得る設計ツールが提供される。このような設計ツールは、レポート処理ソフトウェア用の定義基準を満たすカスタムレポート定義の作成支援をもたらす任意のツールである。設計ツールの様々な有利な特徴が、本明細書において説明される。本発明は、こうした特徴に限定されない。
【０１０７】
図４は、本発明の他の様々な態様に関連する設計ツール４５５を示す。設計ツール４５５内部のボックスは、カスタムレポートレイアウト設計制御４５６を表す。このカスタム設計制御は、カスタムレポートビルダ４９２とともに実装され得る。カスタム制御４５６は、カスタムレポートビルダ４９２によって課されるどの追加基準も満たすカスタムレイアウト定義の設計を支援することができる。したがって、第１組の基準が、設計ツール４５５においてネイティブサポートされることができ、レポート処理ソフトウェア４１０の要件を満たすカスタムレイアウトの設計支援を可能にする。第２組の基準が、カスタム設計制御４５６によってさらにサポートされることができ、カスタムレポートビルダ４９２の要件を満たすカスタムレイアウトの設計支援を可能にする。
【０１０８】
登録ファイルが、カスタム設計制御４５６に関する有用な情報を維持するために、デザイナー４５５によって保持され得る。この登録情報は、カスタム設計制御４５６用のアセンブリおよびクラス情報を入手するのに用いられ得る。以下は、登録ファイル中の例示的なエントリである。
【０１０９】
【表３０】
2006072980.tif 000035
【０１１０】
設計ツール４５５が、カスタム設計制御９５６、９５７、９５８を可能にするように構成される実装形態において、カスタム設計制御９５６、９５７、９５８が設計ツール４５５の関数にアクセスすることを可能にするためのインターフェイスが提供され得る。設計ツールのこのような実施形態が、図９に示されている。以下は、このようなインターフェイス９６０の例示的な特徴である。すなわち、インターフェイスは、カスタムレポートレイアウト設計制御９５６、９５７、９５８がツールボックスアイコンを提供することを要求し得る。インターフェイスは、カスタムレポートレイアウト設計制御９５６、９５７、９５８がシリアライズ／デシリアライズメソッドをサポートすることを要求し得る。インターフェイスは、カスタムレポートレイアウト設計制御９５６、９５７、９５８にレイアウト情報を書くためのデバイス状況を提供し得る。この機能は、チャートドロップエリアおよびテーブルの行／列選択バーのようなものをサポートするようにアクティブである場合、制御９５６、９５７、９５８がより大きい描画／イベントエリアを要求する機能を含み得る。インターフェイスは、設計ツール４５５がカスタムレポートレイアウト設計制御９５６、９５７、９５８にすべてのＵＩイベントを渡すよう要求し得る。この機能は、標準（およびカスタム）制御をカスタム制御内にネストするドラッグ／ドロップイベントを含み得る。インターフェイスは、カスタムレポートレイアウト設計制御９５６、９５７、９５８が、デザイナーツールバーからのイベントを受諾する（たとえば、フォーマット化）ように登録を行うことを可能にし得る。インターフェイスは、カスタムレポートレイアウト設計制御９５６、９５７、９５８がコンテキストメニューレイアウトを登録することを可能にし得る。インターフェイスは、カスタムレポートレイアウト設計制御９５６、９５７、９５８に、プロパティ（たとえば、有効な値の名称、タイプ、説明、リスト）を登録させて、制御が選択されたとき、プロパティブラウザにおけるそうしたプロパティの編集を可能にすることができる。
【０１１１】
（例示的な計算機およびネットワーク環境）
図２ａを参照して、本発明のシステムおよび方法に関連した使用に適した例示的なコンピューティングデバイス２００が広範に説明される。ごく基本的な構成において、デバイス２００は通常、処理ユニット２０２およびメモリ２０３を含む。コンピューティングデバイスの正確な構成およびタイプに応じて、メモリ２０３は、揮発性（たとえばＲＡＭ）でも、不揮発性（たとえばＲＯＭ、フラッシュメモリなど）でも、この２つの何らかの組合せでもよい。さらに、デバイス２００は、磁気または光ディスクやテープなどの大容量記憶装置（取外し式記憶装置２０４および／または固定式記憶装置２０５）も有し得る。同様に、デバイス２００は、キーボードおよびマウスなどの入力デバイス２０７、ならびに／またはコンピューティングデバイス２００の機能にアクセスするグラフィック補助としてＧＵＩを提示するディスプレイなどの出力デバイス２０６も有し得る。デバイス２００の他の側面は、有線または無線媒体いずれかを使用する他のデバイス、コンピュータ、ネットワーク、サーバなどとの通信接続２０８を含み得る。こうしたすべてのデバイスは、当該分野において公知であり、ここで詳細に説明される必要はない。
【０１１２】
図２ｂは、図２ａの適切なコンピューティングデバイスおよび周辺システムの、比較的詳細な例を示す。計算機システム環境２２０は、適切な計算機環境の一例に過ぎず、本発明の使用または機能の範囲に対するどのような限定を示唆することも意図していない。計算機環境２２０は、例示的な動作環境２２０に示されるどのコンポーネントまたはその組合せに関するどのような依存も要件も有していると解釈されるべきでない。
【０１１３】
本発明は、他の数多くの汎用または専用の通信環境または構成と動作可能である。本発明とともに使用するのに適切であり得る他の公知の計算システム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ型デバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれをも含む分散型計算機環境などを含むが、それに限定されない。
【０１１４】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的なコンテキストにおいて実装され得る。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実施される分散型計算機環境でも実施され得る。分散型計算機環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルおよびリモートコンピュータ記憶媒体両方に置かれ得る。
【０１１５】
図２ｂを参照すると、本発明を実施する例示的なシステムは、汎用コンピューティングデバイスを、コンピュータ２４１の形で含む。コンピュータ２４１のコンポーネントは、処理ユニット２５９と、システムメモリ２２２と、システムメモリなど様々なシステムコンポーネントを処理ユニット２５９に結合するシステムバス２２１とを含み得るが、それに限定されない。システムバス２２１は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（米国ビデオ電子装置規格化協会）ローカルバス、メザニンバスとしても知られるＰＣＩ（周辺装置相互接続）バスを含む。
【０１１６】
コンピュータ２４１は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ２４１によってアクセスされ得るとともに揮発性媒体および不揮発性媒体、取外し式媒体および固定式媒体両方を含む、市販されているどの媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのどの方法でも技術でも実施される揮発性媒体および不揮発性媒体、取外し式媒体および固定式媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、所望の情報を格納するのに使われ得るとともにコンピュータ２４１によってアクセスされ得る他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、変調データ信号、たとえば搬送波や他の移送機構として具体化し、どの情報配信媒体も含む。「変調データ信号」という用語は、信号中の情報を符号化するようなやり方で設定されまたは変更される信号特性の１つまたは複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ可読媒体の範囲に含まれるべきである。
【０１１７】
システムメモリ２２２は、コンピュータ記憶媒体を、ＲＯＭ（読出し専用メモリ）２２３およびＲＡＭ（ランダムアクセスメモリ）２６０など、揮発性および／または不揮発性メモリの形で含む。ＢＩＯＳ（基本入出力システム）２２４は、たとえば起動中にコンピュータ２４１内部の要素間での情報の転送を助ける基本ルーチンを含み、通常はＲＯＭ２２３に格納される。ＲＡＭ２６０は一般に、処理ユニット２５９に対してただちにアクセス可能な、かつ／または処理ユニット２５９によって現在操作されているデータおよび／またはプログラムモジュールを含む。限定ではなく例として、図２ｂは、オペレーティングシステム２２５、アプリケーションプログラム２２６、他のプログラムモジュール２２７、およびプログラムデータ２２８を示す。
【０１１８】
コンピュータ２４１は、他の取外し式／固定式、揮発性／不揮発性コンピュータ記憶媒体も含み得る。単なる例として、図２ｂは、固定式不揮発性磁気媒体からの読出しまたはそこへの書込みを行うハードディスクドライブ２３８、取外し式な不揮発性磁気ディスク２５４からの読出しまたはそこへの書込みを行う磁気ディスクドライブ２３９、および、ＣＤ  ＲＯＭや他の光学媒体など取外し式な不揮発性光ディスク２５３からの読出しまたはそこへの書込みを行う光ディスクドライブ２４０を示す。例示的な動作環境で使われ得る、他の取外し式／固定式、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体状態ＲＡＭ、固体状態ＲＯＭなどを含むが、それに限定されない。ハードディスクドライブ２３８は通常、インターフェイス２３４などの固定式メモリインターフェイスによって、システムバス２２１に接続され、磁気ディスクドライブ２３９および光ディスクドライブ２４０は通常、インターフェイス２３５などの取外し式メモリインターフェイスによって、システムバス２２１に接続される。
【０１１９】
上述した、図２ｂに示されているディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ２４１のための他のデータの格納を可能にする。図２ｂでは、たとえば、ハードディスクドライブ２３８は、オペレーティングシステム２５８、アプリケーションプログラム２５７、他のプログラムモジュール２５６、およびプログラムデータ２５５を格納するものとして示される。こうしたコンポーネントは、オペレーティングシステム２２５、アプリケーションプログラム２２６、他のプログラムモジュール２２７、およびプログラムデータ２２８と同じでも異なってもよいことに留意されたい。オペレーティングシステム２５８、アプリケーションプログラム２５７、他のプログラムモジュール２５６、およびプログラムデータ２５５は、少なくとも異なるものであることを示すために、ここでは異なる番号が与えられている。ユーザは、キーボード２５１、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス２５２を介して、コマンドおよび情報をコンピュータ２４１に入力することができる。他の入力デバイス（図示せず）は、マイクロホン、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどを含み得る。こうしたおよび他の入力デバイスはしばしば、システムバスに結合されるユーザ入力インターフェイス２３６を介して処理ユニット２５９に接続されるが、パラレルポート、ゲームポート、ＵＳＢ（ユニバーサルシリアルバス）など、他のインターフェイスおよびバス構造によって接続されることもできる。モニタ２４２または他のタイプの表示デバイスも、ビデオインターフェイス２３２などのインターフェイスを介してシステムバス２２１に接続される。モニタに加え、コンピュータは、出力周辺インターフェイス２３３を介して接続され得るスピーカ２４４およびプリンタ２４３など、他の周辺出力デバイスも含み得る。
【０１２０】
コンピュータ２４１は、リモートコンピュータ２４６など、１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク接続された環境において動作することができる。リモートコンピュータ２４６は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードでよく、通常、コンピュータ２４１に関連して上述された要素の多くまたはすべてを含むが、図２ｂにはメモリ記憶装置２４７のみが示されている。図２ｂに示される論理接続は、ＬＡＮ（ローカルエリアネットワーク）２４５およびＷＡＮ（ワイドエリアネットワーク）２４９を含むが、他のネットワークも含み得る。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
【０１２１】
ＬＡＮネットワーク環境において使われる場合、コンピュータ２４１は、ネットワークインターフェイスまたはアダプタ２３７を介してＬＡＮ２４５に接続される。ＷＡＮネットワーク環境において使われる場合、コンピュータ２４１は通常、モデム２５０、または、たとえばインターネットなどのＷＡＮ２４９を介して通信を確立する他の手段を含む。モデム２５０は、内部にあっても外部にあってもよく、ユーザ入力インターフェイス２３６または他の適切な機構を介してシステムバス２２１に接続され得る。ネットワーク接続された環境では、コンピュータ２４１に関連して図示されるプログラムモジュールまたはその一部は、リモートメモリ記憶装置に格納され得る。限定ではなく例として、図２ｂは、リモートアプリケーションプログラム２４８を、メモリ装置２４７に常駐するものとして示す。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使われ得ることが理解されよう。
【０１２２】
本明細書において記載した様々な技術は、ハードウェアまたはソフトウェア、あるいはそうすることが適切な場合には、その両方の組合せとともに実装され得ることが理解されるべきである。したがって、本発明の方法および装置、あるいは本発明の特定の態様または部分は、実体のある媒体、たとえばフロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または他のどのマシン可読記憶媒体においても実施されるプログラムコード（すなわち、命令）の形をとることができ、プログラムコードがコンピュータなどのマシンにロードされるとともにそれによって実行されると、マシンは本発明を実施する装置となる。プログラム可能なコンピュータ上でのプログラムコードの実行の場合、コンピューティングデバイスは概して、プロセッサ、プロセッサによって読取り可能な記憶媒体（揮発性、不揮発性メモリおよび／または記憶要素など）、少なくとも１つの入力デバイス、ならびに少なくとも１つの出力デバイスを含む。１つまたは複数のプログラムが、本発明に関連して記述されたプロセスを、たとえば、ＡＰＩ、再使用可能な制御などを使用することにより、実装することも使用することもできる。このようなプログラムは好ましくは、コンピュータシステムと通信するように、高度な手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装される。ただし、プログラム（群）は、そうすることが望まれる場合、アセンブリでも機械言語でも実装されることができる。いずれの場合でも、言語は、コンパイル型言語でもインタープリト型言語でもよく、ハードウェアの実装と組み合わされ得る。
【０１２３】
例示的な実施形態は、１つまたは複数のスタンドアロンコンピュータシステムというコンテキストにおける本発明の使用に言及しているが、本発明は、そのように限定されるのではなく、ネットワークや分散型計算機環境など、どの計算機環境に関連しても実装され得る。さらに、本発明は、複数の処理チップまたはデバイス内でも、そうした複数のチップまたはデバイスに渡っても実装されることができ、記憶装置も同様に、複数のデバイスに渡って実現され得る。このようなデバイスは、パーソナルコンピュータ、ネットワークサーバ、ハンドヘルドデバイス、スーパーコンピュータ、または自動車および航空機など、他のシステムに統合されたコンピュータを含むことができよう。
【０１２４】
ネットワーク接続された例示的な計算機環境が、図２ｃに提示されている。ネットワークは、どのコンピュータも、他のクライアントまたはサーバデバイスも、あるいは分散型計算機環境においても接続し得ることを当業者は理解できよう。この点に関して、任意の数の処理、メモリ、または記憶ユニット、ならびに同時に起こる任意の数のアプリケーションおよびプロセスを有するどのコンピュータシステムも環境も、提供される本システムおよび方法とともに使用するのに適していると見なされる。
【０１２５】
分散コンピューティングは、コンピューティングデバイスとシステムの間のやり取りによって、コンピュータリソースおよびサービスの共有をもたらす。こうしたリソースおよびサービスは、情報の交換、ファイルのキャッシュ記憶およびディスク記憶を含む。分散コンピューティングは、ネットワーク接続性を利用し、クライアントが、その集合的能力を活用して企業全体に利益を与えることを可能にする。この点に関して、様々なデバイスが、本明細書に記載されるプロセスを包含し得るアプリケーション、オブジェクト、またはリソースを有し得る。
【０１２６】
図２ｃは、例示的なネットワーク接続された、または分散型の計算機環境の概略図を提示する。この環境は、コンピューティングデバイス２７１、２７２、２７６、および２７７と、オブジェクト２７３、２７４、および２７５と、データベース２７８とを備える。こうしたエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８はそれぞれ、プログラム、メソッド、データストア、プログラム可能論理などを備えることも使用することもできる。エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は、ＰＤＡ、オーディオ／ビデオデバイス、ＭＰ３プレーヤ、パーソナルコンピュータなど、同じまたは異なるデバイスの複数の部分に及び得る。各エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は、通信ネットワーク２７０を介して、別のエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８と通信することができる。この点に関して、どのエンティティも、データベース２７８または他の記憶要素の維持およびアップデートに責任があり得る。
【０１２７】
このネットワーク２７０自体が、図２ｃのシステムにサービスを提供する他のコンピューティングエンティティを備えることができ、相互接続された多数のネットワークを表すことができる。本発明の態様によると、各エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は、他のエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８の１つまたは複数のサービスを要求するのに、ＡＰＩ、または他のオブジェクト、ソフトウェア、ファームウェアおよび／あるいはハードウェアを使用し得る別個の機能プログラムモジュールを含み得る。
【０１２８】
２７５などのオブジェクトが、別のコンピューティングデバイス２７６に収容され得ることも理解されることができよう。したがって、図示される物理的環境は、接続されたデバイスをコンピュータとして示し得るが、このような図は、例示に過ぎず、ＰＤＡ、テレビ、ＭＰ３プレーヤなどの様々なデジタルデバイス、たとえばインターフェイス、ＣＯＭオブジェクトなどのソフトウェアオブジェクトを備える物理的環境も図示され、または記述され得る。
【０１２９】
分散型計算機環境をサポートする様々なシステム、コンポーネント、およびネットワーク構成がある。たとえば、計算機システムは、有線または無線システムによって、ローカルネットワークまたは広範囲に渡る分散ネットワークによって接続され得る。現在、多くのネットワークが、インターネットに結合され、インターネットは、広範囲に渡る分散コンピューティング用のインフラストラクチャを提供し、異なる多くのネットワークを包含する。このようなどのインフラストラクチャも、インターネットに結合されていてもいなくても、提供される本システムおよび方法とともに用いられ得る。
【０１３０】
ネットワークインフラストラクチャは、クライアント／サーバ、ピアツーピア、またはハイブリッドアーキテクチャなど、多くのネットワークトポロジを可能にし得る。「クライアント」は、それに関連づけられていない別のクラスまたはグループのサービスを利用するクラスまたはグループのメンバである。コンピュータの利用において、クライアントとは、プロセス、すなわち、大雑把には、別のプログラムによって提供されるサービスを要求する１組の命令またはタスクである。クライアントプロセスは、他のプログラムまたはサービス自体についての動作のどの詳細も「知る」必要なく、要求されたサービスを使用する。クライアント／サーバアーキテクチャ、特にネットワーク接続されたシステムでは、クライアントとは通常、別のコンピュータ、たとえばサーバによって提供される、共有されるネットワークリソースにアクセスするコンピュータである。図２ｃの例では、どのエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８も、状況に応じて、クライアント、サーバ、またはその両方と見なされ得る。
【０１３１】
サーバとは通常、インターネットなど、リモートまたはローカルネットワークを介してアクセス可能なリモートコンピュータシステムであるが、必ずしもそうとは限らない。クライアントプロセスは、第１のコンピュータシステムにおいてアクティブになることができ、サーバプロセスは、第２のコンピュータシステムにおいてアクティブになることができ、通信媒体を介して互いに通信することによって、機能を分散させ、多数のクライアントにサーバの情報収集機能を利用させる。どのソフトウェアオブジェクトも、多数のコンピューティングデバイスまたはオブジェクトに渡って分散され得る。
【０１３２】
クライアント（群）およびサーバ（群）は、プロトコル層（群）によって提供される機能を使用して、相互に通信する。たとえば、ＨＴＴＰ（ハイパーテキスト転送プロトコル）が、ＷＷＷ（ワールドワイドウェブ）、すなわち「ウェブ」とともに用いられる共通プロトコルである。通常、ＩＰ（インターネットプロトコル）アドレスなどのコンピュータネットワークアドレス、またはＵＲＬ（全域資源識別子）などの他の参照が、サーバまたはクライアントコンピュータを互いに識別するのに用いられ得る。ネットワークアドレスは、ＵＲＬアドレスと呼ばれ得る。通信は、通信媒体を介して提供されることができ、たとえば、クライアント（群）およびサーバ（群）は、大容量通信用のＴＣＰ／ＩＰ接続（群）を介して相互に結合され得る。
【０１３３】
図２ａおよび図２ｂで提示される一般的なフレームワークに従って構築され得る多様な計算機環境、および図２ｃなどのネットワーク環境におけるコンピュータ使用において起こり得るさらなる多様性を鑑みて、本明細書において提供されるシステムおよび方法は、特定のコンピューティングアーキテクチャに限定されるものと解釈されてはならない。そうではなく、本発明は、どの１つの実施形態にも限定されるべきではなく、添付の特許請求の範囲による範囲内で解釈されるべきである。
【図面の簡単な説明】
【０１３４】
【図１ａ】本発明のシステムおよび方法とともに使用するのに適した、例示的なレポート処理ソフトウェアを示す上位レベルの図である。
【図１ｂ】レポートレイアウトおよびクエリを含むレポート定義ファイルを示す、より詳細な図である。
【図２ａ】本発明の様々な態様に関連して使用するのに適した、例示的なコンピューティングデバイスの基本特徴を広く表すブロック図である。
【図２ｂ】本発明の様々な態様に関連して使用するのに適した、より詳細な例示的コンピューティングデバイスを表すブロック図である。
【図２ｃ】本発明のプロセスを含む、コンピュータ化されたプロセスが実装され得る、ネットワーク接続された例示的な計算機環境を示す図である。
【図３】カスタムレイアウトをサポートすることができない、従来技術によるレポート処理ソフトウェアを示す図である。
【図４】カスタムレイアウトをサポートすることができるレポート処理ソフトウェアの様々な側面を示す図である。カスタムレイアウトビルダにカスタムレイアウトを構成させるインターフェイス４９０が提供される。
【図５ａ】例示的なレポート定義を示す図である。
【図５ｂ】図５ａに示されるレポート定義から生成され得る例示的なレポートレイアウトを示す図である。図示されているレイアウトは、テーブルとして知られる。
【図６ａ】通常はレポート作成ソフトウェアによってサポートされるレイアウトであるが、そうであるとは限らない、例示的な行列レポートレイアウトを示す図である。
【図６ｂ】水平から垂直提示に動的に変化するレポートレイアウトを示す図である。このようなレイアウトは、レポート作成に有用であり得るが、所与のレポート処理ソフトウェアによってサポートされない可能性がある。このレイアウトは、他のどのカスタムレイアウトとも一緒に、本発明のカスタムレイアウトサポート技術を用いてサポートされ得る。
【図７】所与のレポート処理エンジン、例示的なカスタムレポートレイアウト制御、レンダリングオブジェクト、およびインターフェイス、ならびにこうした様々なコンポーネントの間の例示的な相互作用とともに用いられるカスタムレイアウトが満たし得る定義基準を含む、本発明の様々な態様を示す図である。
【図８】オブジェクト指向ソフトウェア設計において一般に使用され、本発明の態様に関連して用いられ得るインターフェイスを有する、例示的なオブジェクトを示す図である。
【図９】カスタムレポートレイアウト設計制御によってアクセスされ得るインターフェイスを有する設計ツールを示す図である。
【図１０】本発明の様々なインターフェイスに関連して記述されるプロセスを実装するのに用いられ得る、例示的なオブジェクトおよびインターフェイスを示す図である。
【符号の説明】
【０１３５】
１００  レポート定義ファイル
１１０  レポート処理ソフトウェア
１１１  データ拡張
１１２  レンダリング拡張
１２０  データソース
１２１  データソース
１３２  その他の形式
１４０  例示的なレポート定義ファイル
１４０ｂ  クエリ
２０２  処理ユニット
２０３  システムメモリ
２０４  取り外し式記憶装置
２０５  固定式記憶装置
２０６  出力デバイス（群）
２０７  入力デバイス（群）
２０８  通信接続（群）
２２０  計算機環境
２２１  システムバス
２２２  システムメモリ
２２５  オペレーティングシステム
２２６  アプリケーションプログラム
２２７  他のプログラムモジュール
２２８  プログラムデータ
２３０  ビデオメモリ
２３１  グラフィックスインターフェイス
２３２  ビデオインターフェイス
２３３  出力周辺インターフェイス
２３４  固定式不揮発性メモリインターフェイス
２３５  取外し式不揮発性メモリインターフェイス
２３６  ユーザ入力インターフェイス
２３７  ネットワークインターフェイス
２４２  モニタ
２４３  プリンタ
２４４  スピーカ
２４５  ローカルエリアネットワーク
２４６  リモートコンピュータ
２４８  リモートアプリケーションプログラム
２４９  ワイドエリアネットワーク
２５０  モデム
２５１  キーボード
２５２  ポインティングデバイス
２５５  プログラムデータ
２５６  他のプログラムモジュール
２５７  アプリケーションプログラム
２５８  オペレーティングシステム
２５９  処理ユニット
２７０  通信ネットワーク／バス
２７１  コンピューティングデバイス
２７２  コンピューティングデバイス
２７３  オブジェクト
２７６  コンピューティングデバイス
２７７  コンピューティングデバイス
２７８  データベース
３１０  レポート処理ソフトウェア
３１１  データ拡張
３１２  レンダリング拡張
３２０  データソース
３２１  データソース
３３２  その他の形式
３４０  サポートされるレポートレイアウト
３４０ａ  クエリ
３４０ｂ  クエリ
３４０ｃ  クエリ
３５０  サポートされないレポートレイアウト
３５０ａ  クエリ
３５０ｂ  クエリ
３５０ｃ  クエリ
３７０  サポートされるレイアウト用のレポートビルダ
３８０  レポート構築コンポーネント
４１０  レポート処理ソフトウェア
４１１  データ拡張
４１２  レンダリング拡張
４２０  データソース
４２１  データソース
４３２  その他の形式
４４０  サポートされるレポートレイアウト
４４０ａ  クエリ
４４０ｂ  クエリ
４４０ｃ  クエリ
４５０  カスタムレポートレイアウト
４５０ａ  クエリ
４５０ｂ  クエリ
４５０ｃ  クエリ
４７０  サポートされるレイアウト用のレポートビルダ
４８０  レポート構築コンポーネント
４９１  カスタムレポートビルダ
４９２  カスタムレポートビルダ
７００  レポート処理エンジン
７１０  レポート処理
７２０  レンダリングオブジェクト
７２３  インターフェイス
７３０  データソース
７４０  レンダラ
７５０  レポート定義
７５５  定義基準
７６０  カスタムレポートレイアウト制御
８００  オブジェクト
８０２  インターフェイス
８０３  インターフェイス
８０４  インターフェイス
８０５  メソッド
９５５  設計ツール
【図１ａ】
2006072980.tif 000036
【図１ｂ】
2006072980.tif 000037
【図２ａ】
2006072980.tif 000038
【図２ｂ】
2006072980.tif 000039
【図２ｃ】
2006072980.tif 000040
【図３】
2006072980.tif 000041
【図４】
2006072980.tif 000042
【図５ａ】
2006072980.tif 000043
【図５ｂ】
2006072980.tif 000044
【図６ａ】
2006072980.tif 000045
【図６ｂ】
2006072980.tif 000046
【図７】
2006072980.tif 000047
【図８】
2006072980.tif 000048
【図９】
2006072980.tif 000049
【図１０】
2006072980.tif 000050