Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Управление выполнением заказов




Теперь, когда процесс размещения заказов отлажен, можно уделить внимание дальнейшим действиям.

В БД Boutique Fudge у каждой записи в таблице Ordersесть поле OrderStatus(состояние заказа), отслеживающее его состояние или статус. У вновь созданных заказов статус New (новый). На складе сотрудники хранилища ищут заказы со статусом New (новый) и выбирают один из них для обработки. В этот момент они изменяют статус заказа на In Progress (выполняющийся в данный момент), поэтому никто больше в это же время не попытается его доставить. Наконец, когда заказ укомплектован, его статус меняется на Shipped (отправлен) и затем в поле ShipDateзаписывается точное время отправки.


 
 

Логически эта модель вполне осмыслена. Но немного трудно применять к ней обычные таблицы и формы. Для того чтобы следовать этому технологическому процессу, работники склада должны несколько раз изменять статус в записи заказа, помнить о необходимости зафиксировать дату отправки и при этом не изменять другие данные о заказе. Если они про­пустят какой-нибудь этап — скажем, никогда не переведут статус заказа в In Progress (выполняющийся в данный момент) — вполне возможно, что кто-то из сотрудников попы­тается выполнить тот же самый заказ.

Решением может быть создание формы ShipOrders,которая проведет работников склада через все нужные этапы. Вначале эта форма отображает список заказов с минимальной ин­формацией (рис. 17.14).

 

Рис. 17.14.Список заказов отсортирован, так что самые старые заказы (которые следует обработать первыми) появляются в верхней части списка. Свойство Блокировка(Locked) для всех полей задано со значением Да, поэтому никто не сможет изменить никакие данные. Рядом с каждым заказом расположена кнопка Process(обработка), которая начинает процесс выполнения заказа (в форму можно добавить фильтр, позволяющий отображать только заказы с определенными статусами)

 

Когда кто-либо щелкает мышью кнопку Process(обработка), должны выполняться не­сколько действий. Далее приводится последовательный разбор программного кода, пооче­редно, один фрагмент за другим.

Сначала ваш код должен обновить запись. Этот шаг помогает определить, не начал ли кто-то еще выполнять данный заказ на другом компьютере:

Private Sub ProcessOrder_Click()

Form.Refresh


Далее необходимо проверить статус записи. Если у нее статус не New, значит, она не го­дится для обработки:

' StatusID для статуса New равен 2

If StatusID о 2 Then

MsgBox "This order is not available."

В противном случае нужно изменить статус на In Progress (выполняющийся в данный момент) и сразу сохранить запись, чтобы никто другой не пытался выполнить этот заказ:

Else

' StatusID для статуса In Progress равен 3

StatusID = 3

' Сохранение изменения

DoCmd.RunCommand acCmdSaveRecord

 

 


Поделиться:

Дата добавления: 2014-11-13; просмотров: 162; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты