環境にインストールした Northwind Traders データベースのリレーショナル データを管理するためのキャンバス アプリについて説明します。 次に、以降のトピックの手順に従って、このアプリをゼロから構築し、リレーショナル データの操作に関する実践的な経験を得ることができます。
このトピックでは、以下を検出します。
- アプリ ユーザーがアプリ内のリレーショナル データを表示および管理する方法。
- アプリを駆動するデータの種類。
- これらの種類のデータ間のリレーションシップがどのように作成されたか。
1 つの画面で、アプリ ユーザーは注文の表示、更新、作成、削除を行うことができます。
ユーザー インターフェイスの操作
注文ギャラリー
アプリの左端には、注文番号、状態、顧客の名前、注文の合計コストなど、注文の一覧がギャラリーに表示されます。 ユーザーはリストをスクロールして注文を見つけ、注文の矢印を選択して詳細を表示できます。 詳細情報: 注文ギャラリーを作成します。
概要フォーム
右上隅のフォームには、ユーザーが注文ギャラリーで選択した順序が要約されます。 概要には、そのギャラリーと同じ情報の多くが含まれていますが、概要には、注文が作成および支払われた日付と、注文を管理した従業員の名前と画像も表示されます。 ユーザーは、タイトル バーの右端付近にあるアイコンを選択して、フォームのデータの変更、それらの変更の保存、キャンセル、または注文の削除を行うことができます。 詳細情報: 概要フォームを作成します。
詳細ギャラリー
右下隅の別のギャラリーには、選択した注文に含まれる製品と数量に関する情報が表示されます。 このギャラリー内の各項目は、注文の詳細と呼ばれます。 アプリ ユーザーは、ギャラリー内とギャラリーの下にあるコントロールを使用して、そのギャラリー内の任意の項目を追加および削除できます。 詳細情報: 詳細ギャラリーを作成します。
データ ソースを調べる
このアプリを作成するには、5 つのテーブルからのデータと選択肢を表示します。 実際、このアプリのほとんどの領域には、複数のテーブルからのデータが表示されます。 たとえば、注文ギャラリーには次の情報が含まれています。
- 注文番号は、[ 受注 ] テーブルのフィールドです。
- ステータスは、受注テーブルの別のフィールドで、受注ステータス選択肢からのオプションです。
- 顧客名は、[ 顧客 ] テーブルのフィールドです。
- 合計コストは、 Order Details テーブルのデータに基づいて計算されます。
概要には、注文の一覧と同じ情報の一部が含まれていますが、注文を管理した従業員の名前と画像も含まれています。 この情報は 、Employees テーブルのフィールドから取得されます。 詳細ギャラリーには Order Details テーブルのレコードが表示され、これらの詳細の各製品は Order Products テーブルのレコードです。
リレーションシップを調べる
異なるソース (テーブルなど) のデータを同じギャラリーまたはフォームに表示できます。これらのテーブルには、データベース内で作成されたリレーションシップがあるためです。
多対一リレーションシップ
たとえば、各注文の顧客と従業員に関する情報は、[ 顧客 ] テーブルと [従業員] テーブルに存在します。 したがって、 Orders テーブルには、1 人の顧客のみが配置でき、1 人の従業員のみが管理できる注文が多数存在するため、これらのテーブルとの間に多対 1 のリレーションシップがあります。
各注文には、注文に含まれる製品とその数量を表す 1 つ以上の品目もあります。 各行項目は、 受注明細 テーブルのレコードであり、受注 製品 テーブルから各製品に関する情報を取得します。 各詳細は 1 つの製品のみを識別しますが、各製品は複数の詳細に表示できます。 したがって、 受注明細 テーブルには、 受注製品 テーブルとの多対一リレーションシップがあります。
一対多関連付け
各注文には複数の品目を含めることができますが、各品目は 1 つの注文にのみ関連します。 したがって、 Orders テーブルには、 Order Details テーブルとの一対多リレーションシップがあります。
リレーションシップのドット表記
テーブル間のリレーションシップに基づいてデータを表示するには、ドット プロパティ セレクターを使用して、テーブル間のリレーションシップを移動できます。 たとえば、 Orders テーブルの各レコードは、注文ギャラリーが 顧客 名を表示できるように Customers テーブルから情報を取得します。 そのギャラリーでは、ラベルの Text プロパティを次の式に設定して、この動作を構成します。ThisItem.Customer.Company
ThisItem は 、Orders テーブル内のレコードを指定し、注文を行った顧客に関する情報を Customers テーブルから取得します。 この場合、式は顧客の会社名が表示されることを指定します。 ただし、その顧客のレコード全体がプルされるため、代わりにその顧客のメール アドレスなどを簡単に表示できます。
あるテーブルから別のテーブルに移動する別の例として、ユーザーが別のギャラリーで選択し、別のテーブルにあるレコードに基づいて、あるテーブルのレコードをギャラリーに表示するように指定できます。 注文の詳細を表示するには、詳細ギャラリーの Items プロパティを次の式に設定します。Gallery1.Selected.'Order Details'
この場合、Gallery1.Selected では、前の例で ThisItem が実行したのと同様に、Orders テーブルにレコードが指定されます。 ただし、この式では、前の式のように 1 つのレコードだけがプルされるわけではありません。 代わりに、レコードのテーブル全体をプルして、各製品の名前とユニットごとのコスト ( Order Products テーブルに反映される) と数量 ( Order Details テーブルに反映) を表示します。
自分で実行する
詳細な手順に従って、Northwind Orders キャンバス アプリを作成できます。 手順は、次の 3 つの部分に分かれています。
先に進む場合、ソリューションには各パーツの開始点アプリが含まれます。 アプリの一覧で、 Northwind Orders (Canvas) - Begin Part 1 などを探します。