Northwind Traders 的画布应用概述

了解管理您安装在环境中的罗斯文商贸数据库中的关系数据的画布应用。 然后,按照后续主题中的分步说明从头开始构建此应用,从而获得使用关系数据的实践经验。

在本主题中,您将了解:

  • 应用用户如何在应用中显示和管理关系数据。
  • 哪种类型的数据驱动应用。
  • 如何创建这些类型的数据之间的关系。

在单个屏幕中,应用用户可以显示、更新、创建和删除订单。

完成 Canvas 应用。

探索用户界面

在应用的左边缘,画廊显示订单列表,包括订单编号、状态、客户名称以及订单的总费用。 用户可以滚动浏览列表以查找订单,然后通过选择订单的箭头显示有关该订单的详细信息。 详细信息: 创建订单库

摘要表单

在右上角,窗体汇总了用户在订单库中选择的顺序。 摘要包含与该库相同的信息,但摘要还显示创建和支付订单的日期,以及管理订单的员工的姓名和图片。 用户可以更改窗体中的数据、保存这些更改、取消更改或删除订单,方法是选择标题栏右边缘附近的图标。 详细信息: 创建摘要窗体

在右下角,另一个库显示有关所选订单包含哪些产品以及数量的信息。 此库中的每一项都称为订单详细信息。 应用用户可以使用图库中及其下方的控件来添加或删除任何项目。 详细信息:创建详细信息展示页

屏幕区域的定义。

浏览数据源

要创建此应用,您将显示来自五个表和一个选择项的数据。 事实上,此应用的大部分区域都显示来自多个表的数据。 例如,订单库包含以下信息:

  • 订单号是 “订单 ”表中的字段。
  • 状态是 “订单 ”表中的另一个字段,这是“ 订单状态 ”选项中的一个选项。
  • 客户名称是 Customers 表中的字段。
  • 总成本是根据 “订单详细信息 ”表中的数据计算的。

摘要包含与订单列表相同的一些信息,但也包含管理订单的员工的姓名和图片。 此信息是从 Employees 表中的字段拉取的。 详细信息库显示 “订单详细信息 ”表中的记录,这些详细信息中的每个产品都是 “订单产品 ”表中的记录。

探索关系

可以在同一个库或窗体中显示来自不同源(例如表)的数据,因为这些表具有数据库中为你创建的关系。

多对一关系

例如,有关每个订单的客户和员工的信息驻留在 “客户 ”和 “员工” 表中。 因此,Orders表与这些表具有多对一关系,因为有许多订单,而每个订单只能由一个客户创建,并由一名员工管理。

每个订单还有一个或多个行项,表示订单包含的产品及其数量。 每个行项都是 “订单详细信息 ”表中的记录,该记录从 “订单产品 ”表中拉取有关每个产品的信息。 每个详细信息仅标识一个产品,但每个产品可以出现在多个详细信息中。 因此, “订单详细信息 ”表与 “订单产品 ”表具有多对一关系。

一对多关系

每个订单可以包含多个行项,但每个行项仅与一个订单相关。 因此, Orders 表与 “订单详细信息 ”表具有一对多关系。

关系的点号表示法

要基于表之间的关系显示数据,您可以使用 dot 属性选择器来遍历从一个表到另一个表的关系。 例如, Orders 表中的每个记录都会从 Customers 表中拉取信息,以便订单库可以显示客户名称。 在该库中,您可以通过将标签的 Text 属性设置为此表达式来配置此行为:
ThisItem.Customer.Company

ThisItem“订单 ”表中指定一条记录,并从 “客户 ”表中拉取有关下订单的客户的信息。 在这种情况下,表达式指定显示客户的公司名称。 但是,拉取了该客户的整个记录,因此您可以轻松地显示该客户的电子邮件地址等信息。

从一个表到达另一个表的另一个示例是,您可以指定库应该基于用户在另一个库中选择的位于另一个表中的记录显示一个表中的记录。 若要显示订单详细信息,请将详细信息库的 Items 属性设置为以下表达式:
Gallery1.Selected.'Order Details'

在本例中, Gallery1.Selected 指定 Orders 表中的记录,就像上一示例中的 ThisItem 一样。 但是,此表达式不会像上一个表达式那样只拉取一条记录。 相反,它会拉取整个记录表,以显示每个产品的名称和每单位成本(如 “订单产品 ”表所示)和数量(如 “订单详细信息 ”表中所示)。

亲自动手

可以按照分步说明创建 Northwind Orders 画布应用。 说明分为三个部分:

  1. 创建订单库
  2. 创建摘要窗体
  3. 创建详细信息库

如果要直接跳过,此解决方案将包含每个部分的起点应用。 在应用列表中,查找 Northwind Orders (Canvas) - Begin Part 1,等等。