Selecione qualquer tópico abaixo para saber mais sobre pedidos de compra no Northwind Developer Edition.
Esta Edição de Desenvolvimento do aplicativo de exemplo Northwind Purchase Orders tem o único módulo Pedidos de Compra. No Starter Edition, os produtos nunca se esgotam e nunca precisam ser comprados. Este Dev Edition expande-se no esquema de banco de dados (tabelas usadas) no Northwind 2.0 Starter Edition e usa recursos mais avançados. Ele ainda é destinado a apresentá-lo aos principais recursos do Microsoft Access, não para executar nenhum negócio específico.
-
A Lista de Pedidos de Compra está disponível na Faixa de Opções. Ele tem hiperlinks para abrir cada pedido de compra.
-
Tanto a Lista de Pedidos de Compra quanto a Faixa de Opções têm um botão Novo Pedido de Compra para abrir uma nova ordem de compra em branco. Você também pode criar pedidos de compra no formulário Produtos >botão Reordenar Produto .
-
Os botões no cabeçalho avançam as Ordens de Compra por meio do fluxo de trabalho por meio de Enviar, Aprovar, Receber e Fechar. Os campos de acompanhamento correspondentes no formulário são bloqueados porque eles só devem ser definidos programaticamente clicando nos botões de ação.
-
Aprovar uma po requer privilégio de aprovação de compra. Você pode fazer logon como Andrew Cencini, que tem o privilégio, ou dá-lo a si mesmo no System Administração > Privileges. Observe que sua capacidade de fazê-lo é uma das muitas razões pelas quais o Northwind não é um aplicativo de qualidade de produção. No mundo real, os usuários não poderão elevar suas próprias permissões.
-
Os itens de linha em uma ordem de compra são validados em relação à quantidade deles. Deve ser pelo menos a Quantidade Mínima de Reordenação e, idealmente, ele deve obter o inventário de volta até pelo menos o Nível de Destino, conforme definido para cada Produto.
-
Quando uma ordem de compra é recebida, o processamento especial é invocado para distribuir esses produtos para encomendar itens de linha que estão em Nenhum Estoque status e defini-los como Alocados. Qualquer quantidade restante é enviada ao inventário. Um registro é adicionado à tabela StockTake .
Esta seção aborda detalhes de implementação notáveis do formulário Ordem de Compra, frmPurchaseOrderDetails:
-
O formulário Pedido de Compra obtém seus dados de uma consulta simples, qryPurchaseOrder (consulte propriedade RecordSource ). Basear um formulário de entrada de dados em uma consulta simples é uma prática recomendada. Observe que não é necessário incluir a tabela PurchaseOrderDetails nesta consulta. Os detalhes são tratados pelo subforme. Mas a consulta se junta a outras tabelas para pegar os campos StatusName, SubmittedBy e ApprovedBy somente leitura.
-
O formulário PurchaseOrderList pode abrir várias instâncias do formulário pedido de compra. Isso é útil porque o departamento de PO lida com muitas interrupções e pode precisar abrir outra PO enquanto trabalha na primeira ou compará-la com uma terceira PO. A técnica está documentada aqui.
-
O VendorID obtém seu valor de uma caixa de combinação de duas colunas: uma coluna ID oculta e uma coluna de descrição visível. Essas caixas de combinação estão associadas a consultas simples de duas colunas: consulte a propriedade RowSource .
-
Ao salvar um registro, no mínimo os campos necessários devem ser preenchidos. Na edição Starter, permitimos que o comportamento padrão do Access aconteça; nesta edição de Desenvolvimento, uma técnica mais amigável ao usuário é implementada -- conforme descrito em detalhes abaixo.
-
Quando o status po vai para Recebido, o processamento especial é invocado (procedimento AllocateToInventory) para distribuir o novo inventário por pedidos que estão aguardando por esses 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(Me)
-
Em Form_AfterUpdate: ValidateForm_RemoveHighlights me
-
Em Form_Current: ValidateForm_RemoveHighlights me
Este é um bom padrão a seguir: tornar seu código muito independente facilita a implementação em todos os lugares. Os desenvolvedores profissionais podem levar isso ainda mais longe, por exemplo, usando a subclasse de formulário. (Isso está além das metas para Northwind Dev.)
O código de validação independente aceita um objeto de formulário para validar. Em seguida, ele verifica a coleção de formulários do RecordsetClone subjacente para descobrir quais controles estão associados aos campos necessários e verifica se eles têm um valor. Se não o fizerem, eles serão realçados.
-
Northwind 2.0 Developer Edition: coisas que você deve saber.
-
Northwind 2.0 Developer Edition: todos os tópicos