选择以下任意主题,了解 Northwind Developer Edition 中的采购订单。
此开发版的 Northwind 采购订单示例应用程序具有唯一的采购订单模块。 在 Starter Edition 中,产品永远不会用完,也不需要购买。 此 Dev Edition 扩展了 Northwind 2.0 Starter Edition) 中使用的数据库架构 (表,并使用更高级的功能。 它仍然旨在向你介绍 Microsoft Access 的主要功能,而不是运行任何特定业务。
-
可从功能区获取采购订单列表。 它具有用于打开每个采购订单的超链接。
-
采购订单列表和功能区都有一个“新建采购订单”按钮,用于打开新的空白采购订单。 还可以从 “产品”窗体>“重新订购产品 ”按钮创建采购订单。
-
标题中的按钮通过提交、批准、 接收和 关闭来推进采购订单工作流。 窗体上的相应跟踪字段已锁定,因为只能通过单击操作按钮以编程方式设置它们。
-
批准 PO 需要购买审批权限。 你可以以 Andrew Cencini 的身份登录,他拥有该权限,或者在“系统管理员 >特权”中将其授予自己。 请注意,这样做的能力是 Northwind 不是生产质量应用程序的众多原因之一。 在现实世界中,用户将无法提升自己的权限。
-
采购订单中的行项根据其数量进行验证。 它必须至少是最小重新订购数量,理想情况下,它应该将库存恢复到至少为每个产品设置的目标级别。
-
收到采购订单时,将调用特殊处理,以将这些产品分发到处于无库存状态的订单行项目,并将其设置为“已分配”。 任何剩余数量将发送到库存。 记录将添加到 StockTake 表。
本部分介绍采购订单窗体 frmPurchaseOrderDetails 的值得注意的实现详细信息:
-
采购订单窗体从简单的查询获取其数据, qryPurchaseOrder (请参阅 RecordSource 属性) 。 最佳做法是将数据输入表单基于简单查询。 请注意,不需要在此查询中包含 PurchaseOrderDetails 表。 详细信息由子窗体处理。 但查询会与其他表联接,以选取只读 的 StatusName、 SubmittedBy 和 ApprovedBy 字段。
-
PurchaseOrderList 窗体可以打开“采购订单”窗体的多个实例。 这很方便,因为 PO 部门处理大量中断,可能需要在处理第一个 PO 时打开另一个 PO,或者将其与第三个 PO 进行比较。 此处介绍了该技术。
-
VendorID 从两列组合框获取其值:隐藏的 ID 列和可见的“说明”列。 此类组合框绑定到简单的双列查询:请参阅 RowSource 属性。
-
保存记录时,至少必须填写 必填 字段。 在 Starter 版本中,我们允许发生 Access 默认行为;在此 Dev 版本中,实现了更用户友好的技术,如下所述。
-
当 PO 状态 变为 “已接收”时,将调用特殊处理 (过程 AllocateToInventory) ,以在等待这些产品的订单上分发新库存。
验证
在 Northwind Dev 版本中实现的验证代码只需要三行代码:
-
在 Form_BeforeUpdate:Cancel = ValidateForm (Me)
-
在 Form_AfterUpdate: ValidateForm_RemoveHighlights我
-
在Form_Current:ValidateForm_RemoveHighlights我
这是一个很好的模式:使代码非常独立,因此可以轻松地在任何地方实现。 专业开发人员可以进一步采用这一点,例如使用表单子类。 (这超出了 Northwind Dev.) 的目标
独立验证代码接受表单对象进行验证。 然后,它会检查基础 RecordsetClone 的表单集合,找出哪些控件绑定到必需字段,并检查它们是否具有值。 否则,它们将突出显示。