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