(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行されたときに、前記コンピュータに、
データベース・オブジェクトの要求を受信することであって、前記要求は、要求されたデータベース・オブジェクトをロードするターゲット・サブフォーム・コントロールへのパスを特定する第１のパラメータと、前記データベース・オブジェクトの名前を特定する第２のパラメータと、前記データベース・オブジェクトの型を特定する第３のパラメータとを有するＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）を備えることと、
前記データベース・オブジェクトの前記要求を受信することに応答して、前記ＵＲＬの前記パラメータを用いて前記データベース・オブジェクトを特定し、前記要求されたデータベース・オブジェクトを前記サブフォーム・コントロール内に表示させることと、
マクロ動作を実行する要求を受信することと、
前記マクロ動作を実行する前記要求を受信することに応答して、前記ＵＲＬを更新して前記マクロ動作の実行を反映させることと
をさせるコンピュータ実行可能命令を有することを特徴とするコンピュータ記憶媒体。
【請求項２】
前記ＵＲＬが、現在のページとすべき前記データベース・オブジェクトのページを特定する第４のパラメータをさらに備えることを特徴とする請求項１に記載のコンピュータ記憶媒体。
【請求項３】
前記ＵＲＬが、前記データベース・オブジェクトのデータ・モードを特定する第５のパラメータをさらに備えることを特徴とする請求項２に記載のコンピュータ記憶媒体。
【請求項４】
前記データ・モードが、追加モード、編集モード、または読取専用モードを備えることを特徴とする請求項３に記載のコンピュータ記憶媒体。
【請求項５】
前記データベース・オブジェクトがデータベース・フォームまたはデータベース・レポートを備え、前記第３のパラメータが、前記データベース・オブジェクトがデータベース・フォームであるかデータベース・レポートであるかを特定することを特徴とする請求項３に記載のコンピュータ記憶媒体。
【請求項６】
前記ＵＲＬが、前記データベース・オブジェクトのレコード・ソースに対するｗｈｅｒｅ条件を指定する第６のパラメータをさらに備えることを特徴とする請求項３に記載のコンピュータ記憶媒体。
【請求項７】
前記マクロ動作は、フォームを開くためのマクロ動作を含み、
前記コンピュータによって実行されたときに、前記要求を受信することに応答して、前記コンピュータに前記ＵＲＬを更新して前記マクロ動作の実行を反映させる前記命令は、前記コンピュータによって実行されたときに、前記ＵＲＬを更新して前記フォームを開くことを反映することを含む
ことを特徴とする請求項３に記載のコンピュータ記憶媒体。
【請求項８】
前記マクロ動作は、レポートを開くためのマクロ動作を含み、
前記コンピュータによって実行されたときに、前記要求を受信することに応答して、前記コンピュータに前記ＵＲＬを更新して前記マクロ動作の実行を反映させる前記命令は、前記コンピュータによって実行されたときに、前記ＵＲＬを更新して前記レポートを開くことを反映することを含む
ことを特徴とする請求項３に記載のコンピュータ記憶媒体。
【請求項９】
前記マクロ動作は、レコードを表示するためのマクロ動作を含み、
前記コンピュータによって実行されたときに、前記要求を受信することに応答して、前記コンピュータに前記ＵＲＬを更新して前記マクロ動作の実行を反映させる前記命令は、前記コンピュータによって実行されたときに、前記ＵＲＬを更新して前記レコードを表示することを反映することを含む
ことを特徴とする請求項３に記載のコンピュータ記憶媒体。
【請求項１０】
前記マクロ動作は、データベース・オブジェクトを適所で閲覧するためのマクロ動作を含み、
前記コンピュータによって実行されたときに、前記要求を受信することに応答して、前記コンピュータに前記ＵＲＬを更新して前記マクロ動作の実行を反映させる前記命令は、前記コンピュータによって実行されたときに、前記ＵＲＬを更新して前記データベース・オブジェクトを適所に表示することを反映することを含む
ことを特徴とする請求項３に記載のコンピュータ記憶媒体。
【請求項１１】
前記コンピュータによって実行されたときに、前記コンピュータに、
ユーザ・インタフェース・コントロールからデータベース・オブジェクトを表示する要求を受信することと、
前記要求を前記ユーザ・インタフェース・コントロールから受信したことに応答して、前記データベース・オブジェクトを表示させ、前記ＵＲＬを更新して前記データベース・オブジェクトの表示を反映することと
をさせるコンピュータ実行可能命令をさらに有することを特徴とする請求項３に記載のコンピュータ記憶媒体。
【請求項１２】
前記ユーザ・インタフェース・コントロールがナビゲーション・コントロールを含むことを特徴とする請求項１１に記載のコンピュータ記憶媒体。
【請求項１３】
データベース・オブジェクトを適所に表示するためのコンピュータに実装された方法であって、
要求されたデータベース・オブジェクトをロードするターゲット・サブフォーム・コントロールへのパスを特定する第１のパラメータと、前記データベース・オブジェクトの名前を特定する第２のパラメータと、前記データベース・オブジェクトの型を特定する第３のパラメータとを含む、前記データベース・オブジェクトを適所に表示するためのマクロ動作を実行する要求を受信し、
前記データベース・オブジェクトの前記要求を受信することに応答して、前記パラメータを用いて前記データベース・オブジェクトを特定し、前記要求されたデータベース・オブジェクトを前記サブフォーム・コントロール内の適所に表示させ、前記ＵＲＬを更新して前記データベース・オブジェクトの表示を反映させる
ためのコンピュータに実装された動作を実施するステップを含むことを特徴とする方法。
【請求項１４】
前記要求が、前記データベース・オブジェクトが前記サブフォーム・コントロール内の適所に表示されたときに、現在のページとすべき前記データベース・オブジェクトのページを特定する第４のパラメータをさらに備えることを特徴とする請求項１３に記載のコンピュータに実装された方法。
【請求項１５】
前記要求は、前記データベース・オブジェクトのデータ・モードを特定する第５のパラメータをさらに備えることを特徴とする請求項１４に記載のコンピュータに実装された方法。
【請求項１６】
前記データ・モードは、追加モード、編集モードまたは読取専用モードを備えることを特徴とする請求項１５に記載のコンピュータに実装された方法。
【請求項１７】
前記データベース・オブジェクトは、データベース・フォームまたはデータベース・リポートを備え、前記第３のパラメータは前記データベース・オブジェクトがデータベース・フォームであるかデータベース・リポートであるかを特定することを特徴とする請求項１６に記載のコンピュータに実装された方法。
【請求項１８】
前記要求は、前記データベース・オブジェクトのレコード・ソースに対するｗｈｅｒｅ条件を指定する第６のパラメータを含むことを特徴とする請求項１７に記載のコンピュータに実装された方法。
【請求項１９】
プロセッサと、
前記プロセッサと通信するメモリであって、前記メモリは、前記プロセッサにより実行されたときに、前記プロセッサに、
データベース・オブジェクトの要求を受信することであって、前記要求は、要求されたデータベース・オブジェクトをロードするターゲット・サブフォーム・コントロールへのパスを特定する第１のパラメータと、前記データベース・オブジェクトの名前を特定する第２のパラメータと、前記データベース・オブジェクトの型を特定する第３のパラメータとを有するＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）を含むことと、
前記データベース・オブジェクトの前記要求を受信することに応答して、前記ＵＲＬの前記パラメータを用いて前記データベース・オブジェクトを特定し、前記要求されたデータベース・オブジェクトを前記サブフォーム・コントロール内の適所に表示することと、
マクロ動作を実行する要求を受信することと、
前記マクロ動作を実行する前記要求を受信することに応答して、前記ＵＲＬを更新して前記マクロ動作の実行を反映することと
をさせる命令を含む、メモリと
を備えることを特徴とするコンピュータシステム。
【請求項２０】
前記マクロ動作は、フォームを開くためのマクロ動作、レポートを開くためのマクロ動作、レコードを表示するためのマクロ動作又はデータベース・オブジェクトを適所で閲覧するためのマクロ動作を備え、
前記命令は、前記プロセッサにより実行されたときに、前記要求を受信することに応答して、前記プロセッサに前記ＵＲＬを更新させ、前記マクロ動作を反映させる命令であって、
前記マクロ動作がフォームを開くためのマクロ動作を備える場合、前記プロセッサに前記ＵＲＬを更新させフォームを開くことを反映させ、
前記マクロ動作がレポートを開くためのマクロ動作を備える場合、前記プロセッサに前記ＵＲＬを更新させ前記レポートを開くことを反映させ、
前記マクロ動作がレコードを表示するためのマクロ動作を備える場合、前記プロセッサに前記ＵＲＬを更新させ前記レコードを表示することを反映させ、
前記マクロ動作がデータベース・オブジェクトを適所で閲覧するためのマクロ動作を備える場合、前記プロセッサに前記ＵＲＬを更新させ前記データベース・オブジェクトを適所で表示することを反映させる
命令を含むことを特徴とする請求項１９に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース・アプリケーションのナビゲーションに関する。
【背景技術】
【０００２】
一部のデータベース管理プログラムにより、開発者はデータベースに関する特定の機能を実施するためのデータベース・アプリケーションを作成できる。例えば、ユーザが学校への寄付または義援金を追跡できるようにするデータベース・アプリケーションを作成できる可能性がある。ユーザは典型的に、データベース・アプリケーションまたはランタイム版のデータベース・クライアントを作成するために利用されるデータベース管理プログラム（本明細書では、「データベース・クライアント・アプリケーション・プログラム」または単に「データベース・クライアント」と称する）を通じて、このようなデータベース・アプリケーションにアクセスする。その結果、データベース・クライアントのコピーを有していない、またはランタイム版を自分のコンピュータにインストールしていないユーザは、データベース・アプリケーションを利用できない。
【０００３】
共同作業を容易にし、ユーザがデータベース・クライアント・アプリケーション・プログラムをコピーすることなくデータベース・アプリケーションにアクセスしデータベース・アプリケーションを利用できるようにするために、Ｗｅｂ（「Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ」）ブラウザおよびローカル・エリア・ネットワークまたは広域ネットワークを用いてアクセスできるデータベース・アプリケーションのバージョンを作成できる。かかるウェブにアクセス可能なバージョンのデータベース・アプリケーションを用いると、ユーザはウェブ・ベースのデータベース・アプリケーションが利用するＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）をコピー・アンド・ペーストすることができる。ユーザがかかるＵＲＬに戻ると、ユーザは、自分がＵＲＬをコピーした時に見たのと同じデータを見ることを期待する。ウェブ・ベースのデータベース・アプリケーションが異なる結果を返すと、ユーザは苛立つこともあり、または混乱することもある。
【０００４】
本明細書で提示する発明は、これらおよび他の事項を考慮してなされたものである。
【発明の概要】
【０００５】
本明細書では、データベース・アプリケーションをナビゲートするための概念と技術を説明する。本明細書で提示する実施形態によれば、データベース・サーバ・アプリケーション・プログラムが、ＵＲＬを用いてプログラム可能なインタフェースをデータベース・アプリケーションに提供するように構成される。正しくフォーマットされたＵＲＬを利用して、特定の結果をデータベース・アプリケーションからフェッチすることができる。また、ＵＲＬをデータベース・サーバ・アプリケーションによりプログラムで更新して、正しいパスを現在表示されているデータに反映する。この機構を用いることにより、コピーされ、後にデータベース・アプリケーションに戻るために利用されるＵＲＬは、一貫したデータをデータベース・アプリケーションから返す。
【０００６】
本明細書で提示する１の実施によれば、ＵＲＬ（本明細書では、「データベース・サービスＵＲＬ」と称する）を用いてプログラム可能なインタフェースをデータベース・アプリケーションに提供するように構成されたデータベース・サーバ・アプリケーション・プログラムが提供される。データベース・サービスＵＲＬは、特定の結果をデータベース・アプリケーションからフェッチするために利用できるＵＲＬである。１の実装によれば、データベース・サービスＵＲＬは、要求されたデータベース・オブジェクトをロードするターゲット・サブフォーム・コントロールへのパスを特定する、第１のパラメータを含む。１実施形態では、要求されたデータベース・オブジェクトは、データバインドされたフォームまたはレポートである。サブフォーム・コントロールとは、ウェブ・ブラウザ内部で利用してフォームまたはレポートのようなデータベース・オブジェクトを表示できる、ユーザ・インタフェース・コントロールである。
【０００７】
他の実装によれば、データベース・サービスＵＲＬは、サブフォーム・コントロールにロードすべきデータベース・オブジェクトの名前を特定する、第２のパラメータを含む。データベース・サービスＵＲＬは、ロードすべきデータベース・オブジェクトの型を特定する第３のパラメータを含むことができる。例えば、当該第３のパラメータが、データベース・オブジェクトがデータベース・フォームかデータベース・レポートかを特定できる。幾つかの実装によれば、データベース・サービスＵＲＬはまた、現在表示されているページとすべき、データベース・オブジェクトの特定のページを特定する第４のパラメータを含む。要求されたデータベース・オブジェクトのデータ・モードを特定する第５のパラメータを提供できる。例えば、第５のパラメータは、データベース・オブジェクトを動作の追加モード、編集モード、読取専用モードとして提供すべきかどうかを示すことができる。データベース・サービスＵＲＬはまたは、データベース・オブジェクトのレコード・ソースに対してＷＨＥＲＥ条件を指定するための第６のパラメータを含むことができる。当該ＷＨＥＲＥ条件を利用して、フォームまたはレポートで表示されている実データをフィルタして詳細化（ｆｉｌｔｅｒ  ｄｏｗｎ）することができる。他のパラメータ、例えば、データをどのようにフィルタまたは整列するかを指定するためのパテメータを提供できる。
【０００８】
幾つかの実装によれば、データベース・アプリケーションが利用するデータベース・サービスＵＲＬを、データベース・サーバ・アプリケーション・プログラムの内部または制御下で実行されるプログラム・コードによってプログラムで更新できる。例えば、フォームをウェブ・ブラウザで開くためのマクロ動作を実行できる。マクロ動作の実行により、開いたフォームのデータベース・サービスＵＲＬを正しく反映するようにデータベース・サービスＵＲＬが更新される。同様に、レポートを開くためのマクロ動作、レコードを表示するためのマクロ動作、フォームまたはレポートを表示するためのマクロ動作、所定の位置のデータベース・オブジェクトを閲覧するためのマクロ動作、および、他の機能を実施するためのマクロ動作が、データベース・サービスＵＲＬを適切に更新できる。同様に、データベース・アプリケーションをナビゲートするために提供されるユーザ・インタフェース・コントロール、例えばナビゲーション・コントロールを選択することにより、データベース・サービスＵＲＬを更新することもできる。本明細書で用いる「マクロ動作」という用語はデータベース・アプリケーションが提供するマクロを指すことは理解されよう。他の種類の実行可能コンポーネントを利用して同様な機能を提供できることは理解されよう。
【０００９】
他の実装によれば、本明細書では、データベース・オブジェクト、例えばフォームまたはレポートをウェブ・ブラウザ内の適所に表示する機能を提供するマクロ動作が、データベース・サーバ・アプリケーションと関連して使用するために提供される。本明細書ではＢｒｏｗｓｅｒＴｏマクロ動作と称するマクロ動作を使用することで、データベース・アプリケーションのコンテキストを維持しつつ、フォームまたはレポートの現在のビューを変更できる。１の実装によれば、ＢｒｏｗｓｅｒＴｏマクロ動作は、サブフォーム・コントロールへのパスを特定するパラメータ、表示すべきデータベース・オブジェクトの名前を特定するパラメータ、およびデータベース・オブジェクトの型を特定するパラメータをとる。幾つかの実装では、現在のページとして表示すべきデータベース・オブジェクトのページを特定するパラメータ、データベース・オブジェクトのデータ・モードを特定するパラメータ、ＢｒｏｗｓｅｒＴｏマクロ動作によって表示すべきデータベース・オブジェクトのレコード・ソースに対するＷＨＥＲＥ条件を規定するパラメータを、データベース・オブジェクトを適所に表示するときに供給して利用できる。
【００１０】
上述の主題を、コンピュータ制御型の装置として、コンピュータ・プロセスとして、コンピューティング・システムとして、コンピュータ読取可能記憶媒体のような製品として、または別の方法で実装できることは理解されよう。これらおよび他の様々な機能は、後の発明を実施するための形態を読み、関連する図面を参照すれば明らかであろう。
【００１１】
本要約は、選択した概念を簡潔な形で導入するために提供されている。その概念は、後の発明を実施するための形態においてさらに説明する。本要約は、クレーム主題の主要な特徴または本質的な特徴を特定しようとするものではなく、特許請求の範囲の主題の範囲を限定するために本要約を使用しようとするものでもない。さらに、特許請求の範囲の主題は、本開示の任意の部分で記載した任意のまたは全ての不都合を解決する実装には限定されない。
【図面の簡単な説明】
【００１２】
【図１】本明細書で提示した実施形態によって提供される例示的な動作環境と幾つかのソフトウェア・コンポーネントの態様を示す、ネットワークおよびコンピュータ・アーキテクチャを示す図である。
【図２】本明細書で提示した１実施形態で利用されるナビゲーション・コントロールの態様を示すユーザ・インタフェースを示す図である。
【図３】本明細書で提示した実施形態において提供されるデータベース・サービスのＵＲＬの態様を示すデータ構造図を示す図である。
【図４】諸実施形態において本明細書で提示した様々な技術を利用する幾つかのマクロ動作を示すソフトウェアを示す図である。
【図５】本明細書で提示した実施形態に従って、データベース・サービスのＵＲＬに対する要求を処理し、データベース・サービスのＵＲＬを更新し、フォームまたはレポートを閲覧するためのマクロ動作を実行するための、本明細書で提示した実施形態の態様を説明するルーチンを示す流れ図である。
【図６】本明細書で提示した実施形態に従って、データベース・サービスのＵＲＬに対する要求を処理し、データベース・サービスのＵＲＬを更新し、フォームまたはレポートを閲覧するためのマクロ動作を実行するための、本明細書で提示した実施形態の態様を説明するルーチンを示す流れ図である。
【図７】本明細書で提示した実施形態に従って、データベース・サービスのＵＲＬに対する要求を処理し、データベース・サービスのＵＲＬを更新し、フォームまたはレポートを閲覧するためのマクロ動作を実行するための、本明細書で提示した実施形態の態様を説明するルーチンを示す流れ図である。
【図８】本明細書で提示した実施形態の諸態様を実装できるコンピュータ・システム向けの、例示的なコンピュータのハードウェアおよびソフトウェアのアーキテクチャを示すコンピュータ・アーキテクチャを示す図である。
【発明を実施するための形態】
【００１３】
以下の詳細な説明は、データベース・アプリケーションのナビゲーションに対する技術に関するものである。本明細書で説明する主題を、コンピュータ・システム上のオペレーティング・システムおよびアプリケーション・プログラムの実行と関連して実行されるプログラム・モジュールの一般的なコンテキストで提示するが、他の実装を他の種類のプログラム・モジュールと組み合わせて実施ができることは当業者には理解されよう。一般に、プログラム・モジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造、および他種の構造を含む。さらに、本明細書で説明する主題を他のコンピュータ・システム構成で実現できることは当業者には理解されよう。当該他のコンピュータ・システム構成には、ハンド・ヘルド装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラム可能な消費家電、ミニコンピュータ、メインフレーム・コンピュータ、等が含まれる。
【００１４】
以下の詳細な説明では、その一部を成す添付図面を参照する。添付図面は、例示的で具体的な実施形態または例として示してある。図面を参照するが、図面では幾つかの図にわたって同一の数字で同一の要素を表し、データベース・アプリケーションをナビゲートするための概念および技術を説明する。
【００１５】
図１を参照すると、本明細書で提示する実施形態によって提供される、例示的な動作環境と幾つかのソフトウェア・コンポーネントに関する詳細を提供する。具体的には、図１は、データベース・アプリケーション１０８を提供するためのシステム１００の諸態様を示す。図１に示すように、システム１００は、ネットワーク１１８によって相互接続されるクライアント・コンピュータ１０２とサーバ・コンピュータ１０４を含む。図１に示す構成は例にすぎず、図１に示していない追加のコンピューティング・システムとネットワークを、本明細書で提示した様々な実施形態において利用できることは理解されよう。ネットワーク１１８を本明細書ではインターネットのようなＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）として説明するが、他種のＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）およびＷＡＮを、本明細書で提示した実施形態によって利用できることは理解されよう。
【００１６】
図１に示すように、クライアント・コンピュータ１０２は、オペレーティング・システムと適切なアプリケーション・プログラム・ソフトウェアを実行するために具備される。具体的には、クライアント・コンピュータ１０２は、データベース・クライアント・アプリケーション・プログラム１０６を実行するように構成される。データベース・クライアント・アプリケーション・プログラム１０６は、本明細書では単に「データベース・クライアント」と称することもあるが、クライアント・コンピュータ１０２上で実行するために構成されたデータベース・アプリケーション・プログラムを備える。例えば、１の実装では、データベース・クライアント・アプリケーション・プログラム１０６は、ワシントン州レドモンドのマイクロソフト（登録商標）社製のＡＣＣＥＳＳデータベース・クライアント・アプリケーション・プログラムを備える。しかし、他社製のデータベース・クライアント・アプリケーション・プログラムを、本明細書で提示したソフトウェア・コンポーネントと関連して利用できることは理解されよう。
【００１７】
図１に示すように、データベース・クライアント・アプリケーション・プログラム１０６は、諸実施形態において、ユーザがデータベース・アプリケーション１０８を作成できるように構成される。データベース・アプリケーション１０８を、データベース・クライアント・アプリケーション・プログラム１０６またはランタイムバージョンのデータベース・クライアントによって実行できる。データベース・アプリケーション１０８を使用することにより、クライアント・コンピュータ１０２のユーザはデータベースと、データベース・アプリケーション１０８によってサポートされる様々な方法で対話することができる。１実施形態では、データベース・アプリケーション１０８は内蔵型であり、データベース・アプリケーション１０８が動作する実データベースを含むことは理解されよう。
【００１８】
本明細書で提示する１実施形態によれば、データベース・クライアント・アプリケーション・プログラム１０６はさらに、ユーザがデータベース・アプリケーション１０８の一部としてナビゲーション・フォーム２００を定義できるように構成される。図２に関して後でさらに詳細に論ずるように、ナビゲーション・フォーム２００がナビゲーション・コントロール２０２を含むことができる。ナビゲーション・コントロール２０２は、ターゲット、例えばフォーム１２４Ａまたはデータベース・レポート１２４Ｂとそれぞれを関連付けることができる、選択可能なタブを含む。適切なユーザ入力装置を用いてナビゲーション・コントロール２０２上の選択可能なタブの１つを選択すると、当該選択可能なタブに関連付けられたターゲットが、データベース・アプリケーション１０８によってナビゲーション・フォーム２００内に表示される。複数のナビゲーション・コントロール２０２を同一のナビゲーション・フォーム２００に追加できる。
【００１９】
本明細書で提示した実施形態をナビゲーション・コントロール２０２と関連した動作として説明したが、本明細書で提示した実施形態はかかる実装に限定されないことは理解されよう。そうではなく、本明細書で提示した実施形態を、データベース・アプリケーションをナビゲートするために提供される、事実上任意の種類のユーザ・インタフェース・コントロールで利用できる。
【００２０】
本明細書で提示した他の態様によれば、データベース・クライアント・アプリケーション・プログラム１０６はまた、ナビゲーション・フォーム２００およびナビゲーション・コントロール２０２を含むデータベース・アプリケーション１０８を発行するための機能をサーバ・コンピュータ１０４に提供する。これに関して、クライアント・コンピュータ１０２のユーザは、ナビゲーション・フォーム２００およびナビゲーション・コントロール２０２を含むデータベース・アプリケーション１０８をサーバ・コンピュータ１０４に発行する要求をデータベース・クライアント・アプリケーション・プログラム１０６に行うことができる。かかる要求を受け取ったことに応答して、データベース・クライアント・アプリケーション・プログラム１０６を、ウェブ・サーバ・アプリケーション・プログラム１１２を介してウェブ・サイト１１４と通信してデータベース・アプリケーション１０８をサーバ・コンピュータ１０４に発行させるように構成する。これに関して、データベース・クライアント・アプリケーション・プログラム１０６は、ＸＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）またはＸＡＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ａｐｐｌｉｃａｔｉｏｎ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）を利用してデータ・ファイルを生成できる。他種のマークアップ言語またはデータ・ファイル形式を利用してこの情報をサーバ・コンピュータ１０４に送信できることは理解されよう。
【００２１】
サーバ・コンピュータ１０４に発行することにより、ナビゲーション・フォーム２００およびナビゲーション・コントロール２０２を含むデータベース・アプリケーション１０８を、ウェブ・インタフェースを通じてサーバ・コンピュータ１０４が利用できるようにすることができる。具体的には、ウェブ・サイト１１４は、１実施形態では、ナビゲーション・フォーム２００とナビゲーション・コントロール２０２に対する要求をウェブ・ブラウザ・アプリケーション・プログラム１１０から受け取り、当該要求に応答するように構成される。データベース・クライアント・アプリケーション・プログラム１０６の１つの版を、本明細書ではデータベース・サーバ・アプリケーション・プログラム１１６と称するが、サーバ・コンピュータ１０４上で実行できる。データベース・サーバ・アプリケーション・プログラム１１６を用いることにより、ナビゲーション・フォーム２００およびナビゲーション・コントロール２０２を含むデータベース・アプリケーション１０８の様々な機能を、ウェブ・サイト１１４を通じて利用可能にすることができる。
【００２２】
本明細書で提示する１実施形態によれば、ウェブ・サイト１１４は、ワシントン州レドモンドのマイクロソフト社製のＳＨＡＲＥＰＯＩＮＴコラボレーション・システムを備える。しかし、本明細書で提示した実施形態を、他社製の他種のウェブ・サイトで利用できることは理解されよう。また、ナビゲーション・フォーム２００およびナビゲーション・コントロール２０２を含むウェブ・ブラウザ・アプリケーション・プログラム１１０がウェブ・サイト１１４と相互作用するために利用されるとして説明しているが、ウェブ・ページを要求しレンダリングできる任意の種類のプログラムを利用できることは理解されよう。
【００２３】
図３乃至６に関して後でさらに詳細に説明するように、データベース・サーバ・アプリケーション・プログラム１１６は、幾つかの実施形態では、ＵＲＬ１２０（本明細書では、「データベース・サービスＵＲＬ」と称する）により、プログラム可能なインタフェースをデータベース・アプリケーション１０８に提供するように構成される。データベース・サービスＵＲＬは、フォーム１２４Ａ、レポート１２４Ｂ、または別の種類のデータベース・オブジェクトのような特定の結果をデータベース・アプリケーション１０８からフェッチするために利用できるＵＲＬである。また、後でさらに詳細に開示するように、データベース・サービスＵＲＬ１２０をデータベース・サーバ・アプリケーション１１６によりプログラム的に更新して、正しいパスを現在表示されているデータに反映する。当該機構を用いることにより、コピーされ、後にデータベース・アプリケーショシに戻るために利用されるＵＲＬが、一貫したデータをデータベース・アプリケーション１０８から返す。
【００２４】
図２を参照して、本明細書で提示する１実施形態においてナビゲーション・フォーム２００とナビゲーション・コントロール２０２の動作に関する詳細をさらに説明する。具体的には、図２はウェブ・ブラウザ・アプリケーション１１０が生成するフォーム２００のレンダリングを示す。上で簡潔に論じたように、ナビゲーション・コントロール２０２は幾つかのタブ２０４Ａ〜２０４Ｃを含む。タブ２０４Ａ〜２０４Ｃを各々、フォーム１２４Ａまたはレポート１２４Ｂのようなターゲットと関連付けることができる。タブ２０４Ａ〜２０４Ｃのうち１つを選択すると、関連するターゲットがサブフォーム・コントロール２０６に表示される。上で論じたように、サブフォーム・コントロール２０６は、ウェブ・ブラウザ・アプリケーション・プログラム１１０内部で利用して、フォームまたはレポートのようなデータベース・オブジェクトを表示できるユーザ・インタフェース・コントロールである。複数のナビゲーション・コントロール２０２をカスケードできることは理解されよう。さらに、ナビゲーション・コントロール２０２をフォーム２０２上の他の位置、例えば、左、下、または右側に配置できる。さらに、タブ２０４Ａ〜２０４Ｃが他の形状をとることができ、またはタブ２０４Ａ〜２０４Ｃをハイパーリンクとして表現することもできる。
【００２５】
図１に関して上で簡単に論じたように、データベース・サーバ・アプリケーション・プログラム１１６は、１実施形態では、データベース・サービスＵＲＬ１２０を使用して、インタフェースをデータベース・アプリケーション１０８に提供するように構成される。データベース・サービスＵＲＬ１２０が、サブフォーム・コントロール２０６が表示するデータベース・オブジェクトに対して正しいパスを維持することを確実にするために、タブ２０４Ａ〜２０４Ｃの１つを選択する毎にデータベース・サービスＵＲＬ１２０を更新する。後でさらに詳細に説明するように、データベース・サービスＵＲＬ１２０を、データベース・アプリケーション１０８をナビゲートするために提供される他のユーザ・インタフェース・コントロールを選択した後、データベース・アプリケーション１０８によりプログラム・コンポーネントを実行したことに応答して更新できる。この機能に関する詳細を、図３乃至７に関して後で提供する。
【００２６】
図３を参照して、幾つかの実施形態で提供されるデータベース・サービスＵＲＬ１２０の諸態様を示すデータ構造図を説明する。図３に示すように、データベース・サービスＵＲＬ１２０はアドレス３０２Ａと幾つかのパラメータ３０２Ｂ〜３０２Ｇを含む。幾つかの実装によれば、アドレス３０２Ａはサーバ・アドレスと、ＵＲＬ１２０のリマインダが、要求されたページへのブックマークであるとの指示によりフォーマットされる。これにより、ウェブ・ブラウザ・アプリケーション・プログラム１１０がページを再読み込みすることなしにＵＲＬ１２０を変更できる。例えば、ＨＴＴＰ（ｈｙｐｅｒｔｅｘｔ  ｔｒａｎｓｐｏｒｔ  ｐｒｏｔｏｃｏｌ）を用いると、アドレス３０２Ｃは「ｈｔｔｐ：／／ａｄｄｒｅｓｓ／ｐａｇｅｎａｍｅ＃」の形をとることができる。アドレス３０２Ａを、他種のプロトコルで使用するように規定することができる、データベース・アプリケーション１０８をホストする適切なサーバ・コンピュータ１０４のネットワーク・アドレスを用いてフォーマットできることは理解されよう。
【００２７】
上で簡単に述べたように、データベース・サービスＵＲＬ１２０はさらに、幾つかのパラメータ３０２Ｂ〜３０２Ｇを含む。幾つかの実施形態では、パラメータ３０２Ｂ〜３０２Ｇは、図３に示す順序で指定される。しかし、他の実施形態ではパラメータ３０２Ｂ〜３０２Ｇの順序が異なってもよく、当該パラメータのうち幾つかを全ての要求で利用しなくともよいことは理解されよう。
【００２８】
幾つかの実装では、データベース・サービスＵＲＬ１２０は、サブフォーム・コントロール２０６へのパスを特定する第１のパラメータ３０２Ｂを含む。具体的には、当該パラメータにより、データベース・アプリケーション１０８のメイン・フォームから、指定されたデータベース・オブジェクトをロードするターゲット・サブフォーム・コントロール２０６へのパスを特定する。データベース・アプリケーション１０８のメイン・フォームは、ウェブ・ブラウザ１１０が提供するブラウザ・ウインドウに直接ロードされるフォームである。本明細書で利用する際、「データベース・オブジェクト」という用語は、フォーム１２４Ａ、レポート１２４Ｂ、またはデータベース・アプリケーション１０８が提供する別の種類のオブジェクトを指すことができる。
【００２９】
１実施形態によれば、パラメータ３０２Ｂを利用して、パラメータ３０２Ｄが特定するオブジェクト以外のサブフォームをロードできることは理解されよう。例えば、１つのシナリオでは、第１のサブフォームを含む第１のフォームが開いている場合、パラメータ３０２Ｂは当該第１のサブフォームを特定し、パラメータ３０２Ｄが特定するフォームがそのサブフォームにロードされる。別のシナリオでは、「Ｆｏｒｍ１．Ｓｕｂｆｏｒｍ１＞Ｆｏｒｍ２．Ｓｕｂｆｏｒｍ２＞Ｆｏｒｍ３．Ｓｕｂｆｏｒｍ３」のように、ターゲット・パスをパラメータ３０２Ｂによって指定できる。このパラメータは、第２のフォームを第１のサブフォームにロードし、次いで第３のフォームを第２のフォームの第２のサブフォームにロードすることを意味する。これはまた、パラメータ３０２Ｄが指定するフォームが第３のフォームの第３のサブフォームにロードされることを指定する。他の多少複雑なシナリオを、本明細書で提示した技術で利用できることは理解されよう。
【００３０】
諸実装によれば、データベース・サービスＵＲＬ１２０はまた、指定したサブフォーム・コントロール２０６内部にロードされるデータベース・オブジェクトの名前を特定する第２のパラメータ３０２Ｄを含む。後でさらに詳細に論ずるように、パラメータ３０２Ｄによって指定するオブジェクトは、パラメータ３０２Ｂ、３０２Ｆ、３０２Ｇが適用されるデータベース・オブジェクトでもある。１の実装によれば、データベース・サービスＵＲＬ１２０はまた、サブフォーム・コントロール２０６にロードすべきデータベース・オブジェクトの型を特定する第３のパラメータ３０２Ｃを含む。例えば、１の実装では、パラメータ３０２Ｃは、データベース・オブジェクトがデータベース・フォーム１２４Ａであるかレポート１２４Ｂであるかを特定する。
【００３１】
幾つかの実施形態によれば、データベース・サービスＵＲＬ１２０は、現在のページとして表示すべきサブフォーム・コントロール２０６へロードすべきデータベース・オブジェクトのページを特定する第４のパラメータ３０２Ｅを含むことができる。サブフォーム・コントロール２０６に表示されるデータベース・オブジェクトのデータ・モードを特定する第５のパラメータ３０２Ｆを、データベース・サービスＵＲＬ１２０に提供できる。例えば、パラメータ３０２Ｆは、データベース・オブジェクトが、動作の追加モード、編集モード、または読取専用モードの何れで開かれるかを特定できる。パラメータ３０２Ｆが指定されない場合、サブフォーム・コントロール２０６をホストするフォームに関連付けられたパラメータを利用して、サブフォーム・コントロール２０６にホストされたデータベース・オブジェクトが動作の追加モード、編集モード、または読取専用モードの何れで開かれるかを判定できる。
【００３２】
幾つかの実施形態によれば、サブフォーム・コントロール２０６によってホストされるデータベース・オブジェクトのレコード・ソースに対するＷＨＥＲＥ条件を含む第６のパラメータ３０２Ｇを指定できる。第６のパラメータ３０２Ｇを指定した場合、パラメータ３０２Ｇの値で、サブフォーム・コントロール２０６にホストされたデータベース・オブジェクトのＷＨＥＲＥ条件が置換される。ＷＨＥＲＥ条件を利用して、サブフォーム・コントロール２０６にホストされたデータベース・オブジェクトによって表示される実データを指定できることは理解されよう。以下でさらに詳細に論ずるように、データベース・サービスＵＲＬ１２０とパラメータ３０２Ｂ〜３０２Ｇをデータベース・サーバ・アプリケーション・プログラム１１６によって利用して、データベース・アプリケーション１０８の特定の部分を特定する。これに関して、データベース・サーバ・アプリケーション・プログラム１１６の動作に関する詳細を以下でさらに説明する。
【００３３】
上で簡単に論じたように、データベース・サーバ・アプリケーション・プログラム１１６が利用するデータベース・サービスＵＲＬ１２０を、データベース・サーバ・アプリケーション・プログラム１１６の内部または制御下で実行されるプログラム・コードによってプログラムで更新できる。具体的には、プログラマが図４に示すマクロ動作１２２を利用してデータベース・アプリケーション１０８の諸態様を実装できる。例えば、幾つかの実装では、ＯｐｅｎＦｏｒｍ（）マクロ動作１２２Ａを利用してフォーム１２４Ａを開くことができる。同様に、ＯｐｅｎＲｅｃｏｒｄ（）マクロ動作１２２Ｂを利用してレポート１２４Ｂを開くことができる。同様に、ＧｏＴｏＲｅｃｏｒｄ（）マクロ動作１２６Ｃを利用して、フォーム１２４Ａまたはレポート１２４Ｂ内に特定のレコードを表示できる。諸実施形態では、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄも提供される。ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄは、データベース・アプリケーション１０８がウェブ・ブラウザ・アプリケーション１１０にメイン・フォームのコンテキストを変更することなくデータベース・オブジェクトを閲覧させることを許可する。ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄに関する詳細を、図７を参照して以下でさらに説明する。
【００３４】
様々な実施形態によれば、マクロ動作１２２Ａ〜１２２Ｄは、その各々の機能を実行した後にデータベース・サービスＵＲＬ１２０を更新するように構成される。マクロ動作１２２Ａ〜１２２Ｄがデータベース・サービスＵＲＬ１２０を更新するように構成されるので、データベース・アプリケーション１０８の開発者は明示的にこの機能をプログラムする必要はない。例えば、ＧｏＴｏＲｅｃｏｒｄ（）マクロ動作１２２Ｃはデータベース・サービスＵＲＬ１２０を更新して、表示したレコードへの正しいパスを反映する。図７に関して以下でさらに詳細に論ずるように、ＢｒｏｗｓｅｒＴｏマクロ動作１２２ＤはデータベースＵＲＬ１２０を更新して、表示したフォーム１２４Ａまたはレポート１２４Ｂへの正しいパスを反映する。マクロ動作１２２Ａ〜１２２Ｄの動作に関する詳細を、図６を参照して以下でさらに説明する。
【００３５】
幾つかの実施形態によれば、データベース・サーバ・アプリケーション・プログラム１１６は、他種の入力に応答してデータベース・サービスＵＲＬ１２０を更新するように構成されることは理解されよう。例えば、ウェブ・ブラウザ・アプリケーション・プログラム１１０により提供されるユーザ・インタフェース・コントロールを介して、データベース・アプリケーション１０８が提供する特定のデータベース・オブジェクトを閲覧するための要求が受け取られると、データベース・サーバ・アプリケーション・プログラム１１６は、データベース・サービスＵＲＬ１２０を更新して、表示したオブジェクトへの正しいパスを反映する。例えば、１の実装では、データベース・サーバ・アプリケーション・プログラム１１６は、図１および図２に関して上述したナビゲーション・コントロール２０２でタブ２０４Ａ〜２０４Ｃの１つを選択したことに応答して、データベース・サービスＵＲＬ１２０を更新するように構成される。データベース・アプリケーション１０８をナビゲートするための他種のユーザ・インタフェース・コントロールを選択したことに応答して、データベース・サーバ・アプリケーション・プログラム１１６によってデータベース・サービスＵＲＬ１２０を更新できることは理解されよう。
【００３６】
図５は、本明細書で提示する１実施形態に従ってデータベース・サービスＵＲＬ１１０を処理するための１つのプロセスの態様を示す流れ図である。本明細書で説明する論理動作を、（１）コンピューティング・システムで実行される一連のコンピュータ実装の動作またはプログラム・モジュールとして、および／または（２）コンピューティング・システム内部の相互接続された機械論理回路または回路モジュールとして実装されることは理解されよう。どちらの実装をとるかは、コンピューティング・システムの性能や他の要件に応じた選択の問題である。従って、本明細書で説明する論理動作は、動作状態、動作、構造的な装置、またはモジュールのように様々に言及される。これらの動作状態、動作、構造的な装置、およびモジュールを、ソフトウェアで、ファームウェアで、特殊目的のデジタル論理で、およびそれらの任意の組合せで実装できる。図面で示し本明細書で説明したものよりも多いかまたは少ない動作を実施できることは理解されよう。これらの動作を、本明細書で説明したのとは異なる順序で実施できる。
【００３７】
ルーチン５００は動作５０２で開始する。動作５０２で、データベース・サーバ・アプリケーション・プログラム１１６がデータベース・サービスＵＲＬ１２０をウェブ・ブラウザ・アプリケーション・プログラム１１０から受け取る。動作５０４で、データベース・サービスＵＲＬ１２０を受け取ったことに応答して、データベース・サーバ・アプリケーション・プログラム１１６が、所望のデータベース・オブジェクトを特定する。これに関して、データベース・サーバ・アプリケーション・プログラム１１６が、パラメータ３０２Ｄにより指定されるデータを利用して、要求されたデータベース・オブジェクトを特定できる。要求されたデータベース・オブジェクトが特定されると、ルーチン５００は動作５０６に進む。
【００３８】
動作５０６で、データベース・サーバ・アプリケーション・プログラム１１６が、指定のフォームとサブフォームをロードし、指定されたオブジェクトをロードするために利用すべきターゲット・サブフォーム・コントロール２０６を特定する。これに関して、パラメータ３０２Ｂにより指定されるデータを利用して、指定されたデータベース・オブジェクトをロードするための適切なサブフォーム・コントロール２０６を特定できる。ターゲット・サブフォーム・コントロール２０６が特定されると、ルーチン５００は動作５０８に進み、データベース・サーバ・アプリケーション・プログラム１１６が、ＷＨＥＲＥ条件がパラメータ３０２Ｇで指定されているかどうかを判定する。指定されている場合は、ルーチン５００は動作５１０に進み、データベース・サーバ・アプリケーション・プログラム１１６がオブジェクトのレコード・ソースのＷＨＥＲＥ条件を、パラメータ３０２Ｇで指定されたＷＨＥＲＥ条件で置き換える。次いで、ルーチン５００は動作５１０から動作５１２に進む。
【００３９】
動作５１２で、パラメータ３０２Ｃで指定されたように、要求されたフォーム１２４Ａまたはレポート１２４Ｂが生成される。フォーム１２４Ａまたはレポート１２４Ｂの生成には、データベース・サーバ・アプリケーション・プログラム１１６によってクエリを実行することが必要であってもよいことは理解されよう。要求されたフォーム１２４Ａまたはレポート１２４Ｂが生成されると、ルーチン５００は動作５１４に進み、パラメータ３０２Ｅによって指定されたページが、要求されたフォーム１２４Ａまたはレポート１２４Ｂの現在のページとされる。次いで、ルーチン５００は動作５１６に進み、要求されたフォーム１２４Ａまたはレポート１２４Ｂがウェブ・ブラウザ・アプリケーション・プログラム１１０に返されて、特定したサブフォーム・コントロール２０６に表示される。返されたデータベース・オブジェクトのデータ・モードはまた、パラメータ３０２Ｆによって指定される値に等しいように設定される。ウェブ・ブラウザ・アプリケーション１１０がデータベース・オブジェクトを受け取ると、当該データベース・オブジェクトがサブフォーム・コントロール２０６に表示される。ルーチン５００は動作５１６から動作５１８に進み、そこで終了する。
【００４０】
図６を参照して、データベース・サービスＵＲＬ１２０を更新するためのデータベース・サーバ・アプリケーション・プログラム１１６の動作の態様を示して、例示的なルーチン６００を説明する。上で論じたように、データベース・サービスＵＲＬ１２０は、特定のマクロ動作１２２Ａ〜１２２Ｄまたは他のプログラム・コンポーネントの実行に応答して更新される。図６に示すルーチン６００は、１つの例示的な実施形態に従う当該プロセスを示すものである。
【００４１】
ルーチン６００は動作６０２で開始する。動作６０２で、データベース・サーバ・アプリケーション・プログラム１１６が、ＯｐｅｎＦｏｒｍ（）マクロ動作１２２Ａが実行されたかどうかを判定する。実行されている場合は、ルーチン６００は動作６１４に進み、直近に開いたフォームを反映するようにデータベース・サービスＵＲＬ１２０が更新される。ＯｐｅｎＦｏｒｍ（）マクロ動作１２２Ａが実行されていない場合は、ルーチン６００は動作６０２から動作６０４に進み、ＯｐｅｎＲｅｐｏｒｔ（）マクロ動作１２２Ｂが実行されているかどうかを判定する。実行されている場合は、ルーチン６００は動作６１４に進み、直近に開いたレポートへの正しいパスを反映するように、データベース・サービスＵＲＬ１２０が更新される。レポートが開かれていない場合は、ルーチン６００は動作６０４から動作６０６に進む。
【００４２】
動作６０６で、ＧｏＴｏＲｅｃｏｒｄ（）マクロ動作１２２Ｃが実行されたかどうかを判定する。実行された場合は、ルーチン６００は動作６０６から動作６１４に進み、直近に開いたレコードへの正しいパスを反映するように、データベース・サービスＵＲＬ１２０が更新される。ＧｏＴｏＲｅｃｏｒｄ（）マクロ動作１２２Ｃが実行されていない場合は、ルーチン６００は動作６０６から動作６０８に進む。動作６０８で、データベース・サーバ・アプリケーション・プログラム１１６が、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄが実行されたかどうかを判定する。実行された場合は、動作６１４で、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄを利用して表示されたフォーム１２４Ａまたはレポート１２４Ｂを反映するように、データベース・サービスＵＲＬ１２０を更新する。ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄが実行されなかった場合は、ルーチン６００は動作６０８から動作６１０に進み、データベース・サーバ・アプリケーション・プログラム１１６が、別のフォーム１２４Ａ、レポート１２４Ｂ、またはデータベース・アプリケーション１０８が提供するレコードにナビゲートするためにユーザ・インタフェース・コントロールが利用されたかどうかを判定する。利用された場合は、動作６１４で、データベース・サーバ・アプリケーション・プログラム１１６は適切なパスを反映するようにデータベース・サービスＵＲＬ１２０を更新する。
【００４３】
動作６１２で、データベース・サーバ・アプリケーション・プログラム１１６が、タブ２０４Ａ〜２０４Ｃの１つがナビゲーション・コントロール２０２内で選択されたかどうかを判定する。選択された場合は、ルーチン６００は動作６１２から動作６１４に進み、選択されたタブ２０４Ａ〜２０４Ｃのターゲットを反映するように、データベース・サーバ・アプリケーション・プログラム１１６がデータベース・サービスＵＲＬ１２０を更新する。動作６１２でタブ２０４Ａ〜２０４Ｃのうちの１つが選択されなかった場合は、ルーチン６００は動作６１６に進み、そこで終了する。
【００４４】
幾つかの実施形態では、マクロ動作１２２Ａ〜１２２Ｄ以外のソフトウェア・コンポーネントを実行した後にデータベース・サービスＵＲＬ１２０を更新するように、データベース・サーバ・アプリケーション・プログラム１１６が構成されることは理解されよう。具体的には、ウェブ・ブラウザ・アプリケーション１１０内部で提供されるデータベース・アプリケーション１０８のビューが変更されたときにデータベース・サービスＵＲＬを更新するように、データベース・サーバ・アプリケーション・プログラム１１６を構成できる。このように、データベース・サービスＵＲＬ１２０は継続的に適切な状態に保たれる。その結果、データベース・サービスＵＲＬ１２０をコピーし、後でそのＵＲＬ１２０を用いてデータベース・アプリケーション１０８に戻るという、予測可能な結果がユーザに提供される。
【００４５】
図７を参照して、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄの動作に関する詳細をさらに説明する。上で簡潔に論じたように、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄは、データベース・アプリケーション１０８のコンテキストを維持しつつ、ウェブ・ブラウザ・アプリケーション１１０内部でフォーム１２４Ａまたはレポート１２４Ｂの現在のビューを変更するための機能を提供する。
【００４６】
１の実装によれば、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄは、データベース・サービスＵＲＬ１２０内で利用されるものと同様なパラメータをとる。具体的には、１の実装では、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄは、サブフォーム・コントロール２０６へのパスを特定するパラメータ、サブフォーム・コントロール２０６内に表示すべきデータベース・オブジェクトの名前を特定するパラメータ、およびデータベース・オブジェクトの型を特定するパラメータをとる。幾つかの実装では、現在のページとして表示すべきデータベース・オブジェクトのページを特定するパラメータ、データベース・オブジェクトのデータ・モードを特定するパラメータ、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄによって表示すべきデータベース・オブジェクトのレコード・ソースに対するＷＨＥＲＥ条件を指定するパラメータを、データベース・オブジェクトをウェブ・ブラウザ・アプリケーション１１０内の適所に表示するときに供給し利用できる。
【００４７】
図７は、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄの動作を示す１つの例示的なルーチン７００を示す。具体的には、ルーチン７００は動作７０２で開始し、更新すべきサブフォーム・コントロール２０６を、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄとともに供給されたパラメータに基づいて特定する。サブフォーム・コントロール２０６が特定されると、ルーチン７００は動作７０４に進み、そこでターゲット・フォーム１２４Ａまたはレポート１２４Ｂが、特定されたサブフォーム・コントロール２０６にロードされる。次いで、ルーチン７００は動作７０６に進み、ターゲット・フォーム１２４Ａまたはレポート１２４ＢのＷＨＥＲＥ句が、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄに渡されたＷＨＥＲＥ句に設定される。次いで、ルーチン７００が動作７０８に進み、表示されたフォーム１２４Ａまたはレポート１２４Ｂの現在のページが、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄに渡されたパラメータにおいて指定されたページに設定される。現在のページが設定されると、ルーチン７００は動作７１０に進み、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄが、表示されたフォーム１２４Ａまたはレポート１２４Ｂを反映するようにデータベース・サービスＵＲＬ１２０を更新する。ルーチン７００は動作７１０から動作７１２に進み、そこで終了する。
【００４８】
図８は、本明細書で説明したソフトウェア・コンポーネントを実行できるコンピュータ８００の例示的なコンピュータ・アーキテクチャを示す。図８に示すコンピュータ・アーキテクチャは従来型のデスクトップ、ラップトップ、またはサーバ・コンピュータを表す。当該コンピュータ・アーキテクチャを利用して、クライアント・コンピュータ１０２またはサーバ・コンピュータ１０４で実行されるとして説明した本明細書で提示したソフトウェア・コンポーネントの任意の態様を実行できる。
【００４９】
図８に示すコンピュータ・アーキテクチャは、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）８０２、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）８１４およびＲＯＭ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）８１６を含むシステム・メモリ８０８、およびメモリをＣＰＵ８０２に結合するシステム・バス８０４を含む。起動中等にコンピュータ８００内部の要素間で情報を転送することを支援する基本ルーチンを含む基本入出力システムがＲＯＭ８１６に格納される。コンピュータ８００はさらに、オペレーティング・システム８１８、アプリケーション・プログラム、および他のプログラム・モジュールを格納するための大容量記憶装置８１０を含む。これを本明細書でさらに詳細に説明する。
【００５０】
大容量記憶装置８１０は、バス８０４に接続した大容量記憶コントローラ（図示せず）を介してＣＰＵ８０２に接続される。大容量記憶装置８１０とその関連するコンピュータ記憶媒体は、コンピュータ８００に不揮発性記憶を提供する。本明細書に含まれるコンピュータ記憶媒体がハード・ディスクまたはＣＤ−ＲＯＭドライブのような大容量記憶装置であるとして説明するが、コンピュータ記憶媒体が、コンピュータ８００がアクセス可能な任意の利用可能なコンピュータ記憶媒体でありうることは当業者には理解されよう。
【００５１】
限定ではなく例として、コンピュータ記憶媒体には、コンピュータ読取可能命令およびコンピュータ実行可能命令、データ構造、プログラム・モジュール、または他のデータのような情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性の媒体、取外し可能および取外し不能な媒体を含めることができる。例えば、コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリもしくは他の個体メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ、または他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報の記憶に使用できコンピュータ８００がアクセスできる他の任意の媒体が含まれるがこれらに限らない。
【００５２】
様々な実施形態によれば、コンピュータ８００は、ネットワーク８２０のようなネットワークを介したリモート・コンピュータへの論理接続を用いて、ネットワーク環境で動作することができる。コンピュータ８００を、バス８０４に接続されたネットワーク・インタフェース・ユニット８０６を介してネットワーク８２０に接続することができる。ネットワーク・インタフェース・ユニット８０６を利用して他種のネットワークおよびリモート・コンピュータ・システムに接続できることは理解されよう。コンピュータ８００はまた、キーボード、マウス、または電子ペン（図８には示さず）を含む幾つかの他の装置からの入力を受け取って処理するための、入出力コントローラ８１２を備えることができる。同様に、入出力コントローラが、ディスプレイ・スクリーン、プリンタ、または他種の出力装置（図８には示さず）への出力を提供できる。
【００５３】
上で簡単に述べたように、ネットワーク可能なデスクトップ、ラップトップ、またはサーバ・コンピュータの動作を制御するのに適したオペレーティング・システム８１８を含む、幾つかのプログラム・モジュールとデータ・ファイルをコンピュータ８００の大容量記憶装置８１０とＲＡＭ８１４に格納できる。大容量記憶装置８１０とＲＡＭ８１４はまた、１つまたは複数のプログラム・モジュールを格納できる。具体的には、大容量記憶装置８１０とＲＡＭ８１４が、データベース・クライアント・アプリケーション・プログラム１０６、ウェブ・ブラウザ・アプリケーション・プログラム１１０、ＢｒｏｗｓｅＴｏマクロ動作１２２Ｄを含むデータベース・アプリケーション１０８を格納することができる。これらの各々については図１〜７と関連して上で詳細に説明した。大容量記憶装置８１０とＲＡＭ８１４が、他種のプログラム・モジュールとデータを記憶することができる。
【００５４】
本明細書で説明したソフトウェア・コンポーネントをＣＰＵ８０２にロードして実行すると、当該ソフトウェア・コンポーネントは、ＣＰＵ８０２とコンピュータ８００全体を汎用目的コンピューティング・システムから、本明細書で提示した機能を容易にするためにカスタマイズした特殊目的コンピューティング・システムへと変えることができることは理解されよう。ＣＰＵ８０２を任意数のトランジスタまたは他の離散回路要素で構築でき、それらが個別または集合的に任意数の状態をとることができる。より具体的には、ＣＰＵ８０２は、本明細書で開示したソフトウェア・モジュール内に含まれる実行可能な命令に応答して有限状態機械として動作できる。これらのコンピュータ実行可能命令が、ＣＰＵ８０２がどのように状態間を遷移するかを指定することによりＣＰＵ８０２を構成するトランジスタまたは他の離散的なハードウェア要素を変換することによって、ＣＰＵ８０２を変換できる。
【００５５】
本明細書で提示したソフトウェア・モジュールをエンコードすることによって、本明細書で提示したコンピュータ記憶媒体の物理的構造を変換できる。物理的構造の具体的な変換方法は、本記載と異なる実装において、様々な要素に依存できる。かかる要素の例には、コンピュータ記憶媒体の実装に用いられる技術、コンピュータ記憶媒体が主記憶とされるか二次記憶とされるか、等を含めることができるがこれらに限らない。例えば、コンピュータ記憶媒体を半導体ベースのメモリとして実装する場合は、本明細書で開示したソフトウェアを、半導体メモリの物理的状態を変換することによってコンピュータ記憶媒体上でエンコードできる。例えば、当該ソフトウェアが、半導体メモリを構成するトランジスタ、キャパシタ、または他の離散的な回路要素の状態を変換できる。当該ソフトウェアはまた、データを格納するためにかかるコンポーネントの物理的状態を変換できる。
【００５６】
別の例として、本明細書で開示したコンピュータ記憶媒体を、磁気技術または光技術を用いて実装できる。かかる実装では、本明細書で提示したソフトウェアが、磁気媒体または光媒体の物理的状態を、当該ソフトウェアをこれらの媒体内でエンコードしたときに変換できる。これらの変換に、所与の磁気媒体内の特定位置の磁気特性を変更することを含めることができる。これらの変換に、所与の光媒体内の特定位置の物理的特徴または物理的特性を変更して当該位置の光特性を変更することを含めることができる。以上の例は本議論を容易にするためにのみ与えたものであるので、本説明の範囲と趣旨を逸脱しない物理媒体の他の変換が可能である。
【００５７】
上記を鑑み、本明細書で提示したソフトウェア・コンポーネントを格納し実行するために、多種の物理的変換がコンピュータ８００で行われることは理解されよう。コンピュータ８００が他種のコンピューティング装置を備えることができることも理解されよう。当該コンピューティング装置には、ハンドヘルド・コンピュータ、組込み型コンピュータ・システム、パーソナル・デジタル・アシスタント、および当業者に公知な他種のコンピューティング装置が含まれる。コンピュータ８００が図８に示すコンポーネントの全てを備えなくともよく、図８に明示的には示していない他のコンポーネントを含むことができ、または図８に示したものと全く異なるアーキテクチャを利用できることも考慮されている。
【００５８】
以上に基づいて、データベース・アプリケーションをナビゲートするための技術が本明細書で開示されたことは理解されよう。本明細書で提示した主題を、コンピュータの構造的特徴、方法論的な動作および変形をもたらす動作、具体的な計算機械、ならびにコンピュータ記憶媒体に固有な言葉で説明したが、添付の特許請求の範囲で定義した発明は必ずしも本明細書で説明した具体的な機能、動作、または媒体に限られないことは理解されよう。そうではなく、当該具体的な機能、動作および媒体は、特許請求の範囲を実装する例示的な形態として開示されている。
【００５９】
以上で説明した主題は、例として提供したにすぎないものであり、限定と解釈すべきではない。図示し説明した例示的な実施形態および適用例に従わない様々な修正および変更、ならびに、本発明の真の趣旨および範囲を逸脱しない様々な修正および変更を、本明細書で説明した主題に加えることができる。本発明の真の趣旨と範囲は添付の特許請求の範囲で説明されている。
【図１】
0005255156.tif 000002
【図２】
0005255156.tif 000003
【図３】
0005255156.tif 000004
【図４】
0005255156.tif 000005
【図５】
0005255156.tif 000006
【図６】
0005255156.tif 000007
【図７】
0005255156.tif 000008
【図８】
0005255156.tif 000009