(57)【要約】  データベースプログラムにおいてアプリケーション、プロジェクト、およびソリューションを作成するために、事前に構築された論理を含む、コントロールおよびアクションのギャラリーセットを提供する。ギャラリーは、データベースプログラムにおける主要な論理シナリオを説明することができる最も一般的に使用されるコントロールを含むことができる。コントロールは、単純、明瞭、および直感的であることが可能であり、プログラミングの経験がほとんどない、または全くないユーザーが、いかなるコーディング環境に入る必要なく、または複雑な論理式を作成する必要なく、ギャラリーコントロールを使用してデータベースプログラムにおけるソリューションを開発できる可能性がある。ギャラリーによりユーザーは、コードエディターを開くことなく、事前に定義されたコントロールをギャラリーからソリューションの設計面に追加することによって、完全なソリューションを作成することができる可能性があり、コントロールの背後のコードをソリューションに自動的に組み込むことができる。ソリューションコードはまた、データベースプログラムのユーザーによるその後の変更のためにアクセス可能とすることができる。
2014526081.tif 000002
【特許請求の範囲】
【請求項１】
コントロールオブジェクトのギャラリーを提供するためにコンピューティングデバイスの少なくとも一部で実行される方法であって、
データベースプログラムに対して、新しいソリューションの作成および既存のソリューションの変更の１つを検出するステップと、
前記データベースプログラムにおけるソリューションに対して一般的に使用される論理シナリオを判断するステップと、
前記データベースプログラム中のプロジェクトにおける前記一般的に使用される論理シナリオのための事前に構築された論理を備えるコントロールオブジェクトのギャラリーを生成するステップと、
ユーザーが前記ギャラリーからソリューション設計キャンバスに、コントロールオブジェクトを選択して追加できるようにするステップと、
前記新しく追加されたコントロールオブジェクトを前記ソリューション設計キャンバスに表示するステップと、
前記コントロールオブジェクトの背後の前記論理を、前記ソリューションの論理コードに自動的に組み込むステップと、
前記コントロールオブジェクトをアクティブ化すると、前記コントロールオブジェクトによって表される１つまたは複数のアクションを実行するステップと
を含む、方法。
【請求項２】
前記コントロールオブジェクトの背後の前記論理を将来使用するために完全に編集可能にするステップと、
前記ユーザーが前記ギャラリーで使用するためのユーザー独自のカスタム定義のコントロールを作成できるようにするステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記コントロールオブジェクトを前記ソリューション設計キャンバスに追加すると、前記コントロールオブジェクトの背後の前記論理を前記ソリューションの前記論理コードに組み込むためにさらなるパラメーターを入力するためのダイアログを提示するステップ
をさらに含む、請求項１に記載の方法。
【請求項４】
前記要求された情報が前記ダイアログにより入力されたことを検出すると、前記ユーザーが前記ダイアログを閉じることができるようにするステップと、
前記コントロールオブジェクトの背後の前記コード、コントロールアクションを説明する前記コントロールオブジェクトの背後の前記論理に対するコメント、前記ソリューション設計キャンバス上の前記コントロールオブジェクトについてのキャプション、および前記ソリューション設計キャンバス上に表示された前記コントロールオブジェクトのうちの１つまたは複数を更新するステップと
をさらに含む、請求項３に記載の方法。
【請求項５】
別個のメニューの１つとして、および前記ソリューション設計キャンバス内のタスクバーの一部として、コントロールオブジェクトの前記ギャラリーを表示するステップ
をさらに含む、請求項１に記載の方法。
【請求項６】
前記ギャラリー中の前記コントロールオブジェクトのラベルを作成して、各コントロールオブジェクトによって表されるアクションおよび論理シナリオの少なくとも１つを示すステップ
をさらに含む、請求項１に記載の方法。
【請求項７】
ユーザーが選択したコントロールオブジェクトを前記ソリューション設計キャンバスに追加できるようにするステップが、
前記ユーザーが前記ギャラリー中の前記コントロールオブジェクトを選択し、前記コントロールオブジェクトを前記ギャラリーから前記ソリューション設計キャンバスにドラッグし、前記ソリューション設計キャンバス上に前記コントロールオブジェクトをドロップして、前記コントロールオブジェクトがドロップされた位置で前記ソリューションに追加できるようにするステップ
をさらに含む、請求項１に記載の方法。
【請求項８】
データベースプログラムと関連してコントロールオブジェクトのギャラリーを提供するためのコンピューティングデバイスであって、
命令を格納するメモリーと、
前記メモリーに結合され、コントロールオブジェクトのギャラリーを提供するためのソリューション設計アプリケーションを実行するプロセッサーであって、前記ソリューション設計アプリケーションが、
データベースプログラムに対して、新しいソリューションの作成および既存のソリューションの変更の１つを検出する、
前記データベースプログラム中のソリューションに対して一般的に使用される論理シナリオを判断する、
前記データベースプログラム中のプロジェクトにおける前記一般的に使用される論理シナリオのための事前に構築された論理を備えるコントロールオブジェクトのギャラリーを生成する、
ユーザーが前記ギャラリーからソリューション設計キャンバスに、コントロールオブジェクトを選択して追加できるようにする、
前記新しく追加されたコントロールオブジェクトを前記ソリューション設計キャンバスに表示する、
前記コントロールオブジェクトの背後の前記論理を、前記ソリューションの論理コードに自動的に組み込む、
コントロールアクションについて説明する前記コントロールオブジェクトの背後の前記論理に対するコメント、前記ソリューション設計キャンバス上の前記コントロールオブジェクトについてのキャプション、および前記ソリューション設計キャンバス上に表示された前記コントロールオブジェクトを自動的に更新する、
前記コントロールオブジェクトの背後の前記論理を将来の使用に備えて完全に編集可能とすることができるようにする、
前記ユーザーが前記ギャラリーで使用するためのユーザー独自のカスタム定義のコントロールを作成できるようにする、および
前記コントロールオブジェクトをアクティブ化すると、前記コントロールオブジェクトによって表される１つまたは複数のアクションを実行する
ように構成された、プロセッサーと
を含む、コンピューティングデバイス。
【請求項９】
前記ソリューション設計アプリケーションが、前記コントロールオブジェクトの前記論理を作成するためにさらにパラメーターを必要とする、コントロールオブジェクトの前記追加の際に、さらなる情報を入力するためのドロップダウンメニュー、チェックボックス、リスト、およびテキストボックスのうちの１つまたは複数を含むダイアログを表示するようにさらに構成された、請求項８に記載のコンピューティングデバイス。
【請求項１０】
データベースプログラムと関連してコントロールオブジェクトのギャラリーを提供するために命令を格納したコンピューター可読メモリーデバイスであって、前記命令が、
データベースプログラムに対して、新しいソリューションの作成および既存のソリューションの変更の１つを検出するステップと、
前記データベースプログラムにおけるソリューションに対して一般的に使用される論理シナリオを判断するステップと、
前記データベースプログラム中のプロジェクトにおける前記一般的に使用される論理シナリオのための事前に構築された論理を備えるコントロールオブジェクトのギャラリーを生成するステップと、
ユーザーが前記ギャラリーからソリューション設計キャンバスに、コントロールオブジェクトを選択して追加できるようにするステップと、
前記新しく追加されたコントロールオブジェクトを前記ソリューション設計キャンバスに表示するステップと、
前記コントロールオブジェクトが、カスタムパラメータを必要とする場合、カスタムパラメータを入力するためのダイアログを提示して、前記コントロールオブジェクトの背後の前記論理を前記ソリューションの前記論理コードに組み込むステップと、
前記コントロールオブジェクトの背後の前記論理を、前記ソリューションの論理コードに自動的に組み込み、将来の変更に利用できるようにするステップと、
コントロールアクションについて説明する前記コントロールオブジェクトの背後の前記論理に対するコメント、前記ソリューション設計キャンバス上の前記コントロールオブジェクトについてのキャプション、および前記ソリューション設計キャンバス上に表示された前記コントロールオブジェクトを自動的に更新するステップと、
前記コントロールオブジェクトの背後の前記論理を将来の使用に備えて完全に編集可能とすることができるようにするステップと、
前記ユーザーが前記ギャラリーで使用するためのユーザー独自のカスタム定義のコントロールを作成できるようにするステップと、
前記コントロールオブジェクトをアクティブ化すると、前記コントロールオブジェクトによって表される１つまたは複数のアクションを実行するステップと
を含む、コンピューター可読メモリーデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、事前に構築されたコントロールを用いた論理の作成に関する。
【背景技術】
【０００２】
[0001]データベースプログラムは、様々なタイプおよび量のデータを管理するソリューションおよびアプリケーションを構築するために使用することができる。データベースプログラムにおいて開発することができるいくつかの例示的ソリューションには、カスタムデータを格納するための表、ユーザーに優しいデータ入力およびデータベースとの効率的な対話を提供するためのフォーム、データをフィルタリングし、データを要約し、データ管理タスクを自動化するためのクエリ、ならびにデータをフォーマットし、要約し、提示するためのレポートが含まれる。一部のデータベースプログラムは、単純なソリューションを構築するためのテンプレートを提供することができ、より複雑なソリューションを構築するためには、マクロおよびプログラム開発アプリケーションまたはコードエディターを提供することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0002]一般的に、データベースプログラムにおいてデータベースまたはソリューションを作成するには、いくらかのコーディング知識または経験が必要である。コントロール、フォーム、表、およびレポートを追加するための複雑なソリューションは、別個のプログラム開発アプリケーションでコードエディターを使用して、またはデータベースプログラム内のマクロを使用して生成することができ、データベースプログラムを使用してソリューションを開発できるユーザーを制限する可能性がある。データベースプログラムは、多くのユーザーにとって有用であり、ユーザー基盤が大きくなるにつれて、ユーザーにプログラミングの経験がほとんどない、または全くないとき、ユーザーはソリューションの複雑な構成要素をコード化することができない可能性があるので、ユーザーはデータベースプログラムにおいてソリューションを開発する能力を制限される可能性がある。
【課題を解決するための手段】
【０００４】
[0003]この節は、以下の発明を実施するための形態でさらに説明する概念の抜粋を簡略化して紹介するために提供する。この節は、特許請求の範囲に記載されている対象物の主要な特徴または本質的特徴を排他的に確定することを目的とせず、さらに特許請求の範囲に記載されている対象物の範囲を決定する際の一助とするつもりもない。
【０００５】
[0004]諸実施形態は、データベースプログラムにおいてアプリケーション、プロジェクト、およびソリューションを構築するための事前に構築された論理を含むコントロールおよびアクションのギャラリーセットを提供することを対象としている。ギャラリーは、データベースプログラムの主要な論理シナリオを説明することができる一般的に使用されるコントロールを含むことができる。コントロールは、単純、明瞭、直感的なものとすることができ、プログラミングの経験がほとんどない、または全くないユーザーが、いかなるコーディング環境にも入ることなく、または複雑な論理式を作成することなく、ギャラリーコントロールを使用して、データベースプログラムにおいてソリューションを開発できるようにすることができる。ギャラリーによりユーザーは、コードエディターを開くことなく、あらかじめ定義されたコントロールをギャラリーからソリューションの設計面に追加することによって、完全なソリューションを作成することができ、コントロールの背後のコードをソリューションに自動的に組み込むことができる。ソリューションコードは、データベースプログラムのユーザーによるその後の変更のためにアクセス可能とすることもできる。またギャラリーによりユーザーは、再使用しやすいように、ユーザー独自のカスタム定義のコントロールを追加することもできる。
【０００６】
[0005]これらのおよび他の特徴および利点は、次の詳細な説明の解釈および関連する図面の概説から明らかになるであろう。前述の概要および次の詳細な説明は共に説明的なものであって、特許請求の範囲に記載する態様を制限しないことを理解されたい。
【図面の簡単な説明】
【０００７】
【図１】[0006]データベースプログラムのコントロールギャラリーと、アプリケーション内の事前に構築されたコントロールを含むソリューション設計の例示的スクリーンショットを示す図である。
【図２】[0007]諸実施形態による、ある論理シナリオに対するさらなるパラメーターを入力するためのダイアログまたはウィザードの例示的スクリーンショットを示す図である。
【図３】[0008]ある論理シナリオに対するさらなるパラメーターを入力するためのダイアログまたはウィザードの例示的スクリーンショットを示す図である。
【図４】[0009]諸実施形態によるシステムを実装することができるネットワーク化された環境の図である。
【図５】[0010]諸実施形態を実装することができる例示的コンピューティング動作環境のブロック図である。
【図６】[0011]諸実施形態によりデータベースプログラムにおける論理シナリオに対して事前に構築されたコントロールのギャラリーを提供するプロセスの論理流れ図である。
【発明を実施するための形態】
【０００８】
[0012]簡単に上述したように、データベースプログラムにおける事前に構築されたコントロールのギャラリー（gallery）によりユーザーは、ソリューションを構築するためにコードエディターにアクセスする必要がなく、事前に構築されたコントロールを使用して、データアプリケーションまたはソリューションを作成することができるようになる可能性がある。ギャラリーは、データベースプログラムにおいて一般的に使用されるコントロールおよびアクションを含むことができ、これらは単純なドラッグアンドドロップまたは同様のアクションによってアプリケーションに追加されることが可能であり、論理およびコードは、コントロールの背後に事前に構築されることが可能であって、ユーザーがソリューションにコントロールを追加することができ、コントロールの背後の論理は、ユーザーがコード論理を手動で構築して生成することなく、ソリューションに自動的に作成されることが可能となる。コントロールに組み込まれたコードは、完全に編集可能とすることができ、ユーザーはゼロからすなわち空のコーディング環境から始めることなく、コントロールを容易に変更することができる。
【０００９】
[0013]次の詳細な説明では、この文書の一部を形成する添付の図面を参照するが、図面では、特定の実施形態または実施例を例として示す。本開示の趣旨または範囲を逸脱することなく、こうした態様を組み合わせることができ、他の態様を使用することができ、さらに構造上の変更を行うことができる。次の詳細な説明は、したがって限定の意味で捉えられるべきではなく、本発明の範囲は、添付の特許請求の範囲およびその均等物によって定められる。
【００１０】
[0014]コンピューティングデバイスのオペレーティングシステムで動作するアプリケーションプログラムと連動して実行するプログラムモジュールの一般的な状況において諸実施形態を説明するが、諸態様は、他のプログラムモジュールと組み合わせて実行することも可能であることを当業者は認めるであろう。
【００１１】
[0015]一般に、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他の型の構造を含む。さらに諸実施形態は、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーを用いたもしくはプログラム制御の家庭電化製品、ミニコンピューター、メインフレームコンピューター、および類似のコンピューティングデバイスなど、他のコンピューターシステム構成を用いて実行できることを、当業者は理解するであろう。また諸実施形態は、通信ネットワークを介してリンクされた遠隔処理装置によってタスクが実行される分散型コンピューティング環境で実行することも可能である。分散型コンピューティング環境では、プログラムモジュールを、ローカルとリモートの両方のメモリー記憶装置に配置することができる。
【００１２】
[0016]諸実施形態は、コンピューター実施プロセス（方法）、コンピューティングシステムとして、またはコンピュータープログラム製品もしくはコンピューター可読媒体などの製品として、実装されることが可能である。コンピュータープログラム製品は、コンピューターシステムによって読取り可能なコンピューター記憶媒体であって、コンピューターまたはコンピューティングシステムに（１つまたは複数の）例示のプロセスを実行させるための命令を含むコンピュータープログラムをコード化したコンピューター記憶媒体とすることができる。コンピューター可読記憶媒体は、例えば揮発性のコンピューターメモリー、不揮発性のメモリー、ハードドライブ、フラッシュドライブ、フロッピー（登録商標）ディスク、またはコンパクトディスク、ならびに類似の媒体のうちの１つまたは複数によって実現されることが可能である。
【００１３】
[0017]この明細書を通して、「プラットフォーム」という用語は、データベースアプリケーションを作成する、および変更する（ならびに実行する）ためのソフトウェアコンポーネントとハードウェアコンポーネントの組合せとすることができる。プラットフォームの例には、複数のサーバーにわたって実行されるホステッドサービス（hosted service）、単一コンピューティングデバイスで実行されるアプリケーション、および類似のシステムが含まれるが、これらに限定されない。一般に「サーバー」という用語は、通常ネットワーク化された環境で１つまたは複数のソフトウェアプログラムを実行するコンピューティングデバイスを指す。しかしながら、サーバーが、ネットワーク上のサーバーとみなされる１つまたは複数のコンピューティングデバイス上で実行される仮想サーバー（ソフトウェアプログラム）として実装されることもある。こうした技術および例示的操作についてのさらなる詳細は、以下に提供する。
【００１４】
[0018]図１は、データベースプログラムにコントロールギャラリーを含んだソリューション設計の例示的スクリーンショットを示す。図１００に示すように、ユーザーは、例えばデータベースプログラムにおいてコントロールオブジェクトのギャラリーに提供される事前に構築されたコントロールを使用して、表またはフォームでソリューションを作成することができる。ユーザーは、表、フォーム、プロジェクト、およびレポートのようなデータベースプログラムにおける様々なデータベースアプリケーションおよびソリューションを作成することができる。通常データベースプログラムで複雑なソリューションを作成するには、ユーザーにプログラミング言語のいくらかの知識およびプログラム設計アプリケーションを使用してコードおよび論理を書くおよび編集する能力があることを必要とする可能性がある。事前に構築されたコントロールオブジェクトのギャラリーにより、コーディングまたはプログラミングの経験がほとんどないユーザーが、コーディング環境にアクセスする必要なくデータベースプログラムにおけるソリューションを作成することができるようになる可能性がある。
【００１５】
[0019]実施形態によるシステムでは、ユーザーがデータベースプログラムにおいて始めから終わりまで完全な論理ソリューションを作成するには、ユーザーは単に、コントロールのギャラリーにアクセスするだけでよい。ギャラリーは、別個のメニュー１０２にコントロールを表示することができる、またはデータベースプログラムの設計ビュー１１２中のリボンタスクバー１２０に、コントロールを組み込むことができる。さらに、ユーザーがギャラリー表示をカスタマイズして、コントロールが表示される場所、コントロールの表示方法、任意のカスタム作成論理制御（any custom created logic controls）、およびギャラリーに表示するまたは表示しない論理シナリオを決定することができる。一部のユーザーは、いくつかの論理シナリオを他のユーザーよりも多く使用する可能性があり、ユーザーは、完全なデータベースソリューションを作成する際に使用するのに効率的なギャラリーを作成するために、ユーザーの選択および利用に従ってギャラリービューをカスタマイズすることができる可能性がある。したがってユーザーは、ギャラリーで使用するためのユーザー独自のカスタム定義のコントロールを作成することを許される。
【００１６】
[0020]ギャラリーは、データベースプログラムにおける論理シナリオを説明する様々なコントロールおよびアクション用のコントロールオブジェクトを含むことができる。データベースプログラムは、データベースプログラムにおけるソリューションを構築するための多くの論理シナリオを含むことができ、ギャラリーは、一般的な論理シナリオを説明する一般的に使用されるコントロールの大部分またはすべてを表示することができる。ギャラリー中のコントロールオブジェクトは、コントロールのそれぞれの背後のコードおよび論理を含むように事前に構築することができ、したがってユーザーは、ソリューションへの追加のためにコントロールを単に選択することができ、ユーザーは決してコントロールの背後の論理を見るまたはアクセスする必要がない。ギャラリー中のコントロールオブジェクトは、ソリューションで実行されるコントロールまたはアクションを明確に示すことができ、したがってギャラリーは、ユーザーにとって単純で直感的であり、ギャラリー中の事前に構築されたコントロールオブジェクトをソリューションの設計ビュー１１２に追加して、構成要素をソリューションに組み込むことができる。
【００１７】
[0021]テキストでコントロールオブジェクトのラベルを作成して、コントロールオブジェクトが表すアクションを明確にかつ簡潔に表示することができ、ならびに／あるいはコントロールオブジェクトをアイコンまたはグラフィックスとして表示して、ギャラリー中の特定のアクションおよび論理シナリオを表すことができる。コントロールオブジェクトは、クリックして追加する方法、またはドラッグアンドドロップする方法を使用してソリューションに追加することができる。ギャラリーコントロールは、コントロールの背後に組み込まれたコントロールアクションの論理のすべてを有することができるので、ユーザーがコントロールをソリューションに追加する、またはコントロールを設計キャンバスにドラッグアンドドロップするとき、ユーザーがコードエディターにアクセスする必要が全くなく、コードをソリューションに自動的に組み込むことができる。しかしながらソリューションコードは、ユーザーがソリューションの開発中のいずれかの時点においてソリューションの背後の論理を編集することを望む場合、表示して変更するためにユーザーにアクセス可能とすることができる。各コントロールの背後の論理もしくはコードおよび完全なソリューションは、適切なプログラミングの原理および言語に従うことができ、ユーザーが表示または修正のためにコードにアクセスする必要がある場合、知られているプログラミング技術を使用してコードを容易に読み取り、理解し、編集することができるように、エラー処理およびコメントを含むことができる。
【００１８】
[0022]データベースプログラムで使用することができるいくつかの例示的論理シナリオは、アプリケーションのナビゲーション、フィルタリング、レコードナビゲーション、データ送信、データの更新および確認、ならびにカスタムユーザーインターフェースの自動化が含まれる。こうしたシナリオにおけるアクションを表すコントロールは、コントロールの論理と共に完全に事前に構築される設計キャンバスに追加することができるテキストボックス１１３、ドロップダウンメニュー１１４、ボタン、コンビネーションボックス、リスト、ラジオボタン、および／またはチェックボックスとして、コントロールオブジェクトのギャラリーに表示することができる。例えば、ユーザーは、ダイアログおよび新しいページを開くことおよび閉じること、項目への変更を保存すること、キャンセルすること、および削除すること、あるいはページまたはフォームに含まれる情報を検索することによって使用するデータベースプログラム中のフォームをナビゲートする必要があることがある。これらはデータベースプログラムにおいてかなり一般的なナビゲーションコントロールまたはアクションであるので、ギャラリーは、ユーザーがこれらのナビゲーション機能をソリューションに追加できるように、これらのアクションのそれぞれのコントロールオブジェクトを含むことができる。
【００１９】
[0023]例示的実施形態では、ギャラリーは、ソリューション内にフォームまたは他のアプリケーションを保存するおよび／または閉じるためのコントロールを含むことができる。ユーザーは、保存して閉じるボタン１０８を選択して、これを設計ビュー１１２上の、ユーザーがボタンを設置したいと望む位置にドラッグアンドドロップすることができる。その後ボタン１１８がフォームに表示されて、ユーザーがフォームを保存して閉じることができるようになる。フォームを保存して閉じるというアクションの論理は、ギャラリー中の保存して閉じるボタン１０８と併せて事前に構築されることが可能であり、保存して閉じるボタン１０８がユーザーによって設計キャンバス上にドラッグアンドドロップされるとき、この論理を完全なソリューションの論理に追加することができる。「このマクロは現在のレコードを保存してフォームを閉じます」のような、論理が何の命令を含むかを示すコメントを、ソリューションの論理に含むことができる。
【００２０】
[0024]別の例では、ユーザーがデータベースプログラムにおけるソリューションに検索ペイン１１６を追加することができる。検索ボックス１１６は、テキストを入力するためのテキストボックスと、クリックして検索アクションを実行するための選択ボタンとを含むことができる。ユーザーがソリューションの設計キャンバスに検索ボックスを追加するとき、検索コントロールのための事前に構築された論理は、ソリューションコードに自動的に組み込まれることが可能であり、検索ボタンのオンクリックイベント時に、またはユーザーが検索ボックスからタブ操作するときに、テキストボックス中のテキストについてレコードを検索するための命令を含むことができる。検索ボックスのデフォルトの論理は、現在のフォームおよび／またはサブフォームが存在する場合はサブフォーム上のレコードのすべてにわたって検索することとすることができる。必要に応じて、ダイアログまたはウィザードを提示して、ユーザーが検索ボックスを設定し、検索ボタンがクリックされるときに検索されるレコードをカスタマイズできるようにすることができる。
【００２１】
[0025]一部のシナリオでは、ソリューションに追加されるコントロールは、アクションを実行するための完全な論理を含むことができる。例えば、保存ボタン、閉じるボタン、削除ボタン、キャンセルボタン、および取消ボタンを、ソリューションの設計キャンバス上に単にドラッグアンドドロップすることによって、他にいかなる入力もなく、ソリューションに追加することができる。しかしながら、他の論理シナリオは、完全な論理をソリューションに追加するためにさらなる情報またはさらなる入力パラメーターを必要とすることがあり、コントロールが設計面に追加されると、ウィザードまたはダイアログにおいて入力されることがある。さらなる入力パラメーターを必要とする例示的論理シナリオには、Ｏｐｅｎ−Ｆｏｒｍ（フォームを開く）コントロール１０４が含まれる。データベースプログラムにおいてフォームを開くには、まず、コントロールをクリックするときユーザーが開きたいフォームを選択する必要がある。なお開くことは、様々な方法で、例えば（既存のページのコンテンツの代わりに）インラインで、（現在のページのフォーム中の）サブフォームで、およびモーダルなポップアップウィンドウで、行うことができる。ユーザーがギャラリーからＯｐｅｎ−Ｆｏｒｍコントロール１０４を選択し、これを設計ビュー１１２にドラッグアンドドロップしてＯｐｅｎ−Ｆｏｒｍボタンを作成するとき、ボタン１２４が現れて、「Ｏｐｅｎ  Ｆｏｒｍ（フォームを開く）」と表示されることが可能である。これがキャンバスに追加されると、ウィザードまたはダイアログがポップアップして、コントロールが完了するまでに他に記入する必要があるものをユーザーに示し、さらなる入力パラメーターを通してユーザーを案内する。
【００２２】
[0026]図２は、諸実施形態による、ある論理シナリオに対するさらなるパラメーターを入力するためのダイアログまたはウィザードの例示的スクリーンショットを示す。図１に関連して簡単に上述したように、ユーザーが設計ソリューションにコントロールを追加するとき、コントロールのための完全な論理をソリューションに完全に組み込むには、さらなる情報が必要とされることがある。コントロールを設計キャンバスに追加する際に、コントロールのための完全な論理を作成するためにさらなる情報が必要とされるとき、ダイアログまたはウィザードがポップアップして、ユーザーからさらなる入力パラメーターを収集することができる。例えば、ユーザーがＯｐｅｎ−Ｆｏｒｍコントロールをソリューションに追加することを選択するとき、Ｏｐｅｎ−Ｆｏｒｍコントロールを追加すると、Ｏｐｅｎ−Ｆｏｒｍボタン１２４をソリューションに作成することができ、ダイアログ２０２が表示されてユーザーに開きたいフォームの名前を示すよう促すことができる（２０４）。ユーザーが、ダイアログでリストから、例えば「Ｃｏｎｔａｃｔｓ」２０６のようなフォーム名をクリックして選択し、「ｏｋ」ボタン２０８をクリックすると、ダイアログは閉じる可能性があり、Ｏｐｅｎ−Ｆｏｒｍボタンの完全な論理を作成することができる。フォーム名の選択は、ドロップダウンメニュー、チェックボックスの選択などのような、他の手段によることも可能である。
【００２３】
[0027]コントロールの論理は、ソリューションに組み込むことができ、したがって設計ソリューションからＯｐｅｎ−Ｆｏｒｍボタンが選択されるときはいつでも、ダイアログでユーザーが選択したフォームが開かれる。さらに、Ｏｐｅｎ−Ｆｏｒｍボタンのキャプションは、例えばユーザーがダイアログリストからＣｏｎｔａｃｔｓ２０６を選択した場合、更新および変更されて「Ｏｐｅｎ  Ｃｏｎｔａｃｔｓ」を表示することができ、Ｏｐｅｎ−Ｆｏｒｍボタンの論理におけるコメントは、コントロールが選択時にコンタクトフォームを開くこと、またはユーザーが開くことを選択した他のいずれかのフォームを開くことを示すことができる。ユーザーは、必要であれば論理を変更して、開くために選択されるフォームを変える、または他の変更を行うことができる場合がある。
【００２４】
[0028]他の実施形態では、もう１つのダイアログ２１０を提示して、例えば、フォームにどのレコードを表示するか２１２、およびフォームをどのように開くか２１４など、フォームを開くためのさらなる情報を収集することができる。ユーザーは、まずドロップダウンリスト２１６から開くフォームを選択することができ、その後、フォームを開くための別のオプションが、チェックボックスまたはドロップダウンメニューまたはリストに提示されることがある。一例では、データベースプログラムにおいてフォームを開くことは、様々な方法で実行することができる。例えば、インラインで、サブフォームで、またはポップアップウィンドウで、および利用可能なＯｐｅｎ−Ｆｏｒｍ方法の１つを選択するためのチェックボックスダイアログを使用して、ユーザーがフォームの開く方法を決定することができるようにする。さらに、ユーザーは、フォームが開かれるとき、フォームがレコードセットからどの（１つまたは複数の）レコードをフォームに表示するかを選択することができる。ユーザーは、現在のレコード、新しいレコードを表示すること、またはすべてのレコードを提示することを選ぶことができる。他の情報は、限られた数のオプションから選択するチェックボックス、または指定された項目に関するすべてのオプションを表示するドロップダウンメニューを使用して収集することができる。
【００２５】
[0029]別の例では、ユーザーが、ダイアログボックス２２０により別のコントロールの値を設定することができるようにすることができる。ドロップダウンメニュー２２２を使用して、ユーザーが値を設定したいコントロールを選択することができる。例えば、ダイアログは、どのコントロールを設定するか、コントロールをどの値に設定するかを尋ねることができる。ダイアログボックス２２０は、現在のフォームのコントロールのすべてのドロップダウンメニューまたはリストを提示することができる。さらに、ビルダーボタン（builder button）により、ユーザーは式ビルダー（expression builder）をポップアップして、現在のフォーム以外でコントロールを選択することができるようになる。ドロップダウンメニューはまた、ボタンがドラッグされるフォーム上にサブフォームが存在する場合、サブフォームにコントロールを記載することもできる。ダイアログはまた、コントロールを設定するための値を選択するまたは入力するための、第２のドロップダウンメニューもしくはリスト、またはテキストボックス２２４を表示することもできる。設定される値は、選択されるコントロールに即したものとすることができる。選択するまたは表示することができるコントロールのいくつかの例示的な値には、式ビルダー、カレンダー／日付ピッカー（date picker）、添付するファイルを選択するための添付ピッカー（attachment picker）、または計算機が含まれる。第２のドロップダウンボックスは、ユーザーがコントロールの定義に基づいてコントロールの許容できる値のリストから容易に選択できるように、更新されるコントロールのコントロールタイプをパースすることができることがある。例えば、ユーザーがドロップダウンメニュー２２２から「性別」という名前のコントロールを選択する場合、テキストボックス２２４が、単に「男性」および「女性」という選択を有するｃｏｍｂｏＢｏｘコントロールに変わることができる。
【００２６】
[0030]図３は、諸実施形態による、ある論理シナリオに対するさらなるパラメーターを入力するためのダイアログまたはウィザードの例示的スクリーンショットを示す。例示的実施形態では、ユーザーが「プロパティの設定（Ｓｅｔ  Ｐｒｏｐｅｒｔｙ）」ボタンの追加を選択することができ、プロパティの設定ボタンを追加すると、別のコントロールについてのプロパティを設定するためにユーザーがさらなるパラメーターを選択するためのいくつかのドロップダウンメニューと共にダイアログ３００を表示することができる。例えば、いくつかのさらなる入力パラメーターには、どのコントロールを更新するか（３０２）、どのプロパティを更新するか（３０４）、およびプロパティを何に設定するか（３０６）が含まれる。プロパティの設定ボタンは、現在のフォームまたはサブフォームでコントロールについてのプロパティを設定することができる。コントロールの設定のためのいくつかの例示的プロパティには、使用可能（ｅｎａｂｌｅｄ）、表示可能（ｖｉｓｉｂｌｅ）、編集ロック（ｌｏｃｋｅｄ）、色、前景色、背景色、およびキャプションが含まれる。プロパティに対するいくつかの例示的プロパティ値は、使用可能／表示可能に対するｔｒｕｅまたはｆａｌｓｅ、カラーピッカーまたは色のプロパティに対する色を１６進値で書く機能、キャプションの値を選択するテキストボックスとすることができる。
【００２７】
[0031]例えば、カラーピッカー３０８を表示して、ユーザーが１６進数のカラーコードまたはデータベースプログラムのカラーコードを知る必要もなく、更新したい色を容易に選択できるようにすることができる。ドロップダウンメニューまたはリストは、あるプロパティが選択されると、選択されたプロパティのプロパティ値のみをその後のメニューに表示することができるように、漸進的に選択するもの（progressively selective）とすることができる。例えば、第１の質問「どのコントロールを更新すべきか」（３０２）は、現在のフォームのすべてのコントロールを示すことができる。あるコントロールが選択されると、その後のメニューまたはリスト（例えば、３０４、３０６）は、更新されるコントロールプロパティのより小さいリストを表示することができる。例えば、ユーザーがテキストボックスであるコントロールを選択する場合、ドロップダウンメニューは、色、使用可能、表示可能のようなプロパティ値を表示することができるが、テキストボックスに別個のキャプションプロパティがないとき、キャプションプロパティを表示しないことがある。質問のすべてがユーザーによって選択される、または回答されると、ユーザーは「ｏｋ」を選択することができ、「ｏｋボタン」３１０をクリックすると、コードをソリューションに組み込むことができる。
【００２８】
[0032]図１から３の例示的システムについて、特定の構成、アプリケーション、および対話と共に説明した。諸実施形態は、こうした例によるシステムに限定されない。データベースプログラムにおける論理シナリオに対して事前に構築されたコントロールのギャラリーを提供するシステムは、より少ない構成要素または追加の構成要素を使用する構成、ならびに他のタスクを実行する構成で実装することができる。さらに、本明細書に記載する原理を使用して同様の方法で、特定のプロトコルおよび／またはインタフェースを実装することができる。
【００２９】
[0033]図４は、諸実施形態を実装することができる例示的なネットワーク化された環境である。データベースプログラムにおける論理シナリオに対して事前に構築されたコントロールのギャラリーを提供するためのシステムを、ホステッドサービスのような、１つまたは複数のサーバー４１４を通じて実行されるソフトウェアにより実装することができる。プラットフォームは、（１つまたは複数の）ネットワーク４１０を介して、スマートフォン４１３、ラップトップコンピューター４１２、またはデスクトップコンピューター４１１（「クライアントデバイス」）などの個々のコンピューティングデバイス上のクライアントのアプリケーションと通信することができる。
【００３０】
[0034]クライアントデバイス４１１〜４１３のいずれかで実行されるクライアントアプリケーションは、サーバー４１４によって、または個人のサーバー４１６で実行される（１つまたは複数の）アプリケーションによる通信を容易にすることができる。サーバーの１つで実行されるアプリケーションは、データベースプログラムで使用される主要な論理シナリオに対して事前に構築されたコントロールを含むギャラリーを生成すること、コントロールを設計ソリューションに追加すること、およびコントロールの論理を完全なソリューションコード論理に組み込むことを容易にすることができる。アプリケーションは、ユーザーのカスタム基本設定（ｃｕｓｔｏｍ  ｐｒｅｆｅｒｅｎｃｅｓ）に従って完全な論理ソリューションを作成するためのさらなる入力パラメーターの選択のために、追加のダイアログまたはウィザードをユーザーに提供することができる。アプリケーションは、（１つまたは複数の）データストア４１９から直接にまたはデータベースサーバー４１８を介して関連するデータを検索し、クライアントデバイス４１１〜４１３を介して（１人または複数の）ユーザーに要求されたサービス（例えば、文書の編集）を提供することができる。
【００３１】
[0035]（１つまたは複数）のネットワーク４１０は、サーバー、クライアント、インターネットサービスプロバイダー、および通信媒体のいかなるトポロジを含むこともできる。諸実施形態によるシステムは、静的または動的トポロジを有することができる。（１つまたは複数の）ネットワーク４１０は、企業ネットワークなどの安全なネットワーク、無線オープンネットワーク、もしくはインターネットなどの安全ではないネットワークを含むことができる。（１つまたは複数の）ネットワーク４１０は、公衆交換電話網（ＰＳＴＮ）もしくはセルラーネットワークなどの他のネットワークを通じて通信を統合することもできる。さらに、（１つまたは複数の）ネットワーク４１０は、Ｂｌｕｅｔｏｏｔｈまたは同様のネットワークのような、近距離無線ネットワークを含むことができる。（１つまたは複数の）ネットワーク４１０は、本明細書に記載するノード間の通信を提供する。例として、限定ではなく、（１つまたは複数の）ネットワーク４１０は、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含むことができる。
【００３２】
[0036]コンピューティングデバイス、アプリケーション、データソース、およびデータ配信システムの他の多くの構成を使用して、データベースプログラムにおける論理シナリオ対して事前に構築されたコントロールのギャラリーを提供するプラットフォームを実現することができる。さらに、図４に述べるネットワーク化された環境は、単に例示のためである。諸実施形態は、例示のアプリケーション、モジュール、またはプロセスに限定されない。
【００３３】
[0037]図５および関連する記述は、諸実施形態を実装することができる好適なコンピューティング環境の簡潔な概要を提供することを目的としている。図５を参照すると、コンピューティングデバイス５００のような、諸実施形態によるアプリケーションの例示的コンピューティング動作環境のブロック図が示されている。基本的な構成では、コンピューティングデバイス５００は、諸実施形態によりデータベースプログラムにおける論理シナリオに対して事前に構築されたコントロールのギャラリーを提供するためのアプリケーションを実行するいかなるコンピューティングデバイスとすることもでき、少なくとも１つの処理装置５０２とシステムメモリー５０４とを含むことができる。コンピューティングデバイス５００は、プログラムを実行する際に協働する複数の処理装置を含むこともできる。システムメモリー５０４は、コンピューティングデバイスの正確な構成およびタイプに応じて、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリーなど）、またはこの２つの何らかの組合せでとすることができる。システムメモリー５０４は、一般に、ワシントン州レドモンドのマイクロソフトコーポレーションが提供するＷＩＮＤＯＷＳ（登録商用）オペレーティングシステムなど、プラットフォームの動作を制御するのに好適なオペレーティングシステム５０５を含む。システムメモリー５０４はまた、プログラムモジュール５０６、アプリケーション５２２、ギャラリーモジュール５２４のような、１つまたは複数のソフトウェアアプリケーションを含むこともできる。
【００３４】
[0038]アプリケーション５２２によりコンピューティングデバイス５００は、データベースプログラムの設計ビューに主要な論理シナリオの事前に構築されたコントロールのギャラリーを提供できるようになり、ユーザーは、ギャラリーからコントロールを選択して、データベースプログラムにおけるソリューションに追加し、コントロールの論理を完全なソリューションコードに組み込むことができるようになる可能性がある。ギャラリーモジュール５２４によって制御されるユーザインタフェースによって、アプリケーション５２２が、データベースプログラムにおける一般的に使用されるコントロールまたはアクションを、データベースプログラムの設計ビューに含まれるギャラリーに事前に構築されたコントロールとして表示することができる。アプリケーションにより、ユーザーは事前に構築されたコントロールをソリューションの設計面にドラッグアンドドロップすることができるようになる可能性があり、アプリケーションは、コントロールの背後の論理を完全なソリューションコード論理に組み込むことができる。アプリケーションはさらに、コントロールのための完全な論理をソリューションコードに組み込むために必要とされるさらなる情報を入力するためのウィザードを表示することができる。アプリケーションにより、ユーザーは、ユーザー独自のカスタム作成コントロールを作成し、指定することができることがある。アプリケーション５２２およびギャラリーモジュール５２４は、別個のアプリケーションまたはホステッドサービスの一体型モジュールとすることができる。この基本構成は、破線５０８内のこうした構成要素により図５に示している。
【００３５】
[0039]コンピューティングデバイス５００は、追加の特徴および機能を有することができる。例えばコンピューティングデバイス５００は、例えば磁気ディスク、光ディスク、またはテープなど、追加のデータ記憶デバイス（取外し可能および／または取外し不能）を含むこともできる。このような追加の記憶装置は、リムーバブル記憶装置５０９およびリムーバブルではない記憶装置５１０によって図５で説明している。コンピューター可読記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術で実現される揮発性および不揮発性の、取外し可能および取外し不能媒体を含む。システムメモリー５０４、リムーバブル記憶装置５０９、およびリムーバブルではない記憶装置５１０は、すべてコンピューター可読記憶媒体の例である。コンピューター可読記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリーもしくは他のメモリー技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光記憶装置、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、コンピューティングデバイス５００がアクセスすることができる他のいかなる媒体も含まれるが、これらに限定されない。このようなどのコンピューター可読記憶媒体も、コンピューティングデバイス５００の一部であることが可能である。コンピューティングデバイス５００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、類似の入力デバイスなど、（１つまたは複数の）入力デバイス５１２を有することもできる。ディスプレイ、スピーカー、プリンター、および他のタイプの出力デバイスなどの、（１つまたは複数の）出力デバイス５１４を含むこともできる。これらのデバイスは当技術分野ではよく知られており、本明細書で詳細に説明する必要はない。
【００３６】
[0040]コンピューティングデバイス５００は、分散型コンピューティング環境における有線もしくは無線ネットワーク、衛星リンク、セルラーリンク、近距離ネットワーク、および類似のメカニズムを通じるなど、デバイスが他のデバイス５１８と通信できるようにする通信接続５１６を含むこともできる。他のデバイス５１８は、通信アプリケーションを実行する（１つまたは複数の）コンピューターデバイス、ウェブサーバー、および類似のデバイスを含むことができる。（１つまたは複数の）通信接続５１６は、通信媒体の一例である。通信媒体は、その中にコンピューター可読命令、データ構造、プログラムモジュール、または他のデータを含むことができる。一例として、通信媒体は、有線ネットワークもしくは直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体を含むが、これらに限定されない。
【００３７】
[0041]例示的実施形態はまた、方法を含む。こうした方法は、本明細書に記載する構造を含む、いかなる数の方法で実施されることも可能である。１つのこのような方法は、本明細書に記載するタイプのデバイスの、機械操作によるものである。
【００３８】
[0042]別の任意の方法は、方法の個々の操作の１つまたは複数が、一部を行う１人または複数の人間のオペレータと共に行われる。こうした人間オペレータは、互いと共に配置される必要がなく、それぞれが単にプログラムの一部を行うマシンと共にあることが可能である。
【００３９】
[0043]図６は、諸実施形態によりデータベースプログラムにおける論理シナリオに対して事前に構築されたコントロールのギャラリーを提供するプロセス６００の論理流れ図を示す。プロセス６００は、コンピューティングデバイスまたはプロセッサーにより命令を実行することができる同様の電子デバイス上で実行することができる。
【００４０】
[0044]プロセス６００は、操作６１０から始まり、システムは、ユーザーがデータベースプログラムにおいて新しい設計ソリューションを作成した、または開始したことを検出することができる。あるいは、ユーザーは、既存の設計ソリューションを変更することがある。データベースプログラムにおけるいくつかの例示的ソリューションは、フォーム、表、プロジェクト、クエリ、およびレポートを含むことができる。新しいソリューションの作成または既存のソリューションの変更を検出すると、システムは、ユーザーが取り組んでいるソリューションのタイプに対して、一般的に使用される論理シナリオを判断することができる。操作６２０において、システムは、一般的に使用される論理シナリオを表すアクションまたはオブジェクトに対して事前に構築されたコントロールを、コントロールオブジェクトのギャラリーにロードすることができる。コントロールオブジェクトのギャラリーは、データベースプログラムにおけるソリューションの設計ビューにメニューとして表示することができ、またはコントロールは、ソリューション設計ビューの一部として表示されるタスクバーの一部として表示することができる。ギャラリーによりユーザーは、ソリューションに追加するために、ギャラリー中のコントロールを選択できるようになることが可能である。ユーザーは、コントロールをクリックしてこれを選択することができ、またはユーザーは、ドラッグアンドドロップ方法を使用してコントロールをソリューションに追加することができる。ギャラリー中のコントロールは、コントロールの背後に事前に構築されたコントロールを生成するための論理またはコードを含むことができ、したがってユーザーは、単に選択してコントロールをソリューションに追加し、いかなるコードも編集する必要がない、またはコードエディターにアクセスする必要がない。
【００４１】
[0045]操作６３０においてシステムは、クリックして追加する方法、ドラッグアンドドロップ方法、または類似の方法を使用した、ギャラリーからのコントロールの選択、およびソリューション設計ビューへのコントロールの追加を検出することができる。コントロールをソリューションに追加すると、操作６４０においてシステムは、コントロールのオブジェクトを設計ソリューションに追加することができる。オブジェクトは、いくつかの例では、ボタン、メニュー、リスト、テキストボックス、またはポップアップウィンドウとすることができる。さらに、コントロールの背後の論理を、完全なソリューションコードに追加することができる。これによりソリューションのコードを、ユーザーが追加したソリューションの構成要素で更新することができ、ユーザーがソリューションコードを手動で編集する必要がない。
【００４２】
[0046]一部の論理シナリオまたはコントロールでは、コントロールの完全な論理をシステムに組み込むためにより多くの情報が必要とされることがある。このような場合、システムは、必要に応じて操作６５０においてウィザードまたはダイアログウィンドウを表示することができ、コントロールをソリューション設計ビューに追加した後に表示することができる。ウィザードは、ユーザーが選択してソリューション中のコントロールオブジェクトをカスタマイズし、完成するために、さらなる入力パラメーターおよびオプションを表示するための複数の質問、ドロップダウンメニュー、リスト、またはチェックボックスを提示することができる。ユーザーがさらなるオプションを選択し、コントロールの完全な論理をソリューションに組み込むために必要とされるさらなる情報を提供した後、システムがソリューション中のオブジェクトを更新して、ソリューション中のオブジェクトの正確な機能または操作を表示することができる。操作６６０は、コントロールオブジェクトの完全な論理を、データベースプログラムにおけるソリューションのソリューションコード論理に組み込むことができる。
【００４３】
[0047]コードは、ユーザーが望む場合、編集およびカスタマイズするためにユーザーに利用できるものとすることができるが、ユーザーがコードジェネレーターにアクセスする、またはコードもしくは論理を何ら生成する必要なく、完全なソリューションを始めから終わりまで作成することができる。いくつかの実施形態では、ソリューションは、表、フォーム、プロジェクト、レポート、またはクエリ内部の論理とすることができる。
【００４４】
[0048]プロセス６００に含まれる操作は、例示のためのものである。事前に構築されたコントロールを使用した論理の作成は、より少ないステップまたは追加のステップを有する同様のプロセスによって、ならびに本明細書に記載する原理を使用する操作の異なる順序で、実行することができる。
【００４５】
[0049]上記の明細書、例、およびデータは、諸実施形態の構成物の製作および使用についての包括的な説明を提供する。対象物について、構造的特徴および／または方法論的動作に特有の言語で説明したが、添付の特許請求の範囲に定める対象物は、必ずしも上記の特定の特徴または動作に限定されないことを理解されたい。むしろ、特許請求の範囲を実施する例示的な形態および実施形態として、上記の特定の特徴および動作を開示する。
【図１】
2014526081.tif 000003
【図２】
2014526081.tif 000004
【図３】
2014526081.tif 000005
【図４】
2014526081.tif 000006
【図５】
2014526081.tif 000007
【図６】
2014526081.tif 000008
【国際調査報告】
2014526081.tif 000009
2014526081.tif 000010