(57)【要約】【課題】  レポートをデザインするシステムおよび方法を提供する。【解決手段】  レポートの列および／または行を、動的または静的と宣言的に定義することができる。宣言的な定義は、任意のマーク付けによって表すことができる。列または行が動的と宣言的に定義された場合、その列または行は、複数の列または行に拡大されることができる。列または行が静的と制定された場合、その列または行は、１つの列または行のままとなり、指定されたその列のデータまたは行のデータのみを表す。列および行の下位グループも動的または静的と宣言的に定義することができる。静的な列または行は、下位列／下位行を含まないか、複数の静的な列／行、複数の動的な列／行、またはその両方の組合せを含むことができる。同様に、動的な列または行も上記の組合せを含むことができる。【選択図】  図６
2006012145.tif 000002
【特許請求の範囲】
【請求項１】
レポートをデザインする方法であって、
レポートデザインにおいて、少なくとも１つの列に中に配置するデータを宣言するステップであって、前記宣言は、前記レポートのデータを収容するために前記少なくとも１つの列が必要に応じて複数の列に拡大されることができるか否かを表示する宣言マーク付けを含むことと、
前記レポートデザインにおいて、少なくとも１つの行の中に配置するデータを宣言するステップであって、前記宣言は、前記レポートのデータを収容するために前記少なくとも１つの行が必要に応じて複数の行に拡大されることができるか否かを表示する宣言マーク付けを含むことと、
前記レポートデザインにおいて、少なくとも１つの入れ子になった行の中に配置するデータを宣言するステップであって、前記宣言は、前記レポートのデータを収容するために前記少なくとも１つの入れ子になった行が必要に応じて複数の入れ子になった行に拡大されることができるか否かを表示する宣言マーク付けを含むことと、
を備えることを特徴とする方法。
【請求項２】
少なくとも１つの列に配置するデータを宣言する前記ステップと、少なくとも１つの行に配置するデータを宣言する前記ステップは、前記レポートデザインをグラフィックとして表現するグラフィックユーザインタフェース（ＧＵＩ）を介してデータを入力するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
少なくとも１つの列に配置するデータを宣言する前記ステップと、少なくとも１つの行に配置するデータを宣言する前記ステップは、拡張可能マークアップ言語（ＸＭＬ）による宣言を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記宣言マーク付けは、ＸＭＬスキーマ文書において定義される標準的なマーク付けを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記レポートデザインにおいて、少なくとも１つの入れ子になった列の中に配置するデータを宣言するステップであって、前記宣言は、前記レポートのデータを収容するために前記少なくとも１つの入れ子になった列が必要に応じて複数の入れ子になった列に拡大されることができるか否かを表示する宣言マーク付けを含むことをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
複数の列に表されるデータの範囲を指定することにより、前記複数の列への列の拡大に制限を与えるステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
複数の行に表されるデータの範囲を指定することにより、前記複数の行への行の拡大に制限を与えるステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
レポートを処理する命令を有するコンピュータ読取り可能媒体であって、前記命令は、
レポートデザインを読み取る命令と、
前記レポートデザイン中の宣言マーク付けを認識する命令であって、前記宣言マーク付けは、少なくとも１つの列に関連付けられ、前記宣言マーク付けは、前記レポートのデータを収容するために、前記少なくとも１つの列が必要に応じて複数の列に拡大されることができるかどうかを表示することと、
前記少なくとも１つの列に関連付けられた前記宣言マーク付けが認識されると、前記レポートのデータを収容するために必要に応じて複数の列を生成する命令と、
少なくとも１つの入れ子になった列に関連付けられた宣言マーク付けを認識する命令であって、前記宣言マーク付けは、前記レポートのデータを収容するために、前記少なくとも１つの入れ子になった列が必要に応じて複数の入れ子になった列に拡大されることができるかどうかを表示することと、
前記少なくとも１つの入れ子になった列に関連付けられた前記宣言マーク付けが認識されると、前記レポートのデータを収容するために必要に応じて前記複数の入れ子になった列を生成する命令と、
前記レポートデザイン中の宣言マーク付けを認識する命令であって、前記宣言マーク付けは、少なくとも１つの行に関連付けられ、前記宣言マーク付けは、前記レポートのデータを収容するために、前記少なくとも１つの行が必要に応じて複数の行に拡大されることができるかどうかを表示することと、
前記少なくとも１つの行に関連付けられた前記宣言マーク付けが認識されると、前記レポートのデータを収容するために必要に応じて複数の行を生成する命令と、
を備えることを特徴とするコンピュータ読取り可能媒体。
【請求項９】
前記レポートデザインにおいて指定されたデータをデータソースから取り出す命令をさらに備えることを特徴とする請求項８に記載のコンピュータ読取り可能媒体。
【請求項１０】
レポートを生成する命令をさらに備えることを特徴とする請求項８に記載のコンピュータ読取り可能媒体。
【請求項１１】
ＧＵＩ上に視覚的に表されるレポートデザインに、宣言マーク付けを入力することを可能にする前記ＧＵＩを提供する命令をさらに備えることを特徴とする請求項８に記載のコンピュータ読取り可能媒体。
【請求項１２】
少なくとも１つの入れ子になった行に関連付けられた宣言マーク付けを認識する命令であって、前記宣言マーク付けは、前記レポートのデータを収容するために、前記少なくとも１つの入れ子になった行が必要に応じて複数の入れ子になった行に拡大されることができるかどうかを表示する命令と、前記複数の入れ子になった行を生成する命令とをさらに備えることを特徴とする請求項８に記載のコンピュータ読取り可能媒体。
【請求項１３】
前記レポートデザインは、ＸＭＬファイルからなることを特徴とする請求項８に記載のコンピュータ読取り可能媒体。
【請求項１４】
列の拡大に対する制限を認識する命令をさらに備え、そのような制限が認識された場合、前記必要に応じて複数の列を生成することは、列の拡大に対する前記制限の中で指定されたデータを収容する列のみを生成することを含むことを特徴とする請求項８に記載のコンピュータ読取り可能媒体。
【請求項１５】
行の拡大に対する制限を認識する命令をさらに備え、そのような制限が認識された場合、前記必要に応じて複数の行を生成することは、行の拡大に対する前記制限の中で指定されたデータを収容する行のみを生成することを含むことを特徴とする請求項８に記載のコンピュータ読取り可能媒体。
【請求項１６】
動的および静的な列および行を表示する宣言マーク付けを使用してレポートをデザインする手段であって、
レポートデザインを作成する手段と、
前記レポートデザイン中において列をマーク付けする手段であって、マーク付けされると、前記列は動的な列と宣言され、動的な列はレポート処理ソフトウェアによって複数の列に拡大されることができる手段と、
前記レポートデザイン中において入れ子になった列をマーク付けする手段であって、マーク付けされると、前記入れ子になった列は動的な入れ子になった列と宣言され、動的な入れ子になった列はレポート処理ソフトウェアによって複数の入れ子になった列に拡大されることができる手段と、
前記レポートデザイン中において行をマーク付けする手段であって、マーク付けされると、前記行は動的な行と宣言され、動的な行はレポート処理ソフトウェアによって複数の行に拡大されることができる手段と、
を備えることを特徴とする手段。
【請求項１７】
レポートデザインを作成する前記手段は、コンピュータ実行可能命令を有するコンピュータ読取り可能媒体を備えることを特徴とする請求項１６に記載のレポートデザイン手段。
【請求項１８】
レポートデザインを作成する前記手段は、レポート作成者に視覚的なレポートデザインを表示するグラフィカルユーザインタフェースを表示する手段をさらに含むことを特徴とする請求項１６に記載のレポートデザイン手段。
【請求項１９】
前記レポートデザインに対応するＸＭＬファイルを生成する手段をさらに備えることを特徴とする請求項１６に記載のレポートデザイン手段。
【請求項２０】
前記マーク付けの手段は、ＸＭＬスキーマ文書において定義される標準的なマーク付けを含むことを特徴とする請求項１９に記載のレポートデザイン手段。
【請求項２１】
前記レポートデザイン中において入れ子になった行をマーク付けする手段であって、マーク付けされると、前記入れ子になった行は動的な入れ子になった行と宣言され、動的な入れ子になった行はレポート処理ソフトウェアによって複数の入れ子になった行に拡大されることができることをさらに備えること特徴とする請求項１６に記載のレポートデザイン手段。
【請求項２２】
複数の列への列の拡大に制限を与える手段をさらに備えることを特徴とする請求項１６に記載のレポートデザイン手段。
【請求項２３】
複数の行への行の拡大に制限を与える手段をさらに備えることを特徴とする請求項１６に記載のレポートデザイン手段。
【請求項２４】
前記レポートデザインにおいて指定されるデータをデータソースから取り出す手段をさらに備えることを特徴とする請求項１６に記載のレポートデザイン手段。
【請求項２５】
レポートを生成する手段をさらに備えることを特徴とする請求項１６に記載のレポートデザイン手段。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レポートの生成に関し、より詳細にはコンピュータ化されたプロセスでデータを取り込むことができるレポートデザインを作成する技術に関する。この技術は、レポートデザインの柔軟さ、および、デザインを生成し理解する場合の容易さの両方を実現可能にする。
【背景技術】
【０００２】
（著作権表示と許諾）
本明細書の開示の一部には、著作権保護の対象となる題材が含まれる場合がある。本明細書あるいは特許開示は、米国特許庁のファイルあるいはレコードに掲載されるため、著作権所有者はいかなる者がこれを複製することにも異議を持たない。しかし、その他の点においてはすべての著作権を保有する。次の表示をこの文書に適用するものとする。Copyright C 2004, Microsoft Corp.
【０００３】
どの企業においても、時間の経過とともにいろいろな局面に関連するデータが蓄積されてゆく。このデータを使用して、企業の状況を報告することができる。例えば、販売企業に関しては、販売員、顧客、販売員の担当地域、顧客の地域、販売額、販売された商品の数量、販売の日付、販売商品の配送日などを含む各商品の販売に関連する販売データが蓄積される。このような販売データに基づいて、年毎、月毎、年別の顧客毎、四半期別の商品毎、配送日別の販売員毎、週別の地域毎などに、販売の詳細を記述したレポートを生成することができる。
【０００４】
レポートに取り込まれるデータは、通常はデータベースの中に蓄積される。ここで使用される用語「データベース」とは、デジタル方式で記憶されるデータの保管場所である。データベースのデータをフィルタリングして、レポートのために正しく編成された列と行に入れるために、レポートデザインにおいて、データベースの中からレポート作成者は所望の特定のデータを指定することができる。例えば、レポート作成者は、レポートの最初の列を「販売員名」にすることを指定することができる。
【０００５】
レポート作成者は、次いで、レポートデザインの最初の列（販売員名）に指示されるフィールドを認識するプログラムを書き、すべての販売員名をデータベースに問い合わせ、販売員名を次々にレポートの最初の列に入れていく。レポート作成者は、この作業を実行する独自のプログラムを書く代わりに、この機能を提供する商用ソフトウェアを使用することができる。そのようなソフトウェアにおいては、レポート作成者は、単純に最初のレポート列に入れたいデータのタイプをレポートデザインに指定することができる。商用ソフトウェアは、次いでレポートデザインを自動的に分析し、データベースを照会し、レポートの最初の列に要求されるデータを入れる。レポートの中のいくつの列および／または行に対しても、商用製品によってこの動作を実現することができる。
【０００６】
図２は、典型的なレポートデザインを示す。この典型的なレポートデザインは、販売員の列２０１、１９９０年の売上高の列２０２、および総売上高の列２０５を提供する。このレポートデザインは、データベースから対応するデータを引き出して実際のレポートに取り込む支援ソフトウェアに渡すことができる。そのような実際のレポートの外観の一例を図３に示す。図３は、データが取り込まれた販売員の列３０１、データが取り込まれた１９９０年の売上高データの列３０２、および、データが取り込まれた総売上高の列３０５を示している。
【０００７】
図５は、レポートデザインに適切なデータを取り込む典型的なレポート処理ソフトウェアを示す。レポート処理ソフトウェア５１０は、例えばデータベースなどの複数のデータソース５２０、５２１に記憶されたデータを正しく解釈する複数のデータ拡張を備えることができる。レポート処理ソフトウェアは、例えばＨＴＭＬ（ハイパーテキストマークアップ言語）５３０、ＸＭＬ（拡張可能マークアップ言語）５３１、あるいは何らかの他のファイル形式５３２など、レポートを適切なファイル形式で出力するためのいくつかのレンダリング拡張５１２も備えることができる。本明細書でレポート定義とも称されるレポートデザイン５００がレポート処理ソフトウェアによって使用されて、データソース５２０、５２１からデータを収集し、そのデータを適切な構造のレポートにまとめ、レポートを任意のファイル形式５３０、５３１、５３２で出力する。このプロセスについては、特許文献１に、より詳細に記載されている。同出願は、参照により全体が本明細書に組み込まれる。
【０００８】
様々に異なるデータタイプとデータ量に対しては、異なるレポートがデザインされる。一部のレポートはかなり単純であるのに対し、他のレポートは複数のタイプのデータを示し、データ間に複雑な関係を示す場合がある。一般的な列のデータ関係の例として、図１を参照すると、最初の列の１つのフィールド、例えばＡｃｍｅ１０１ａは、１０２ａ、１０２ｂ、１０２ｃなど２番目の列のいくつかのフィールドに関連付けられることができる。これを実現するには、レポート処理ソフトウェアは、レポートの各種フィールドにデータを正しく配置することができなくてはならない。Ｂｏｂの割引１０１ｂは、Ａｃｍｅ１０１ａのすぐ下のセルに表示されてはならず、代わりに、Ｂｏｂの割引１０１ｂは、Ｂｏｂの割引データ、例えば１０２ｄ、１０２ｅ、１０２ｆと視覚的に対応する正しい位置になければならない。したがって、レポート処理ソフトウェアは、単に列と行にまとめてデータを入れるよりもインテリジェントな方式でレポートにデータを取り込まなければならない。この例は、レポートデザインの潜在的な複雑性のほんの一面であり、その全体の範囲は、当業者に理解されるだろう。実際のレポートの外観は単純に見える場合があるが、要求されるデザインの多様性と様々に異なる方式でデザインされたレポートに正確にデータを取り込む必要性から、商用ソフトウェアによってレポートデザインを支援する技術は必ずしも単純でないことをここで強調したい。
【０００９】
レポート作成者は、特定のレポートに正しくデータを取り込むためのカスタマイズされたコンピュータプログラムを常に作成することができるが、多くのレポート作成者は、そのようなカスタムプログラムを書く技量はないし、そうしたいとも思わない。さらに、そのようなコンピュータプログラムを書くのは、レポート作成者の時間の有効な使用法ではない。したがって、レポート作成者は、しばしば、商用ソフトウェア製品によって提供される利用可能なレポートデザインで間に合わせるか、貴重な時間を費やしてカスタムのレポートデザインのためのコンピュータプログラムを作成することを要求される。このため、レポートデザインの柔軟性は、商用のレポートデザインソフトウェアに望まれる１つの属性である。簡単に理解できる機能をユーザがより手軽に利用することができるように、単純さもすべてのソフトウェアに望まれる属性である。
【００１０】
上述の状況から、商用ソフトウェア会社は、現実的に対応することができるレポートデザインの多様性に対応するレポートデザインソフトウェアを提供することを要求されている。これは、困難な課題であり得る。上手く行われた場合、この課題には、作成者がレポートのデータの内容とレイアウトを伝えることができるようにする際に、柔軟性と高い正確性を備えるレポートデザインを指定する簡単に理解できる技術を提供することを含んでいる。従来、テーブルとマトリックスというレポートデザインの２つの幅広い選択肢を提供することによって、この課題は解決されてきた。
【００１１】
図１および図４に関連した以下の簡単な説明では、従来のテーブル方式のレポートデザインとマトリックス方式のレポートデザインの利点および制約の一部を指摘している。初めに図１に、テーブルデザインを使用して生成することができるレポートの典型的な特徴をいくつか示す。図１によって示唆するように、テーブルデザインにおいては、レポート作成者は、固定された列しか使用することができない。これを静的な列１０４と呼ぶ。すなわち、テーブルデザインを使用するレポート作成者は、必要に応じて、すべての必要とされるレポートデータを収容する顧客１０１、年１０２、売上高１０３などの列を指定することができる。
【００１２】
これに対して、テーブルの行は動的にすることができる。例えば動的な行１０５を参照されたい。これらの行１０５は、必要に応じて拡大して、より多い量あるいは少ない量のレポートデータを十分に表示することができる。例えば、動的な行１０５を参照すると、時間の経過に伴い、報告される年１０２ａおよび１０２ｂを拡大して２００３年と２００４年も報告することができる。追加的な行を追加して、レポート中にそれらの行に対応するすべてのデータを提供することができる。これにより、レポート作成者は、毎年１つのレポートデザインを繰返し再使用したり、あるいは、同じレポートデザインを使用して範囲を変化させてデータを表示したりすることができる。
【００１３】
テーブルレポートデザインは、ヘッダ行とフッタ行も含むことができる。図１では、一番上の顧客１０１、年１０２、売上高１０３など、行の名前を指定する行がヘッダ行である。総売上１０１ｃを指定する一番下の行がフッタ行である。ヘッダ行とフッタ行はそれぞれ、ヘッダ行／フッタ行でない行とは、異なるタイプのデータを有するセルを含み、通常はそれらの行のデータを要約している。
【００１４】
テーブルのレポートデザインはさらに、ヘッダ行とフッタ行をそれぞれが有する入れ子になったグループを含むことができる。図１では、顧客１０１ａおよび１０１ｂの両方に入れ子になったヘッダ行とフッタ行を与えることにより、この特徴を説明している。Ａｃｍｅ１０１ａのみを有する行と、Ｂｏｂの割引のみを有する行１０１ｂは、ともにヘッダ行である。小計を含む２つの行１０２ｃおよび１０２ｆは、フッタ行である。ここでも、これらの入れ子になったヘッダ行とフッタ行１０１ａ、１０１ｂ、１０２ｃ、１０２ｆはそれぞれ、ヘッダ行／フッタ行でない行とは異なる情報を含む。
【００１５】
最後に、テーブルレポートデザインでは、一番深いグループ内に詳細の行を指定することができる。テーブルデザインのこの態様は、図１の実際のテーブルには表していない。そのような詳細行の例として、例えばＡｃｍｅの２００１年の売上高１０３ａに追加的なデータが必要とされる場合、Ａｃｍｅの２００１年の売上高を示す行１０３ａの下の行に追加的な情報を挿入する詳細行をレポートデザイン中に指定することができる。
【００１６】
要約すると、当技術分野の現状によるテーブルデザインを使用するレポート作成者は、静的な行または動的な行とともに、固定された列、すなわち静的な列を指定することができる。任意数のヘッダ行およびフッタ行も利用することができる。そのため、レポートデザインを処理するソフトウェアは、すべての指定されるデータを該当する列および行に入れる。動的な行については、必要なだけの行を生成してデータを収容することができる。
【００１７】
市販のレポート生成ソフトウェアとともにレポート作成者が利用することができるもう１つのデザインの選択肢は、マトリクスである。図４は、そのようなデザインの特徴を示す典型的なマトリクスを示している。図４の実際のレポートから推測できるように、マトリクスのレポートデザインでは動的な列４５０が許される。２００１年（４０１）と２００１年（４０２）の年間の売上高データを含む列を、追加的な年について必要に応じて補うことができる。例えば、２００３年と２００４年のデータが利用できる場合には、そのようなデータを自動的にレポートに追加することができ、レポートデザインにそれらの年のための追加的な列を指定する必要はない。マトリクスの各列のグループは、ヘッダ４３０とフッタ４３０を含むことができる。ただし、マトリクスの動的な列は、テーブルデザインを上回る利点を提供する一方で、レポートデザインにおいて求められる柔軟性を十分に備えていないことに留意されたい。例えば、現在の商用レポートデザインソフトウェアを使用すると、動的な列４５０は、入れ子になった動的な列を含むことができない。事例ごとにこれを実現するためにカスタムプログラムを書くこともできるが、そのようなカスタムプログラムを生成するのは、レポート作成者にとって大きな困難となる。
【００１８】
マトリクスのレポートデザインでは、それぞれ例えば４７０と４６０など、静的な行および動的な行がともに許される。図４では、例えば２００１年（４０１）、２００２年（４０２）、合計（４０３）など、列の名前のヘッダ４４０が備えられている。小売部門と卸売り部門に対応する行グループには、備えることは可能だが、行ヘッダと行フッタは備えられていない。総計４２２データには、フッタ行４７０が備えられている。要素４０４および４２３は、動的な行のグループ４６０のインスタンスである。これに関しては、レポートデザインにおいて、マトリクス中の１つまたは複数の行を動的な行に指定することができる。データと組合せられる際、そのような動的な行は、拡大されることで利用可能なデータを収容することができる。図４の例において見て分かるように、利用可能なデータは、小売４０４のデータと卸売り４１３のデータを含む。しかし、動的な行４６０は、入れ子になった静的な行４６１のみを含むことに留意されたい。当技術分野の現状では、マトリクスのレポートデザインでは、入れ子になった動的な行には対応することができない。さらに、当技術分野の状態では、レポートデザインで必要とされる可能性のある静的な行と動的な行をいくつでもさらに組合せることはできない。
【００１９】
要約すると、マトリクスにおいては、行ヘッダおよび行フッタでさらに範囲を定めることができるいくつかの固定された行または単純な動的な行によって、レポートデータを提示することができる。必要に応じて、静的な列または動的な列を使用してデータを表示することができる。動的な列／行をさらにヘッダ列およびフッタ列で区切って、レポートに追加的な関連情報を提供することもできる。
【発明の開示】
【発明が解決しようとする課題】
【００２０】
したがって、テーブルのレポートデザインとマトリクスのレポートデザインはそれぞれ、いくつかの有用な機能を提供するが、レポート作成者にレポートの機能を指定させる方式については制約がある。より柔軟で同時に分かりやすいレポートデザインのためのフォーマットは、レポートのデータを正しく提示するためにカスタマイズされた追加作業を必要としない標準化された商用ソフトウェアを介して容易に実施できるより広い範囲のデザインを可能とし、レポートを改善するのに役立つと考えられる。
【００２１】
レポートデザインを支援する業界の現状に鑑みると、データの提示に要求される可能性のある各種のレポートデザインを支援する際にさらなる柔軟性と単純性を提供するという認識されていないニーズがある。
【課題を解決するための手段】
【００２２】
レポートをデザインするシステムおよび方法が提供される。レポートまたはレポートの一領域の列および／または行を、宣言的に動的または静的と定義することができる。宣言的な定義は、任意のマーク付けによって表すことができる。例えば、大括弧、テキストフォント、テキストの色、何らかの他のマーク付け、またはそれらが無いことにより、宣言として指定することができる。列または行が宣言的に動的と指定された場合、その列または行は、複数の列または行に拡大されることができる。この拡大を必要に応じて使用して、レポートデザインにより使用される対象のデータを収容することができる。列または行が静的と指定される場合、その列または行は、１つの列または行のままであり、指定されるその列のデータまたは行のデータのみを表す。
【００２３】
また、レポート作成者の希望に応じて、列および行の下位グループを動的または静的と宣言的に定義することもできる。静的な列は、下位列を含まないか、複数の静的な列、複数の動的な列、またはその両方の組合せを含むことができる。同様に、動的な列も、任意数の静的な列、任意数の動的な列、またはその両方の組合せを含むことができ、これは、拡大時に、動的な列それぞれが指定された下位列を含むことを意味する。これと同じことが行にも当てはまる。
【発明を実施するための最良の形態】
【００２４】
本発明の各種実施形態の完全な理解を提供するために、以下の説明と図によって特定の具体的な詳細事項について述べる。ただし、本発明の各種実施形態を不必要にあいまいにするのを避けるために、以下の開示においては、コンピューティングおよびソフトウェア技術にしばしば関連する周知の詳細事項については述べない。さらに、当業者であれば、下記の詳細事項の１つまたは複数を用いずに本発明の他の実施形態を実施できることを理解されよう。最後に、以下の開示においては、ステップおよび順序を参照しながら各種の方法を説明するが、そのような説明は、本発明の実施形態の明確な実装を提供するものであり、ステップとステップの順序は、本発明を実施するのに必須のものと解釈すべきでない。
【００２５】
レポートは、視覚的な面の列と行に表示するためのデータの集計である。レポートのデータは、どのようなデータであってもよい。典型的なレポートは、各種製品の売り上げの総収益、各種製品に伴う経費、各種製品に伴う利益など、企業の財務データを含むことができる。他のレポートは、名前、電話番号、住所、電子メールアドレスなどの連絡先情報、ならびに製品の好み、年間の総購入額、特別割引などの顧客情報を含むことができる。従業員名、労働時間、業績、予定される休暇の時間、特別な要望などを集計することにより、レポートを使用して従業員を追跡することもできる。これらの例は、レポートに含めることができるデータのごくわずかな一部である。レポートには、何らかの活動に関して人間が集計することを望む可能性のある任意のデータを入れることができる。実際のレポートのさらなる例を、図１、図３、図４、および図８に提供する。これらの図のレポートは、図示を簡単にするために、典型的なレポートに比べてやや少ないデータを表示している。より典型的なレポートは、１つのレポートの全データを表示するために、必要に応じて何十、何百、あるいは何千の行および列を含む場合がある。
【００２６】
レポートは、領域に分割することができ、レポートの各種領域は、異なるレポートデザインに従ってデザインすることができる。さらに、１つのレポートデザインが、異なるデザインに従うレポートの中の各種の領域を指定することができる。このレポート機能については、特許文献１により詳細に説明される。当明細書においては、用語「レポート」は、１つの完全なレポート全体、および、同種のデザイン上の選択肢の集合に準拠するレポートの領域の両方を意味するものと解釈されたい。
【００２７】
レポートデザインは、実際のレポートに表示されるデータとそのデータのレイアウトを示すレポートのテンプレートである。レポートデザインは、ＸＭＬやＨＴＭＬなどの適切なコンピュータ読取り可能構文のコンピュータ読取り可能な命令セットからなることができる。レポートデザインのこの実施形態の一例を、以下、本明細書において提供する。そのようなデザインは、例えば図１０に示すようにグラフィックとして実施することもでき、これは、本発明で提供されるコンピュータ読取り可能命令のグラフィック実施形態である。グラフィックとして表現されるレポートデザインの場合は、通常、レポートデザインソフトウェアが、レポートデザインのパラメータを供給し、レポート定義ファイルを生成する際の支援として使用される。
【００２８】
レポートデザインソフトウェアは、通常、レポートデザインをグラフィックとして表現するためにＧＵＩを使用する。例えば、レポートデザインソフトウェアは、コンピュータ画面のＧＵＩ上において、作成者に複数の空の列と行を表示することができる。作成者は、マウスあるいは他の制御装置を使用して、各種のいずれの列および行も選択することができる。そして、作成者が複数のメニューオプションから選択するか、キーボード入力で識別情報をタイプ入力することを通じて直接データを識別することにより、レポートに必要とされるデータを入力することができる。レポート作成者が各種の入力装置を使用して入力した情報は、次いで、レポート定義ファイルに記憶される。このファイルは、レポート作成者によって作成されたレポート定義の簡潔な表現を与え、ＸＭＬ、ＨＴＭＬ、．ｔｘｔ、．ｄｏｃなどいくつかのファイルフォーマットのいずれでもよい。
【００２９】
単純なレポートデザインは、図２のように、１つのテーブルに対して複数の列を指示することができる。レポートデザインは、レポート処理ソフトウェアによって使用され、レポートデザインの中で指示される該当する列と行に、該当するデータを取り込むことにより、実際のレポートを生成することができる。レポートデザインは、直接生成されたものであっても、レポートデザインソフトウェアの支援を借りて生成されたものであってもよい。レポート処理ソフトウェアには、レポートを集計するための任意のソフトウェアが含まれる。図５は、本発明の他の態様とともに使用するのに適したレポート処理ソフトウェアのいくつかの一般的な態様を示す。このようなソフトウェア５１０は、データソース５２０、５２１を照会して、レポートデザインまたはレポート定義５００で指定されるデータを取り出す機能を実行する。１つまたは複数のデータ拡張５１１を使用して、データソース５２０、５２１のデータを正しく解釈することができる。次いで、ソフトウェア５１０は、取り出したデータを、レポート定義５００によって指定されるレイアウトにまとめる。出力されるレポートは、１つまたは複数のレンダリング拡張５１２を使用して、例えば５３０、５３１、５３２などの任意のファイルフォーマットにすることができる。当業者であれば、オブジェクト指向プログラミングに対応する言語で作成されたオブジェクトなど別個のソフトウェアコンポーネントを使用して、レポート処理ソフトウェア５１０の各種機能を実行できることを認識できるだろう。
【００３０】
図６に示す実施形態は、明快な説明をするために、本発明の多数の態様を提供するものである。図６のレポートデザインは、本明細書に開示される技術を使用して作成することが可能な唯一のレポートデザインではない。反対に、本発明の技術は、レポート作成者によって要求され得る無限のレポート多様性に適合することができる柔軟なレポートデザインを支援するものである。図６の例示的なデザインは、レポートデザインの潜在的な機能の多くを実証するので役立つ。しかし、実際面では、図６のデザインは、やや複雑で実用的ではないかもしれない。単純で理解しやすいレポートを生成するために、図６の機能のいくつかは使用されるが、他の機能は使用されない。したがって、図６は、本発明の使用法の具体的な実際例というよりは、本発明の態様を明らかにすることを意図している。現実世界のレポートのより実際的な実施形態を対象とする、本発明の技術を使用した追加的なレポートデザインは、図７および図１１で与えられる。図１１のコードバージョンは、以下の本明細書に示す。
【００３１】
図６に示すように、本発明の態様によって提供される技術を使用して、列と行を動的あるいは静的と宣言的に定義することができる。図６では、大括弧［］を使用して、列または行を動的と宣言的に定義し、一方、大括弧がないことによって、列または行を静的と宣言的に定義する。宣言の目的は、少なくとも２つある。第１に、どの列および行が動的でどの列および行が静的であるかを、宣言は、レポート作成者に容易に分かるようにする。第２に、レポート処理ソフトウェアが宣言を使用することにより、レポートにデータを取り込むために静的な列および行と動的な列および行を識別することができる。
【００３２】
本発明の各種の実施形態では、列または行を動的または静的と識別するために使用できる１つまたは複数の宣言を、ＸＭＬ（拡張可能マークアップ言語）スキーマまたはＸＭＬドキュメントタイプ定義によって標準化することができる。これにより、レポート作成者は標準化された宣言を使用することができ、その宣言を認識するように命令されるレポートデザインソフトウェアによって、自分のデザインが正しく処理されることを確信することができる。例えば、動的な行または列を識別する属性としたい行および列に大括弧［］を入れることができ、それらの動的な行および列は、レポート処理ソフトウェアによって動的であると解釈される。大括弧［］のない行および列は動的と識別されず、したがってデフォルトで静的な行および列と識別される。
【００３３】
宣言は、任意のマーク付けとすることができる。課題を解決するための手段の項で簡単に述べたように、そのようなマーク付けは、例えば、大括弧、テキストのフォント、テキストの色、何らかの他のマーク付け、あるいはそれらがないこと等である。また、テキストのポイントサイズ、星印＊や文字（Ｄ）などの特定の記号の存在、または例えば「動的ｄｙｎａｍｉｃ」や「静的ｓｔａｔｉｃ」などの識別語の使用を使用して、列または行を動的または静的と宣言することもできる。本発明は、列または行を動的または静的と宣言的に定義するために使用される特定のマーク付けに限定されない。代わりに、本発明は、レポートデザインで列または行を動的または静的と識別するための任意の宣言の使用を備える。
【００３４】
レポートの列は、関連するレポートデータが置かれる縦の帯である。列は、列の一番上の行にある列の見出しによって識別することができる。列は、列の下位グループに分割することができ、下位グループ自体をさらに、任意レベルの下位グループにまで分割することができる。したがって、例えば「自動車」の最初の列は、ＦＯＲＤ（登録商標）とＴＯＹＯＴＡ（登録商標）の下位グループに分けることができる。これらの各列をさらに、ＦＯＲＤ（登録商標）の列においてＦＯＣＵＳ（登録商標）、ＴＡＵＲＵＳ（登録商標）、ＢＲＯＮＣＯ（登録商標）と、ＴＯＹＯＴＡ（登録商標）の列においてＣＡＭＲＹ（登録商標）、ＣＯＲＯＬＬＡ（登録商標）、およびＴＥＲＣＥＬ（登録商標）などのモデル下位グループに分割することができる。それらの各モデル列をさらに、赤、青、緑などの色に分けることができる。必要に応じて、任意レベルの下位グループまで列のさらなる分割を続けることができる。図６では、この概念を、例えば、列６０３、６０４、６０５、６０６、６０７、６０８に分割された列６００によって表している。列６０７はさらに列６１３と６１４に分割される。これらの各列は、最上位の列であっても、あるいはいずれかのレベルの下位グループに存在する列であっても、本発明では列と称する。説明のために必要な場合には、用語「下位グループの列」、「入れ子になった列」などを使用して、該当する列の特性を指摘する。
【００３５】
同様に、レポートの行は、関連するレポートデータが配置される横の帯である。行は、行の最初の列にある行の見出しで識別することができる。行は、行の下位グループに分割することができ、下位グループ自体をさらに任意レベルの下位グループにまで分割することができる。したがって、例えば「自動車」の最初の行は、ＦＯＲＤ（登録商標）とＴＯＹＯＴＡ（登録商標）の下位グループに分けることができる。これらの各行をさらに、ＦＯＲＤ（登録商標）の行においてＦＯＣＵＳ（登録商標）、ＴＡＵＲＵＳ（登録商標）、ＢＲＯＮＣＯ（登録商標）と、ＴＯＹＯＴＡ（登録商標）の行においてＣＡＭＲＹ（登録商標）、ＣＯＲＯＬＬＡ（登録商標）、ＴＥＲＣＥＬ（登録商標）などのモデル下位グループに分割することができる。それらの各モデル行をさらに、赤、青、緑などの色に分けることができる。必要に応じて、任意レベルの下位グループまで行の分割をさらに続けてよい。図６では、この概念を、例えば行６５２、６５３、６５４、６５５に分割された行６５０で表す。行６５３はさらに行６５８および６５９に分割される。これらの行はそれぞれ、最上位の行であっても、いずれかのレベルの下位グループに存在する行であっても、本発明では行と称する。説明のために必要な場合は、用語「下位グループの行」、「入れ子になった行」などを使用して、該当する行の特性を指摘する。
【００３６】
図６のようなレポートデザインにおいて静的と宣言された列または行は、実際のレポートを生成する際に、レポート処理ソフトウェアによって複数の列または行に拡大されない。再度上記の宣言的な定義の説明を参照して、列または行は、マーク付けあるいはマーク付けがないことによって静的と宣言できることを思い出されたい。大括弧［］の不在によって静的な列と宣言されている図６の列６０２を考えられたい。この特性は、図６のデザインから実際のレポートを生成する際には、１つのみの静的な列６０２があることを意味する。
【００３７】
例えば、列６０２が、従業員の主要電子メールアドレスを列挙するように指定されると想定する。各従業員は、主要な電子メールアドレスを１つのみを持っている。２次あるいは３次電子メールアドレスなど、データベースで他の電子メールアドレス情報が入手できる場合もあるが、それらのアドレスは、レポートには必要とされない。これを実現するには、６０２のような静的な列を識別することができ、その列の内容を「主要電子メールアドレス」と識別することができる。このようなデザインから実際のレポートを生成するレポート処理ソフトウェアは、データベースから主要な電子メールアドレスを取り出し、その列に入れる。レポート処理ソフトウェアは、さらに電子メールアドレスを取り出したり、あるいは、追加的な電子メールアドレスを収容するのに実際のレポートの追加の列を生成したりすることは試みない。
【００３８】
静的な列６０２に関して述べた原理と同じ原理が静的な行にも当てはまる。静的な行とは、レポート処理ソフトウェアによって複数の行に拡大されない行である。静的な行６５７を考えられたい。この行は、「主要製品ＩＤ」などの情報を含むものと識別される。データベースには各種の製品について複数の製品ＩＤが記憶されている可能性があるが、それらのＩＤは実際のレポートに必要とされない。この行は静的な行なので、各種の製品ＩＤを伝えるために複数の行は生成されない。
【００３９】
これに対し、６０９などレポートデザインで動的と宣言された列または行は、指定された列または行に利用できるすべてのデータを収容するために必要に応じて繰り返すことができる。動的な列と宣言的に定義された列６１５を考えられたい。レポート作成者は、複数の列にまたがる可能性のあるデータがレポートに入ると判断している場合がある。しかし、必要な列の数が分からない、あるいは変動する可能性がある、あるいは単に列の数が非常に多く、レポートデザインにそのようなすべての列を入力するのが煩瑣である場合がある。このような状況において、動的な列６１５をレポート作成者は指定することができる。この列は、レポート処理ソフトウェアにより自動的に複数の列に拡大することができる。この拡大は、動的な列に指定されたすべてのデータを収容するために必要に応じて行うことができる。
【００４０】
例えば、列６１５は年間の売り上げデータに指定された場合、そのようなデータが分かっている年が多数ある可能性があり、さらに、年が経過するにつれてさらにデータが追加されていく。すべての年の必要データに静的な列を指定する代わりに、レポート作成者は、例えば［年間売上高］と名前を付けた動的な列を指定することができる。レポート作成者はさらに、例えば１９９０〜２００１など必要なデータの範囲を指定するか、または、単に、記述に当てはまるすべての入手可能なデータを要求することを指定することができる。レポート処理ソフトウェアは、図６のデザインから実際のレポートを生成する際に、動的な列６１５の位置に複数の年間売上高の列を生成することができる。例えば、最初の列は１９９０年度の売上高に対応し、２番目の列は１９９１年の売上高に対応する。この点に関して、複数の列に要求されるデータを求めて照会を行えるように編成されたデータと併せて、動的な列を使用することができる。そのような照会は、レポート生成ソフトウェアの範囲内にある。
【００４１】
この原理は、先と同様に、動的な行にも適用することができる。動的な行は、レポートデザイン中において、レポート処理ソフトウェアによって複数の行に拡大することが可能であると識別される行である。例えば、動的な行６６０は、レポート処理ソフトウェアによって取り出されるデータに従って、必要に応じて拡大することができる。動的な行６６０は、それらの列で識別される製品の製造のチームリーダーを示す「年間チームリーダー」を表す目的であるとすると、必要に応じて動的な行６００を複数の行に拡大して、１９９０年のチームリーダー、１９９１年のチームリーダー、１９９２年のチームリーダーなどを収容することができる。レポート作成者は、すべての年を１つ１つ指定する必要はなく、代わりに１９９０〜１９９７など必要とするデータの範囲を指定するか、単にすべての利用可能データを指定することができる。
【００４２】
本発明の様々な態様では、特定のレポートにおいて望まれるように、レポート作成者が動的な行および列と静的な行および列の両方を、レポートデザインの中で宣言できるようにする。さらに、入れ子になった動的な行または列と静的な行または列の組合せを、それぞれ別の行または列の中で宣言することができる。例えば、動的な列は、入れ子になった動的な列と入れ子になった静的な列の両方を含むことができる。
【００４３】
動的な列の中に動的な列と静的な列の両方を入れ子にするこの機能を図６に図示する。動的な列６０４は、動的な列６００の中に入れ子になっている。実際のレポートを生成する際に、動的な列６００は、データを報告するために必要に応じて任意数の列に拡大することができる。この動的な列６００の拡大により、動的な列６０４の複数のインスタンスが生成される。そして、動的な列６０４の各インスタンスを拡大して、動的な列６０４のそのインスタンスに該当するデータを収容することができる。
【００４４】
６０６のような静的な列も、６００のような動的な列の中に入れ子にすることができる。そのようなレポートデザインに対応するレポートを生成する際には、動的な列６００の拡大された各インスタンスの中に１つの静的な列６０６を配置することができる。レポートにデータを取り込む際、レポート処理ソフトウェアは、初めに動的な列６００を拡大し、次いで静的な列６０６などの入れ子になった列に適宜データを取り込むことができる。
【００４５】
上記の説明と図６の考察から、動的な列には、入れ子になった列を含まない、１つまたは複数の静的な列がある、１つまたは複数の動的な列がある、あるいは、静的な列と動的な列の組合せ、などの場合を含むことができることが明らかであろう。これと同じことが静的な列にも当てはまる。静的な列は、動的な列を含むことができる。この例は、動的な列６０９を含む静的な列６０１である。レポートデザインにおけるこのような状況は、拡大可能な列の下位グループを含む１つの静的な列を生成させる。同様に、静的な列には、静的な列６０２のように入れ子になった列を含まない、１つまたは複数の動的な列がある、１つまたは複数の静的な列がある、あるいは、それら２つの組合せ、などの場合を含むことができる。
【００４６】
上記の説明では、説明を分かりやすくするために列に注目したが、図６から、行も、動的な入れ子になった行と静的な入れ子になった行の組合せを含んでよいことも同様に明らかであろう。６５０などの動的な行は、６５３などの他の動的な行を含むことができる。この状況において、利用可能なデータを収容するために必要に応じて動的な行６５０を複数の行に拡大することができる。６５０の各インスタンスは、動的な行６５３のインスタンスを含む。そして、この入れ子になった動的な行も必要に応じて拡大して、行６５３に必要とされる利用可能データを収容することができる。
【００４７】
動的な行は、入れ子になった静的な行も含むことができる。これに関しては、動的な行６５０が、入れ子になった静的な行６５５を含んでいる。拡大後、６５０の各インスタンスは、静的な行６５３のインスタンスを含む。そして、６５３の各インスタンスに適宜データを取り込むことができる。行および列両方の場合で、そのような入れ子になったカテゴリは、入れ子になった行または列のすべての他のインスタンスと全く同じデータを含む必要はないことに留意されたい。代わりに、その行または列にデータを取り込むために使用されるクエリを、動的な親の行または列のインスタンスに適合するように変更して、入れ子になった行または列に、その特定のインスタンスに該当するデータを入れることができる。
【００４８】
静的な行は、動的な行も含むことができる。これは、図６において、静的な行６５１が入れ子になった動的な行６５６を含むことで表される。この状況において、列と同様に、１つの静的な親の行６５１は、指定されたデータを収容するために必要に応じて拡大することができる動的な行を含んでいる。
【００４９】
静的および動的な行および列を表示することに加えて、図６には、行および列のヘッダおよびフッタを示していることに留意されたい。そのような行および列のヘッダとフッタは、実際には静的な行および列である。静的であることは、図６では、ヘッダおよびフッタの行および列の記述語に大括弧［］がないことで表される。一般に、本発明の技術を使用して動的または静的と宣言される行および列は、図６に示すように単に「動的な行」あるいは「静的な行」と名前を付けられることはない。代わりに、そのような行および列は、その中に入れられるデータに従って名前を付けることができる。この点に関して、ヘッダ行６５２は、その行がその行の下にあるデータを説明するヘッダであることを示す。フッタ行６５４も同様に、６５４に入れられるデータは、その上の行に含まれるデータのフッタデータであることを、レポートデザインを見る者に伝える。これと同じことは、ヘッダ列６０３とフッタ列６０５に当てはまる。それらの列は、単に、それらの列に含まれることになるデータを少なくとも部分的に説明するように名前を付けられた静的な列である。この概念は、図７および図８とともにさらに説明される。
【００５０】
図６には、説明に役立つ、アブストラクト中の本発明の多数の態様を示す。図７および図８は、レポートデザインの具体例、および、レポートプロセッサが実際のレポートを生成するのにそのデザインをどのように使用できるかを示すために、本明細書に含められている。図７は典型的なレポートデザインを示し、図８はそのデザインにデータが取り込まれる方式を説明する。したがって、これらの図は、柔軟性のあるレポートデザインのためのシステムおよび方法の利点をさらに顕在化させ、明確に示している。
【００５１】
図７の典型的なレポートデザインは、年７００、地域７０１、合計７０２の３つの静的な最上位の列を示す。このレポートデザインは、年ごとの売上高、地域別の売上高、および総売り上げを示すレポートを対象とする。「年」という見出しの静的な列７００はさらに、年間売上高７０３の動的な列と、伸び率を示す静的な列７０４の２つの入れ子になった列に分割される。「地域」の静的な列も、入れ子になった列、すなわち地域に対応する１つの動的な列７０５を含み、「地域」は、地域ごとの売上高を表す。「合計」の静的な列は、入れ子になった列を含んでいない。
【００５２】
図７のレポートデザインの行は、入れ子になったヘッダ列７０７と動的な「店舗」の列７０８とを含む動的な部門の列７０６である。したがって、図８の参照から分かるように、拡大されると、７０６の各インスタンスは、７０７と７０８のインスタンスを含む。総計データの静的な行７０９も含まれている。
【００５３】
図７の詳細のセル、すなわち要素７１０〜７１７は、それらのセルに取り込まれるデータについての追加的な情報を提供することができる。レポートの情報は、行および列の記述語に提供される情報からすべて集めることができるが、詳細セルの情報は、追加的なデザインのオプションを提供する。したがって、そのセルの情報は特定の年の特定店舗の売上高情報であることが前後関係から明らかになるので、７１０などの詳細セルに情報を入れることは必要でない場合がある。しかし、「総計」の行は、それほど分かりやすくはない。例えば、その情報が詳細のセルに提供されなければ、セル７１３に平均伸び率の数字が必要とされることは明らかにならない可能性がある。
【００５４】
図８に、図７のレポートデザインから生成することができる実際のレポートを示す。年間売上高の動的な列７０３は、１９９０年（８０３）と１９９１年（８０４）の２つの列に拡大されている。地域の動的な列７０５は、西部８０６と東部８０７の２つの列に拡大されている。また、部門の動的な行７０６は、小売８０８と卸売り８１１の２つの部門に拡大されている。８００、８０１、８０２を参照すると、静的な列７００、７０１、７０２の見出しは実際のレポートに残されているが、部門の行７０６の見出しは、図８の実際のレポートでは省かれていることに留意されたい。これは、表示上の好みの問題であり、本発明と併せて斜字体などの追加的な宣言マーク付けによって実現することができる。
【００５５】
図８では、店舗の動的な行は、動的に拡大された部門の各行の中で、１つの部門につき２つの店舗に拡大されている。仮説としてこれは、レポートデザインの例えば列７０８に指示された制約の結果であり、その制約は、各部門の上位２つの店舗のみに対して関心があること指示していることが考えられる。また、単にこれは利用可能なデータの結果である可能性もある。すなわち、それら４つの店舗についてのデータが唯一の利用可能データである可能性がある。前者の場合、その制約は行の記述で言明あるいは宣言され、後者の場合は、宣言においては必要でない。
【００５６】
図１０、図１１、図１２および以下に提供する例示的なＸＭＬレポート定義は、本発明の各種の技術を実施するレポートデザインの最後の一例を提供する。図１０は、図１１のレポートデザインから生成することができる例示的なレポートを示している。図１１は、以下で説明するように、ＸＭＬにおいてどちらが実装をされるかを概略的に表す。図１２は、図１１に提供されるスキーマ表現のオブジェクトタイプを示す。
【００５７】
図１０、図１１、図１２の列および行の番号は、それらの図面の類似の要素を明示するように統一されている。例えば、図１２の動的な列のグループ１２００は、図１１の［年］１２００ａの列と、図１０の２００１年（１２００ｂ）と２００２年（１２００ｃ）の列に対応する。この対応関係は、図同士を容易に参照することを可能にし、レポートデザインにおいて識別される列１２００ｂが、実際のレポートに意図されるデータ（この場合は年間売り上げデータ）をどのように識別し、あるいは、その列が動的な列として意図されているのを（この場合は大括弧で）どのように宣言的に識別するかを、示すのを目的としている。
【００５８】
図１１に、「種別」というヘッダの静的な列１２０２ａを示し、この列は、種別の下位グループの動的な列１２０３ａを含んでいる。図１０から分かるように、この種別の下位グループは、「生鮮」１２０３ｂと「冷凍」１２０３ｃである。この例は、本発明の技術を使用したレポートデザインの機能面の利点を説明している。
【００５９】
図１１には、列１２０１と１２０４を静的と識別する図１２を参照することによって確認できるように、いくつかの静的な列１２０１ａと１２０４ａも示している。ここで、フッタ１２０１の列は、静的な列の一例に過ぎないことに留意されたい。１２０４などの静的な列は、周辺のデータに関連しない情報をレポートに入れる目的でも提供されることができる。
【００６０】
図１１に提供するレポートデザインの行は、本発明の技術の一部も取り込んでおり、柔軟性のあるレポートデザインを可能にする。そのため、静的な行１２５０ａは、動的な行のグループ１２５１ａを含むことができる。さらに、動的な行１２５１ａは、静的な行１２５２ａと動的な行１２５３ａの両方を含むことができる。これにより、図１０に示すように、ヘッダ行と下位行を繰り返し可能な形でリストすることが可能になる。このレポートデザインの静的な行１２５２ａは、図１０の動的に拡大されるグループごとに１回繰り返される。図１０の行１２５２ｂと１２５２ｃを参照されたい。動的な行１２５３ａは、図１０のデータを収容するために必要に応じて繰り返される。図１０の１２５３ｂ、１２５３ｃ、１２５３ｄ、および１２５３ｅを参照されたい。本発明の技術を使用したこの１つのレポートデザインの具体例は、静的および動的な行および列の可能なすべての組合せを利用してはいない。しかし、従来のレポートデザインシステムおよび方法を上回るこの技術の利点は、明らかであろう。
【００６１】
次のＸＭＬ定義は、本発明の技術を実施するレポートの要素がどのように機械読取り可能な言語によって実施できるかを具体例として示す。スキーマで行われる宣言は、ＸＭＬファイルで宣言される要素と属性に変形される。本発明の態様を使用するレポート作成者は、スキーマの作成を可能にし、以下の例のような定義ファイルを自動化されたプロセスで作成するプログラムを使用することができる。あるいは、本発明は、レポートデザインソフトウェアの助けを借りずに、直接レポート定義ファイルを書くことによって実施してもよい。以下の例を参照する際、ここに記載される技術を使用してレポートデザインのインスタンスを宣言するために用語「ｔａｂｌｉｘ」を造語している。
【００６２】
図１０、１１、および１２の例示的なＸＭＬ定義
【００６３】
【表１−１】
2006012145.tif 000003
【００６４】
【表１−２】
2006012145.tif 000004
【００６５】
例示的コンピューティング環境
本発明の技術は、１つまたは複数のコンピュータと関連して使用されることが意図される。詳細には、ここに開示される方法を実施するレポートデザイン製品は、おそらくは、本明細書によって教示されるようにレポートの質を指定するための宣言要素の使用を支援するＧＵＩ（グラフィカルユーザインタフェース）を提供する。そのようなグラフィカルユーザインタフェースとそれを支援するコンピューティングハードウェアおよびソフトウェアは、当技術分野でよく知られており、以下の簡単な説明は、そのようなシステムの特徴をより具体的に述べるために提供され、周知の、理解されているコンピューティング技術の動作を詳細に説明しようとしてはいない。
【００６６】
図９を参照すると、本発明を実施する例示的システムは、デバイス９００などのコンピューティングデバイスを含む。最も基本的な構成で、デバイス９００は、通例、処理装置９０２とメモリ９０４を含む。コンピューティングデバイスの正確な構成とタイプに応じて、メモリ９０４は、揮発性（ＲＡＭなど）であっても、不揮発性（ＲＯＭ、フラッシュメモリなど）であっても、その２種の何らかの組合せであってもよい。また、デバイス９００は、磁気方式または光学方式のディスクまたはテープなどの大容量記憶装置（取り外し可能９０８および／または取り外し不能９１０）も有することができる。同様に、デバイス９００は、キーボードやマウスなどの入力装置９１４、および／または上記のようにレポートデザインを助けるグラフィック支援としてＧＵＩを表示するディスプレイなどの出力装置９１６も有することができる。デバイス９００の他の態様は、有線媒体または無線媒体を使用した、他のデバイス、コンピュータ、ネットワーク、サーバなどとのネットワーク接続を含むことができる。これらのデバイスはすべて当技術分野でよく知られており、ここで詳細に論じる必要はない。
【００６７】
ここに記載される各種技術は、ハードウェアまたはソフトウェアと併せて、または適切な場合はそれら２つの組合せと併せて実施できることが理解されよう。したがって、本発明の方法および装置、または本発明の特定の態様またはその一部は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、あるいは他の機械読取り可能な記憶媒体などの有形の媒体に実施されたプログラムコード（命令）の形態をとることができ、このプログラムコードが、コンピュータなどのマシンにロードされ、実行されると、そのマシンは、本発明を実施する装置となる。プログラム可能なコンピュータでプログラムコードが実行される場合、コンピューティングデバイスは、一般に、プロセッサ、プロセッサ可読の記憶媒体（揮発性および不揮発性のメモリおよび／または記憶素子を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えばデータ処理ＡＰＩ、再利用可能なコントロールなどの使用を通じて本発明のユーザインタフェース技術を実施または利用することができる１つまたは複数のプログラムは、高級手続き言語またはオブジェクト指向のプログラミング言語で実施してコンピュータシステムと通信することが好ましい。しかし、プログラムは、必要な場合はアセンブリ言語あるいはマシン言語で実施することができる。いずれの場合も、言語は、コンパイルまたは解釈される言語であり、ハードウェア実装と組合せることができる。
【００６８】
本発明は、１つまたは複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的関連において説明することができる。一般に、プログラムモジュールには、特定のタスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通例、プログラムモジュールの機能は、各種の実施形態で必要に応じて組合せても、分散してもよい。
【００６９】
例示的な実施形態は、１つまたは複数のスタンドアロンのコンピュータシステムのコンテクストで本発明を利用するものと言及するが、本発明はそれに限定されず、ネットワークや分散コンピューティング環境など任意のコンピューティング環境との関連で実施することができる。さらに、本発明は、複数の処理チップまたはデバイスで、あるいはそれらにわたって実施することができ、記憶も同様に複数のデバイスにわたって行うことができる。そのようなデバイスには、パーソナルコンピュータ、ネットワークサーバ、ハンドヘルドデバイス、スーパーコンピュータ、または自動車や飛行機などの他のシステムに組み込まれたコンピュータが含まれる。したがって、本発明は、どの１つの実施形態にも限定されず、最初に記載された特許請求の範囲による範囲によって解釈すべきである。
【図面の簡単な説明】
【００７０】
【図１】テーブル方式のレポートデザインを使用して生成することができるレポートの図である。そのようなレポートのレポートデザインは、静的な列、動的な行、および任意数の行ヘッダと行フッタを特徴とする。
【図２】典型的なレポートデザインの図である。このデザインは、３つの列を有するレポートを表す。レポート処理ソフトウェアによって処理されると、データが取り込まれた実際のレポートが生成される。そのような実際のレポートの例が図３に提供される。
【図３】図２の典型的なレポートデザインを使用して仮想のレポート処理ソフトウェアによって生成された実際のレポートの図である。レポート処理ソフトウェアは、図２に示される列に対応するデータを収集し、そのデータを列に入れている。
【図４】マトリクス方式のレポートデザインを使用して生成することができるレポートの図である。そのようなレポートのレポートデザインは、列ヘッダおよび列フッタを有する動的な列と、行ヘッダと行フッタを有する潜在的に動的な行とを特徴とする。動的な行４６０の中には静的な行４６１のみが入れ子になっていることに留意されたい。
【図５】レポートデザインとデータを組合せて実際のレポートを生成するプロセスを説明する図である。レポート処理ソフトウェアは、レポートデザインに要求されるデータを判定し、データソースから該当データを収集し、実際のレポートにデータを取り込み、実際のレポートを出力する。データ拡張を使用してデータソースのデータを理解することができ、一方、レンダリング拡張を使用して、要求されるファイル形式で実際のレポートを生成することができる。
【図６】本発明のデザイン技術を実施する一般化されたレポートデザインの図である。
【図７】本発明の各種技術を使用して年間売上高と地域ごとの売上高についてのレポートを提供する例示的なレポートデザインの図である。
【図８】図７のデザインを使用して生成可能な実際のレポートの図である。
【図９】本発明の各種態様と併せて使用するのに適した例示的コンピューティング環境の最も基本的な属性を示す図である。
【図１０】提供される各種のデザイン技術の一部を使用して生成されるレポートの図である。図１０は、図１１のようなレポートデザインから生成することが可能なレポートの例である。
【図１１】特定の列、行、下位列、および下位行を動的または静的と宣言する例示的レポートデザインの図である。そのようなデザインから生成することが可能な例示的なレポートは、図１０に提供される。
【図１２】図１１のレポートデザインの各種項目の内容のタイプを説明する図である。レポートデザイン中の列、下位列、行、および下位行を動的または静的と宣言して、図１０のようなレポートを生成することができる。
【符号の説明】
【００７１】
５１０  レポート処理ソフトウェア
９００  デバイス
９０４  メモリ
【図１】
2006012145.tif 000005
【図２】
2006012145.tif 000006
【図３】
2006012145.tif 000007
【図４】
2006012145.tif 000008
【図５】
2006012145.tif 000009
【図６】
2006012145.tif 000010
【図７】
2006012145.tif 000011
【図８】
2006012145.tif 000012
【図９】
2006012145.tif 000013
【図１０】
2006012145.tif 000014
【図１１】
2006012145.tif 000015
【図１２】
2006012145.tif 000016