Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Selecciona cualquier tema a continuación para obtener información sobre la administración de pedidos en Northwind Developer Edition. 

Esta edición para desarrolladores de la aplicación de ejemplo Northwind Orders es más avanzada que la edición Starter. Se expande en el esquema de la base de datos (las tablas que se usan) y ahora proporciona características avanzadas adicionales. La intención en este documento es presentarle las características de Microsoft Access, no dirigir ninguna empresa específica.

  • La lista de pedidos está disponible en la cinta de opciones. Tiene algunas opciones de filtro e hipervínculos para abrir cada pedido.

  • Tanto la lista de pedidos como la cinta de opciones tienen un botón Agregar pedido para abrir un nuevo pedido en blanco.

  • En un formulario Nuevo pedido, selecciona un cliente existente en la lista desplegable. En ese momento, se seleccionará el Nombre del empleado y el nuevo estado. La Fecha del pedido ya se ha rellenado. El tipo impositivo se lee en la tabla SystemSettings y el estado del impuesto se calcula de forma predeterminada en el registro cliente.

  • Los nuevos pedidos y pedidos de compra se agregan a la lista MRU (Usados recientemente) de la cinta de opciones. Obtenga más información a través de la sección Lista de MRU de este artículo

  • Deje en blanco la Fecha de envío y la Fecha de pago por ahora.

  • Para agregar pedidos de nuevos clientes, escriba el nombre de la compañía y salga de la pestaña. El formulario Detalle de la empresa se abrirá para finalizar el nuevo registro de cliente. A continuación, ciérrelo y continúe con el pedido. La nueva empresa estará ahora en la lista desplegable Clientes .

  • Para agregar artículos a un pedido, selecciona una Categoría de producto y un Producto para este pedido y escribe Cantidad. Precio unitario se rellena y Precio se calcula mediante una expresión.

  • Estado del pedido anticipado y mover el pedido por el flujo de trabajo desde Nuevo > > enviado > Cerrado con los botones de la parte superior del formulario Pedido.

  • Invoicing solo puede ocurrir si el producto está asignado a ese pedido. Si un elemento de línea está en estado Sin existencias o En pedido, se producirá un error de validación. El usuario puede crear un pedido de compra para ese producto y recibirlo, y el estado del artículo del pedido se ajustará a Asignado.

  • Para enviar un pedido, debe especificarse la tarifa de envío y el transportista. Si se olvida de hacerlo, se producirá un error de validación. La tarifa de envío se agrega al Total del pedido.

  • Los pedidos no enviados se pueden eliminar con el botón Eliminar pedido.

  • Los elementos de línea de pedido no se pueden modificar después de que el pedido haya pasado el estado Nuevo .

  • En la versión starter de Northwind, el proceso de pedido es increíblemente sencillo (por ejemplo, el inventario siempre está disponible, nunca se agota y nunca se tiene que comprar). Ahora, en esta edición Dev, un proceso más realista aborda al menos algunos de estos problemas. Recuerde que estamos mostrando características y procedimientos recomendados de Access, no implementando una aplicación del mundo real. 

  • Las pruebas de que no estamos implementando una aplicación del mundo real aquí incluyen el hecho de que las fechas no se están validando. Por lo tanto, es posible especificar fechas ilógicas como una fecha de envío que sea anterior a la fecha de pedido. 

En esta sección se tratan los detalles destacados de la implementación del formulario Pedido, frmOrderDetails:

El formulario de pedido obtiene los datos de una consulta sencilla qryOrder (vea la propiedad RecordSource ). Se recomienda basar un formulario de entrada de datos en una consulta sencilla de una tabla. Tenga en cuenta que no es necesario incluir la tabla Detalles de pedidos en esta consulta. El subformulario controla los detalles del pedido.

El formulario Lista de pedidos puede abrir varias instancias del formulario Pedido. Esto es útil porque los representantes de ventas tratan con muchas interrupciones y es posible que necesiten abrir otro pedido mientras trabajan en el primero o compararlo con un tercer pedido. La técnica está documentada aquí.

Los distintos campos Id. obtienen sus valores de cuadros combinados de dos columnas: una columna id. oculta y una columna descripción visible. Estos cuadros combinados están enlazados a consultas simples de dos columnas: vea la propiedad RowSource .

Los botones del flujo de trabajo tienen lógica empresarial asociada a ellos que obliga al usuario a avanzar el orden de 1 a 4. El equipo de desarrollo de Northwind es consciente de que algunas compañías pueden usar reglas diferentes. A continuación, esto daría como resultado una implementación diferente para los eventos de clic del botón, así como re-consideración de cuándo un pedido es definido y cuándo se puede seguir eliminando un pedido.

El subformulario sfrmOrderDetails está enlazado a una consulta más compleja. Las razones para eso se explican en la sección Cuadros combinados en cascada a continuación. Comprobamos el inventario en el evento de Form_AfterUpdate cuando se guarda la fila y podemos ejecutar consultas de base de datos más eficaces.

ProductCategory y Product son cuadros combinados en cascada: al seleccionar desde la primera (ProductCategory) se limita el siguiente a los registros de producto secundarios coincidentes. La técnica usada aquí se describe detalladamente a continuación.

Al guardar un registro, los campos obligatorios deben rellenarse. En la edición Starter permitimos que se produzca el comportamiento predeterminado de Access; en esta edición Dev se implementa una técnica más fácil de usar. La técnica usada aquí se describe detalladamente a continuación.

Para cada artículo de línea de pedido, se comprueba el inventario disponible y el estado se establece en consecuencia. La idea básica de esta característica se describe aquí.
 

CUADROS COMBINADOS EN CASCADA

Implementar los menús desplegables Categoría de producto y Producto como cuadros combinados en cascada es complicado porque Access no admite esta característica de forma integrada. En esta técnica son necesarios cuatro pasos:

El formulario debe estar en modo Formularios continuos (no hoja de datos). Los cuadros de texto se superponen a la parte de texto de cada cuadro combinado, dejando solo visibles sus flechas desplegables. 

La consulta de origen de registros del formulario, qryOrderLineItems, usa la tabla OrderDetails de forma habitual, pero también se combina con las tablas Products y ProductCategories para seleccionar ProductName y ProductCategoryName. Los dos cuadros de texto superpuestos están enlazados a estos campos.

RowSource para el cuadro combinado Productos busca en cboProductCategories para devolver solo los productos de la categoría seleccionada en ese cuadro combinado. Tenga en cuenta la sintaxis "[Formulario]! [cboProductCategories]" en la expresión de criterios, que es más flexible que los Formularios explícitos. FormName! Sintaxis de ControlName , que hace referencia a un formulario por nombre.

Después de seleccionar una categoría de producto en el cuadro combinado ProductCategories independiente, su evento AfterUpdate establece el cuadro combinado Productos en el primer valor de su lista. Se crea una nueva fila en recordSource del formulario, que rellena categoryname para que se pueda mostrar mediante su cuadro de texto superpuesto.
 

VALIDACIÓN

El uso del código de validación implementado en la edición Northwind Dev solo toma 3 líneas de código:

  • En Form_BeforeUpdate:
       Cancel = ValidateForm(Me)

  • En Form_AfterUpdate y Form_Current:
        ValidateForm_RemoveHighlights Yo

Hacer que el código sea muy autocontenido es un buen patrón para seguir, ya que facilita la implementación en todas partes. Los desarrolladores profesionales pueden llevar esto aún más lejos, por ejemplo, mediante el uso de subclases de formulario. (Esto va más allá de los objetivos de Northwind Dev.)

El objeto form se pasa al código de validación autocontenido para validarlo. Después, comprueba la colección RecordsetClone Fields subyacente para averiguar qué controles están enlazados a los campos obligatorios y comprueba si tienen un valor. Si no es así, se resaltarán.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×