Selecione qualquer tópico abaixo para saber mais sobre As Encomendas de Compras na Northwind Developer Edition.
Esta Edição Dev da aplicação de exemplo Encomendas de Compras da Northwind tem o único módulo Notas de Encomenda. No Starter Edition, os produtos nunca acabam e nunca precisam de ser comprados. Esta Edição Dev expande-se no esquema de base de dados (tabelas utilizadas) no Northwind 2.0 Starter Edition e utiliza funcionalidades mais avançadas. Ainda se destina a apresentar-lhe as principais funcionalidades do Microsoft Access, não para gerir qualquer negócio específico.
-
A Lista de Notas de Encomenda está disponível no Friso. Tem hiperligações para abrir cada nota de encomenda.
-
Tanto a Lista de Notas de Encomenda como o Friso têm um botão Nova Nota de Encomenda para abrir uma nova nota de encomenda em branco. Também pode criar Pedidos de Compra a partir do formulário Produtos >botão Reordenar Produto .
-
Os botões no cabeçalho avançam as Encomendas de Compra através do fluxo de trabalho através de Submeter, Aprovar, Receber e Fechar. Os campos de controlo correspondentes no formulário estão bloqueados porque só devem ser definidos programaticamente ao clicar nos botões de ação.
-
A aprovação de uma nota de encomenda requer privilégios de Aprovação de Compra. Pode iniciar sessão como Andrew Cencini, que tem o privilégio, ou dá-lo a si próprio no System Administração > Privileges. Tenha em atenção que a sua capacidade de o fazer é uma das muitas razões pelas quais a Northwind não é uma aplicação de qualidade de produção. No mundo real, os utilizadores não poderão elevar as suas próprias permissões.
-
Os itens de linha numa Nota de Encomenda são validados relativamente à respetiva Quantidade. Tem de ser, pelo menos, a Quantidade Mínima de Reordenação e, idealmente, deve obter o inventário de volta para, pelo menos, o Nível de Destino, conforme definido para cada Produto.
-
Quando uma Nota de Encomenda é Recebida, é invocado um processamento especial para distribuir esses produtos para encomendar itens de linha que não estão no estado Stock e defini-los como Alocados. Qualquer quantidade restante é enviada para o inventário. É adicionado um registo à tabela StockTake .
Esta secção aborda detalhes de implementação notáveis do formulário Nota de Encomenda, frmPurchaseOrderDetails:
-
O formulário Nota de Encomenda obtém os respetivos dados a partir de uma consulta simples, qryPurchaseOrder (ver propriedade OrigemDosRegistos ). Basear um formulário de entrada de dados numa consulta simples é uma melhor prática. Tenha em atenção que não é necessário incluir a tabela PurchaseOrderDetails nesta consulta. Os detalhes são processados pelo subformulário. No entanto, a consulta associa-se a outras tabelas para recolher os campos StatusName, SubmittedBy e ApprovedBy só de leitura.
-
O formulário PurchaseOrderList pode abrir várias instâncias do formulário Nota de Encomenda. Isto é útil porque o departamento de po lida com muitas interrupções e pode precisar de abrir outra nota de encomenda enquanto trabalha na primeira- ou compará-la com uma terceira nota de encomenda. A técnica está documentada aqui.
-
VendorID obtém o respetivo valor a partir de uma caixa de combinação de duas colunas: uma coluna ID oculta e uma coluna Descrição visível. Estas caixas de combinação estão vinculadas a consultas simples de duas colunas: veja a propriedade RowSource .
-
Ao guardar um registo, pelo menos os campos necessários têm de ser preenchidos. Na edição Starter, permitimos que o comportamento predefinido do Access ocorra; nesta edição Dev, é implementada uma técnica mais fácil de utilizar, conforme descrito em detalhe abaixo.
-
Quando o Estado da Nota de Encomenda for recebido, o processamento especial é invocado (procedimento AllocateToInventory) para distribuir o novo inventário por encomendas que estão à espera destes produtos.
VALIDAÇÃO
O código de validação implementado na edição Northwind Dev requer apenas três linhas de código:
-
Em Form_BeforeUpdate: Cancelar = ValidateForm(Eu)
-
In Form_AfterUpdate: ValidateForm_RemoveHighlights Me
-
Em Form_Current: ValidateForm_RemoveHighlights Me
Este é um bom padrão a seguir: tornar o seu código muito autónomo facilita a implementação em todo o lado. Os programadores profissionais podem levar isto ainda mais longe, por exemplo, através da subclasse de formulários. (Isto está para além dos objetivos da Northwind Dev.)
O código de validação autónomo aceita um objeto de formulário para validar. Em seguida, verifica a coleção de formulários da RecordsetClone subjacente para saber quais os controlos que estão vinculados aos campos necessários e verifica se têm um valor. Se não o fizerem, serão realçados.
-
Northwind 2.0 Developer Edition: coisas que deve saber.
-
Northwind 2.0 Developer Edition: Todos os tópicos