罗斯文商贸的画布应用概述
了解管理您安装在环境中的罗斯文商贸数据库中的关系数据的画布应用。 然后按照后续主题中的分步说明从头开始构建此应用,从而获得使用关系数据的实际操作经验。
在本主题中,发现:
- 应用用户如何在应用中显示和管理关系数据。
- 哪些数据类型可以驱动应用。
- 这些数据类型之间的关系是如何创建的。
在一个屏幕上,应用用户可以显示、更新、创建和删除订单。
探索用户界面
订单库
在应用的左边缘,库显示订单列表,包括订单编号、状态、客户名称和订单总成本。 用户可以滚动列表来查找订单,然后通过选择订单的箭头显示有关该订单的详细信息。 详细信息:创建订单库。
摘要窗体
在右上角,一个窗体汇总了用户在订单库中选择的订单。 摘要包含与库相同的信息,不过摘要还显示创建和支付订单的日期,以及管理订单的员工的姓名和图片。 用户可以通过选择标题栏右边缘附近的图标来更改窗体中的数据、保存更改、取消更改或删除订单。 更多信息:创建摘要窗体。
详细信息库
在右下角,另一个库显示有关所选订单包含哪些产品以及数量的信息。 此库中的每一项都称为订单详细信息。 应用用户可以通过使用库中或库下面的控件来在该库中添加和删除任何项。 详细信息:创建详细信息库。
探索数据源
要创建此应用,您将显示来自五个表和一个选择项的数据。 事实上,此应用的大部分区域都显示来自多个表的数据。 例如,订单库包含以下信息:
- 订单编号是订单表中的一个字段。
- 状态是订单表中的另一个字段,是订单状态选择项中的一个选项。
- 客户名称是客户表中的一个字段。
- 总成本基于订单详细信息表中的数据计算。
摘要包含与订单列表相同的信息,但还包含管理订单的员工的姓名和图片。 该信息从员工表中的字段拉取。 详细信息库显示订单详细信息表中的记录,这些详细信息中的每个产品都是订单产品表中的一个记录。
探索关系
您可以在同一个库或窗体中显示来自不同源(例如,表)的数据,因为这些表具有在数据库中为您创建的关系。
多对一关系
例如,有关每个订单的客户和员工的信息位于客户和员工表中。 因此,订单表与这些表是多对一关系,因为有很多订单,每个订单只能由一个客户下单,由一名员工管理。
每个订单还有一个或多个明细项目,分别代表该订单包含的产品及其数量。 每个行项目都是订单详细信息表中的一个记录,它从订单产品表中拉取有关每个产品的信息。 每个详细信息仅标识一个产品,但是每个产品可以出现在多个详细信息中。 因此,订单详细信息表与订单产品表具有多对一关系。
一对多关系
每个订单可以包含多个明细项目,但每个明细项目仅与一个订单相关。 因此,订单表与订单详细信息表具有一对多关系。
关系的点符号
要基于表之间的关系显示数据,您可以使用 dot 属性选择器来遍历从一个表到另一个表的关系。 例如,订单表中的每个记录都从客户表拉取信息,以便订单库可以显示客户名称。 在该库中,您可以通过将标签的 Text 属性设置为此表达式来配置此行为:ThisItem.Customer.Company
ThisItem 指定订单表中的一个记录,从客户表拉取有关下订单的客户的信息。 在此例中,此表达式指定将显示客户的公司名称。 但是,拉取了该客户的整个记录,因此您可以轻松地显示该客户的电子邮件地址等信息。
从一个表到达另一个表的另一个示例是,您可以指定库应该基于用户在另一个库中选择的位于另一个表中的记录显示一个表中的记录。 要显示订单详细信息,您可以将详细信息库的 Items 属性设置为以下表达式:Gallery1.Selected.'Order Details'
在本例中,Gallery1.Selected 指定了订单表中的一个记录,就像上一个示例中的 ThisItem 一样。 但是,此表达式不像前一个表达式那样仅拉取一条记录。 而是拉取整个记录表来显示每个产品的名称和单位成本(如订单产品表中所反映的)和数量(如订单详细信息表中所反映的)。
亲自动手
您可以按照分步说明创建“罗斯文订单”画布应用。 说明分为三个部分:
如果要直接跳过,此解决方案将包含每个部分的起点应用。 在应用列表中,查找 Northwind Orders (Canvas) - Begin Part 1,等等。