Разработка интерфейса пользователя Методические указания Номер варианта контрольной работы совпадает с последней цифрой номера зачетной книжки. При выполнении контрольных заданий необходимо использовать учебную базу данных Борей, поставляемую совместно с системой управления базой данных Microsoft Access, и методические указания [1]. В качестве задания для контрольной работы можно выбирать предметные области, связанные с вашей профессиональной деятельностью. Объем работы должен соответствовать объему работ индивидуального задания. Допускается реализация базы данных в инструментальных средствах отличных от Microsoft Access. База данных может быть реализована не обязательно как реляционная. Варианты заданий. ВАРИАНТ 1 Функции информационной системы, обеспечивающие ввод информации и выдачу справок о составе грузов: 1. "Номенклатура грузов". Данная функция должна обеспечивать ввод и хранение следующих данных о грузах: код; груза; полное наименование груза; единица измерения, количество груза, маршрут и другие необходимые параметры. 2. "Состав грузов на рейс". Функция должна обеспечивать ввод кода составного груза на борт ВС; кодов и количества грузов, входящих непосредственно в его состав. 3. "Полный состав груза". Функция должна выводить таблицу, в которой перечисляются все грузы, входящие в составной груз, указываются грузоотправители, количество мест по каждому грузу и номер самого нижнего уровня комплектации груза – компонента груза. ВАРИАНТ 2 Функции информационной системы, обеспечивающие отслеживание графика выполнения заказов на грузоперевозки в аэропорту (каждый заказ представляет собой отдельную позицию графика): 1. "Регистрация поступления заказов на перевозку". Данная функция должна обеспечивать учет количества заказов по каждому грузоотправителю. Каждая регистрация должна сопровождаться записью в архив зарегистрированного количества груза по заказу, времени регистрации, места хранения на складе и табельного номера лица, выполнявшего регистрацию . 2. "Сведения о поступлении заказов". В форме таблицы выводятся следующие данные: код заказа; код груза; количество мест; вес груза; маршрут перевозки, плановый срок выполнения заказа; реальный срок выполнения заказа. 3. "Просмотр архива выполнения заказов". В форме таблицы выводится архив регистраций и сроки выполнение авиаперевозки по каждому отдельному заказу. ВАРИАНТ 3 Функции информационной системы обеспечивают учет и отслеживание состояния грузов на складе. 1. "Регистрация приема груза на склад". Данная функция должна обеспечивать учет поступлений от грузоотправителей каждого груза. Каждая регистрация должна сопровождаться записью в архив реквизитов грузоотправителя, принятого количества груза, времени регистрации, места хранения, номера накладной и табельного номера лица, выполнявшего регистрацию. 2. "Регистрация выдачи груза со склада". Данная функция должна обеспечивать учет выдачи каждого места груза. Каждая регистрация должна сопровождаться записью в архив реквизитов выданного груза, времени выдачи груза, кому и кем был выдан груз. 3. "Состояние склада". В форме таблицы выводятся следующие данные: коды грузов, хранящихся на складе; кому они принадлежат, хранимое количество мест и веса; дата приема каждого груза, дата плановой отгрузки грузов. 4. "Просмотр архива приема/выдачи". В форме таблицы выводится архив регистраций и время выполнения заказа по каждому отдельному грузу. Отдельно отмечаются заказы, выполненные с задержкой по времени. ВАРИАНТ 4 Функции информационной системы обеспечивают формирование накладной на отгрузку груза со склада. Накладная содержит спецификации грузов, которые передаются на склад, и с которого ведется отгрузка грузов. "Формирование накладной". Данная функция должна обеспечивать формирование спецификаций, включаемых в грузовую накладную, срок выполнения и задание количество мест груза, отгружаемого по наряду. Накладная может включать несколько спецификаций. 2. "Регистрация отгрузки по накладной". Данная функция обеспечивает регистрацию отгруженного груза по спецификациям накладной, даты отгрузки, номера накладной, номера транспорта и табельного номера лица, выполнявшего регистрацию. 3. "Выполнение графика отгрузки". В форме таблицы выводятся сведения о выполнении отгрузки по конкретной накладной: номер накладной; код груза; плановое количество; отгруженное количество; плановый срок отгрузки; дата отгрузки; отметка о задержке отправки груза. ВАРИАНТ 5 Функции информационной системы обеспечивают учет и отслеживание состояния оплаты счетов на перевозку грузов. 1. "Выписка счета". Данная функция должна обеспечивать ввод следующих данных: номер счета; номер договора; номер наряда на отгрузку груза; тарифы; льготы; сумму, предъявляемую к оплате; срок оплаты другие необходимые параметры. 2. "Учет платежей по счетам". Данная функция должна обеспечивать установку признака "оплачен" для конкретного счета и ввод даты оплаты. 3. "Сведения об оплате счетов по заказам". Функция должна выводить таблицу по каждому грузоотправителю, со следующими данными: номер договора, плановая стоимость договора, дата выписки последнего счета, суммарная стоимость выписанных счетов, дата последней оплаты, суммарная стоимость оплаченных счетов ВАРИАНТ 6 Функции информационной системы обеспечивают учет грузоотправителей, работающих с авиакомпанией. "Грузоотправитель". Данная функция должна обеспечивать ввод следующих данных: шифр грузоотправителя; наименование грузоотправителя; адрес грузоотправителя; финансовые реквизиты и другие необходимые параметры. "Груз". Данная функция должна обеспечивать ввод следующих данных: наименование грузов; количество мест; вес груза; условия хранения, погрузки, разгрузки и другие необходимые параметры. "Сведения о грузоотправителях и грузах". Функция должна выводить таблицу по любому грузоотправителю, со следующими данными: шифр грузоотправителя; наименование грузоотправителя; адрес грузоотправителя; наименование грузов; количество мест; вес груза. ВАРИАНТ 7 Функции информационной системы обеспечивают учет отправки грузов из аэропорта. Груз из аэропорта может перевозить несколько различных авиакомпаний. Рейсы выполняются строго по расписанию. "Аэропорт". Данная функция должна обеспечивать ввод следующих данных: шифр аэропорта, наименование аэропорта и другие необходимые параметры. "Авиакомпания". Данная функция должна обеспечивать ввод следующих данных: шифр авиакомпании; наименование авиакомпании; маршруты полетов и другие необходимые параметры. "Грузоотправитель". Данная функция должна обеспечивать ввод следующих данных: шифр грузоотправителя; наименование грузоотправителя; адрес грузоотправителя; финансовые реквизиты и другие необходимые параметры. "Груз". Данная функция должна обеспечивать ввод следующих данных: наименование грузов; количество мест; вес груза; условия погрузки и разгрузки; маршрут перевозки и другие необходимые параметры. "Сведения об отправляемых грузах". Функция должна выводить таблицу по любой авиакомпании со следующими данными: шифр грузоотправителя; наименование грузоотправителя; адрес грузоотправителя; наименование грузов; место назначения груза; количество мест; вес груза. ВАРИАНТ 8 Функции информационной системы обеспечивают учет и отслеживание состояния грузов на складе. "Регистрация приема груза на склад". Данная функция должна обеспечивать формирование спецификаций груза: код груза; наименование груза; номер накладной; количество мест груза; место хранения; дата регистрации приема; табельный номер лица, выполнившего регистрацию. "Регистрация отгрузки со склада". Данная функция обеспечивает регистрацию отгруженного груза по спецификациям накладной: наименование грузов; количество мест; дата отгрузки, номер накладной, номер транспорта и табельного номера лица, выполнявшего отгрузку. "Учет груза на складе". В форме таблицы выводятся на текущую дату сведения о грузах, размещенных на складе: код груза; количество мест по каждому грузу; дата поступления на склад и другие необходимые параметры. ВАРИАНТ 9 Функции информационной системы обеспечивают формирование нарядов на подготовку грузов к отправке. Наряд представляет собой спецификации грузов. Наряды передаются на склады, которые участвуют в комплектации груза на определенный рейс. 1. "Формирование наряда". Данная функция должна обеспечивать формирование спецификаций, включаемых в наряд, срок выполнения и задание количества каждого типа груза, отгружаемого по наряду. Наряд может включать несколько спецификаций. 2. "Регистрация отгрузки по наряду". Данная функция обеспечивает регистрацию отгруженного количества по спецификациям наряда, даты отгрузки, номера накладной, номера транспорта и табельного номера лица, выполнявшего регистрацию. 3. "Выполнение графика отгрузки". В форме таблицы выводятся сведения о выполнении отгрузки по конкретному наряду: номер наряда; плановый срок выполнения наряда; код предмета; плановое количество; отгруженное количество; дата последней отгрузки. ВАРИАНТ 10 Функции информационной системы обеспечивают комплектацию грузов на рейс. Комплектация выполняется с учетом типа самолета и характеристик грузов, заявленных к перевозке. 1. "Комплектация груза". Данная функция обеспечивает комплектацию составного груза в соответствии с возможностями загрузки самолета и характеристик грузов готовых к перевозке. Комплектация груза может изменяться, пока не началась загрузка самолета. 2. "Загрузка самолета (рейса)". Данная учетная функция позволяет запустить в производство заказ при выполнении двух условий: существует рейс с необходимым для доставки груза маршрутом; закончена комплектация составного груза. 3. "Справка о комплектации груза". По отдельному составному грузу выводится следующая информация: маршрут перевозки, коды и наименования комплектующих грузов; количество грузов определенного типа на складе, подготовленного к перевозке; количество грузов, использованное в комплектации составного груза. ВАРИАНТ 11 Функции информационной системы обеспечивают учет и отслеживание состояния оплаты счетов на перевозку грузов. 1. "Выписка счета". Данная функция должна обеспечивать ввод следующих данных: номер счета; номер договора; номер наряда на перевозку груза; сумму, предъявляемую к оплате; срок оплаты и другие данные. 2. "Учет платежей по счетам". Данная функция должна обеспечивать установку признака "оплачен" для конкретного счета и ввод даты оплаты. 3. "Сведения об оплате счетов ". Функция должна выводить таблицу, со следующими данными: номер договора, плановая стоимость договора, дата выписки последнего счета, суммарная стоимость выписанных счетов, дата последней оплаты, суммарная стоимость оплаченных счетов. Должна также выводиться итоговая информация по всем договорам с одним и тем же потребителем. ВАРИАНТ 12 Функции информационной системы обеспечивают отслеживание поступлений грузов на склад: 1. "Регистрация поступающих грузов". Данная функция должна обеспечивать учет поступлений грузов по каждому маршруту. Каждая регистрация должна сопровождаться записью в архив зарегистрированного количества груза, времени регистрации, места хранения на складе и табельного номера лица, выполнявшего регистрацию. 2. "Сведения о выполнении перевозки". В форме таблицы выводятся следующие данные: шифр заказа на перевозку; шифр груза; планируемое количество груза к перевозке; планируемый срок выполнения перевозки груза; реальное количество перевезенного груза; реальные сроки перевозок. 3. "Просмотр архива перевозок". В форме таблицы выводится архив регистраций по перевозкам. Пример выполнения задания ЗАДАНИЕ НА ПРОЕКТИРОВАНИЕ Разработать базу данных и прикладные функции информационной системы, обеспечивающие прием, регистрацию и временное хранение грузов в аэропорту. При выполнении задания необходимо: ¾ разработать локальные представления отдельных фрагментов предметной области и инфологическую схему, используя модель "сущность-связь"; ¾ преобразовать полученную схему предметной области в реляционную модель данных, соответствующую третьей нормальной форме; ¾ определить ограничения логической целостности данных; ¾ разработать интерфейс пользователя, позволяющий обеспечивать выполнение заданных прикладных функций информационной системы (структура меню, экранные и отчетные формы и так далее). Замечание. При проектировании интерфейса необходимо разработать только объекты, реализующие интерфейс пользователя, и технологию работы с объектами. Программная реализация функций здесь не выполняется. 1.1. Анализ предметной области. Грузоотправитель оформляет заказ на перевозку грузов. Грузоотправителями могут быть как физические лица, так и организации. Прием груза и перемещение груза в аэропорту регистрируется. В общем случае регистрация может осуществляться в нескольких инстанциях Аэропорта, то есть ряд подразделений Аэропорта может осуществлять визирование документа перед регистрацией. Для упрощения задачи вариант визирования документа не рассматривается. Каждый грузоотправитель может формировать несколько заказов на перевозку груза и каждый заказ может содержать несколько различных (по количеству или по типам) грузов. Различные по типу грузы, требуют различных условий хранения и, поэтому, должны храниться на различных местах хранения, а возможно и на различных складах. Номер склада и место хранения груза всегда известно и доступно для пользователя. Грузы, входящие в один заказ, доставляются грузополучателю по одному адресу. Идентификация сущностей предметной области. Идентификация сущностей выполняется на основе анализа семантики предметной области и классифицируется теорией систем как неформальная задача, решение которой осуществляется на основе экспертных оценок. Поэтому, решение задачи неоднозначно и может быть представлено несколькими различными способами, каждый из которых отражает субъективные взгляды разработчиков. Для выполнения заданных функций база данных информационной системы должна содержать информацию о следующих сущностях: грузоотправители; заказы; службы, регистрирующие грузы и ответственные за их хранение; грузы, предназначенные для грузоперевозки; места и условия временного хранения грузов. Типы объектов, соответствующие сущностям предметной области, и их свойства, могут быть представлены в виде: ГРУЗООТПРАВИТЕЛЬ (Идентификационный код (Индивидуальный идентификационный номер (ИНН) грузоотправителя, Номер регистрационного документа и так далее); Наименование (Наименование организации или Фамилия, Имя, Отчество для физического лица); Адрес грузоотправителя; Телефон грузоотправителя; E-mail грузоотправителя; Обращаться к ). Идентифицирующий атрибут сущности — Идентификационный код. Перечисленные характеристики (атрибуты) сущности “ГРУЗООТПРАВИТЕЛЬ” условны и имеют учебный характер. В частности, не рассматриваются финансовые реквизиты грузоотправителя, объявленная ценность для перевозки и для таможни, формы оплаты, реквизиты грузополучателя и некоторые другие данные. Перечисленные и другие данные не учитываются в связи с тем, что нас интересует только очень ограниченная задача — регистрация груза при его поступлении. ЗАКАЗ (Код заказа, Аэропорт назначения, Запрашиваемый рейс, Запрашиваемый маршрут, Дата отправки). Идентифицирующий атрибут сущности — Код заказа. ГРУЗ (Шифр груза, Наименование груза, Количество мест, Вес, Плановое время отправки, Реальное время отправки и возможно другие). Идентифицирующий атрибут сущности — Шифр груза. Правила формирования шифра устанавливаются службами аэропорта. СКЛАД (Номер склада, Место хранения, Условия хранения, Дата поступления груза, Дата отгрузки и другие); Идентифицирующий атрибут сущности — Номер склада. РЕГИСТРАЦИЯ (Код заказа, Идентификационный код Грузоотправителя, Номер регистрации, Табельный номер лица, выполнившего регистрацию, Фамилия, Имя, Отчество лица, выполнившего регистрацию, Дата регистрации, Наименование подразделения, выполнившего регистрацию). Идентифицирующий атрибут сущности — Код заказа, Идентификационный код Грузоотправителя, Дата регистрации. Выбор вида идентифицирующего атрибута сущности объясняется необходимостью исключить возможное ошибочное дублирование регистрации одного и того же груза. Процессы в предметной области. По предварительному согласованию со службами аэропорта, грузоотправитель составляет заявку Грузоотправителя (Приложение 1.1 к приказу ФАС России от 29.12.98 г № 372) и передает ее совместно с грузом для регистрации и временного хранения на склад. Дальнейшая обработка груза в контексте задачи нас не интересует. Ранее отмечалось, что решение задачи идентификации предметной области и выбор множества сущностей является неформальной задачей и ее решение неоднозначно и может быть представлено несколькими различными способами, каждый из которых отражает субъективные взгляды разработчиков. Приведем здесь еще один возможный вариант сущностей. Поставленная задача может быть решена с использованием сущностей: ГРУЗООТПРАВИТЕЛЬ; ЗАДАНИЕ НА ПЕРЕВОЗКУ; ЗАКАЗ; КОДИФИКАТОР ГРУЗОВ; СКЛАД; СОТРУДНИК. Атрибуты сущностей здесь не рассматриваются. Эта информация может быть получена из схемы данных с перечисленными сущностями (стр. 21). 2. Инфологическая модель “сущность — связь” Инфологическая модель “сущность — связь” является формальной семантической моделью предметной области. Поэтому она допускает неоднозначность и множественность представления и реализации.  Инфологическая модель “сущность — связь”. Инфологическая модель для второго варианта типов сущностей здесь не рассматривается. Вид этой модели достаточно очевиден, если рассмотреть схему данных для второго варианта, которая приводится ниже. Реляционная модель данных Основой реляционной модели является отношение, понимаемое в точном математическом смысле и представляемое в реляционных моделях в форме таблиц. Отношения в реляционной модели должны удовлетворять третьей нормальной форме. Выполнение требований нормализации позволяет получить реляционную базу данных, которой соответствует строгая формальная (математическая) модель. ГРУЗООТПРАВИТЕЛЬ Идентификационный код | Наименование | Адрес | Телефон | E – mail | Обращаться к |  ЗАКАЗ Код заказа | Идентификационный код | Аэропорт назначения | Запрашиваемый рейс | Запрашиваемый маршрут | Дата отправки |  ГРУЗ Шифр груза | Код заказа | Наименование груза | Количество мест | Объявленная ценность | Вес груза | Условия транспортировки | Плановое время отправки | Реальное время отправки |  СКЛАД Номер склада | Шифр груза | Номер регистрации | Место хранения | Условия хранения | РЕГИСТРАЦИЯ Номер регистрации | Шифр груза | Уникальный код | Дата регистрации | Фамилия | Имя | Отчество | Табельный номер | Отношения реляционной модели — ГРУЗООТПРАВИТЕЛЬ, ЗАКАЗ, ГРУЗ и СКЛАД удовлетворяют третьей нормальной форме. Отношение РЕГИСТРАЦИЯ не удовлетворяет третьей нормальной форме, так как имеет транзитивные зависимости, порождающие избыточное дублирование информации в отношении. Функциональные зависимости в отношении РЕГИСТРАЦИЯ имеют вид:  Рассматриваемое отношение РЕГИСТРАЦИЯ содержит транзитивные зависимости и, следовательно, третьей нормальной форме не удовлетворяет. Это отношение должно быть преобразовано к отношениям РЕГИСТРАЦИЯ (Шифр заказа, ИД Грузоотправителя, Дата регистрации Номер регистрации) и СОТРУДНИКИ (Табельный номер Фамилия, Имя, Отчество).  Отношение Регистрация Отношение СОТРУДНИКИ С учетом преобразования отношения РЕГИСТРАЦИЯ реляционная модель данных имеет вид: ГРУЗООТПРАВИТЕЛЬ Идентификационный код | Наименование | Адрес | Телефон | E – mail | Обращаться к | ЗАКАЗ Код заказа | Идентификационныйкод | Аэропорт назначения | Запрашиваемый рейс | Запрашиваемый маршрут | Дата отправки | ГРУЗ Шифр груза | Код заказа | Наименование груза | Количество мест | Объявленная ценность | Вес груза | Условия транспортировки | Плановое время отправки | Реальное время отправки | СКЛАД Номер склада | Шифр груза | Номер регистрации | Место хранения | Условия хранения | РЕГИСТРАЦИЯ Шифр груза | Уникальный код | Дата регистрации | Табельный номер | Номер регистрации | СОТРУДНИКИ Табельный номер | Фамилия | Имя | Отчество | Наименование подразделения | Отношения реляционной модели — ГРУЗООТПРАВИТЕЛЬ, ЗАКАЗ, ГРУЗ, СКЛАД, РЕГИСТРАЦИЯ и СОТРУДНИКИ удовлетворяют третьей нормальной форме. Рассматриваемый вариант реляционной модели построен теоретически правильно и будет выполнять все предъявляемые к нему требования. Однако, увеличение числа отношений, а следовательно и таблиц реляционной базы данных, приводит к замедлению и усложнению поиска данных при работе с базой данных. При этом необходимо отметить, что требования нормализации в конкретных условиях могут быть излишне “жесткими”. Учитывая, что выбор типов данных, их атрибутов и связей между ними содержит произвол, может быть предложена и другая реляционная модель данных. Вид реляционной модели, которая организована “ более практично” может быть уяснена из схемы данных для второго варианта сущностей (стр. 21). Целостность данных Целостность данных понимается как полнота, непротиворечивость и семантическая правильность данных, поддерживаемая на различных этапах сопровождения баз данных, то есть на этапах проектирования, эксплуатации и модификации базы данных. Поддержка целостности данных обеспечивается системой правил, обеспечивающих: целостность данных, определяемую пользователем (семантическая целостность) — обеспечивается типами данных свойствами полей при проектировании таблиц реляционной базы данных; целостность данных по сущностям — обеспечивается свойствами доменов (столбцов) таблицы и свойствами отношения (таблицы); целостность данных по связям— обеспечивается правильностью задания размерности связей при формировании схемы данных и заданием каскадных операций обновления и удаления полей. Каскадные операции задают правила работы с данными в главных и подчиненных таблицах. При проектировании таблиц необходимо учитывать целостность данных. Проектирование таблиц Таблица Грузоотправитель  Тип данных для всех полей таблицы — текстовый. Для поля Телефон используется маска ввода— !(999) 999-9999. Такая маска, позволяет хранить в базе данных телефоны различных форматов. Например, (095) 123-4567; 123-4567; 1234. Обратите внимание на восклицательный знак перед маской. Таблица Заказ  Для поля Запрашиваемый рейс используется маска ввода — AAAAA (Буква или цифра, ввод обязателен), так как написание рейса обозначается пяти буквенно - цифровым изображением. Для поля Идентификационный код используется подстановка поля Уникальный код из таблицы Грузоотправитель. Подстановка имеет вид  Подстановка выполнялась с использованием Построителя запросов. Вид запроса приведен ниже  В свойстве Индексированное поле для поля Идентификационный код записывается — Да (совпадения допускаются). Таблица Груз  Тип данных полей Общий вес и Количество мест — числовые. Поля “Условие на значение” имеют ограничение — >0 (больше нуля). Поля “Шифр груза”, “Количество мест”, “Общий вес” являются обязательными. Для поля Код заказа используется подстановка из таблицы Заказ. В свойстве Индексированное поле записывается — Да (совпадения допускаются). Таблица Склад  В таблице Склад представляют интерес поля “План_дата отгрузки”, “Реал_дата отгрузки”. Для этих полей устанавливаются следующие свойства: Формат поля — Длинный формат даты Маска ввода — 99.99.99;; Значение по умолчанию — Date(), Условие на значение — >=Date() Таблица Регистрация  В таблице Регистрация в качестве первичного ключа можно было бы выбрать поле “Номер регистрации”. Тип данных поля — Счетчик. Более рационально в рассматриваемом случае в качестве первичного ключа выбрать составной ключ, включающий поля “Шифр груза”, “Уникальный код” и “Дата регистрации”. В этом случае исключаются ошибочные многократные регистрации одного и того же груза. Для полей Шифр груза, Идентификационный код используется подстановка из соответствующих таблиц. Индексированное поле в обоих случаях имеет значение — Да (совпадения допускаются). Для поля Табельный номер используется маска ввода — >00LL000;;, регламентирующая принятый в нашем (и только в нашем) аэропорту формат данного. Схема данных Схема данных базы имеет вид  Целостность данных по связям задается согласованным определением первичного и внешнего ключей, а также операциями каскадного обновления и удаления связанных полей главной и подчиненной таблиц. Схема данных для второго варианта сущностей ГРУЗООТПРАВИТЕЛЬ; ЗАДАНИЕ НА ПЕРЕВОЗКУ; ЗАКАЗ; КОДИФИКАТОР ГРУЗОВ; СКЛАД; СОТРУДНИК и соответствующих им типов и типов объектов имеет вид:  Разработка интерфейса пользователя Информационная система должна обеспечивать: Занесение, просмотр и правку данных в таблицах”. Данная функция может выполняться либо непосредственно в таблицах, либо с использованием форм. Работа с данными непосредственно в таблицах. Непосредственно в таблицах можно добавлять записи, изменять записи и удалять записи. Перечисленные операции поддерживаются системой команд на панели инструментов Таблица. Выполнение этих операций удобнее выполнять при открытых главной и подчиненных таблицах. Изображение окна с открытой главной таблицей Заказ и таблицами Груз и Склад имеет вид  Все операции (занесение, изменение и удаление записей) можно выполнять в любой из таблиц. При выполнении этих операций необходимо учитывать требования целостности данных по связям: операции выполняются первоначально в главных таблицах и только после этого — в подчиненных. При большом количестве записей такая форма работы с записями оказывается сложной и неудобной. Поэтому для заполнения таблиц используются формы — настраиваемые диалоговые окна, сохраняемые в базе данных Access в виде объектов специального типа. Проектирование форм осуществляется: - на основе таблицы или запроса (автоформы); - с использованием Конструктора форм; - с использованием Мастера форм. Работа с данными с использованием форм. Работа с данными осуществляется с помощью форм, соответствующих таблиц. Запись данных в таблицу осуществляется при переходе к следующей записи. Примеры форм (Грузоотправитель и Грузоотправитель 1) для таблицы Грузоотправитель приведены ниже. Форма Грузоотправитель  Форма Грузоотправитель 1  Форма Грузоотправитель сконструирована в режиме Конструктор, форма Грузоотправитель 1 — с помощью Мастера. Обе формы имеют идентичные по функциональным возможностям кнопки управления — Удалить запись и Закончить работу. Нажатию кнопок соответствует выполнение соответствующих макросов — Удалить запись* и Закончить работу*. По команде Удалить запись из таблицы удаляется запись, установленная в поле формы. По команде Закончить работу — форма закрывается. Занесение записи осуществляется при переходе к следующей записи. Вторая функция информационной системы — “Регистрацию поступления заказов на перевозку”. Данная функция должна выявлять поступившие, но не зарегистрированные заказы, и осуществлять их регистрацию. Каждая регистрация сопровождается записью в таблицу Регистрация вновь зарегистрированного Заказа, то есть записью количества груза по заказу, времени регистрации, места хранения на складе и табельного номера лица, выполнявшего регистрацию. Форма, реализующая эти функции (возможны и другие решения), может иметь вид  Поле Номер заказа реализовано на основе элемента управления Поле со списком. Содержание списка определяется Запросом Регистрация, который использует левое соединение таблиц Заказ и Регистрация. Использование этого запроса, а точнее — использование левого соединения таблиц Заказы и Регистрация, позволяет выявить поступившие, но не зарегистрированные Заказы. Замечание. Необходимо очень внимательно рассмотреть параметры объединения таблиц. Особенности объединения таблиц хорошо иллюстрируются запросами Технология работы с формой. Открывается список Номер заказа, содержащий незарегистрированные заказы. Выбирается из списка один из заказов. При этом в полях, соответствующих одноименным полям в таблицах Заказы и Грузоотправитель, появляются значениям данных. Эти данные используются для контроля их правильности. Если данные признаются правильными, то открывается список лиц, имеющих право регистрировать Заказы. Из списка лиц, имеющих право регистрировать Заказы, переносится (записывается) в таблицу Регистрация Табельный номер и нажимается кнопка Регистрация выполнена. В результате этих операций производится регистрация не зарегистрированных ранее Заказов.  Замечание. Изменении записи в Поле со списком рассматривается как Событие и этому событию противопоставляется макрос или процедура VBA (Visual Basic for Application). Программирование макроса или процедуры при выполнении работы не выполняется. Следующая функция — “Выдача сведений о грузах”. В форме таблицы выводятся данные о грузах: код заказа; код груза; количество мест; вес груза; маршрут перевозки, плановый срок выполнения заказа; реальный срок выполнения заказа. Форма, реализующая эту функцию, представлена ниже. Поле Номер заказа позволяет выбрать определенный номер Заказа или записать номер Заказа с клавиатуры. И в том, и в другом случае в соответствующих полях формы отображаются данные, соответствующие номеру Заказа и реквизиты Грузоотправителя. В присоединенной таблице Груз приводятся все необходимые сведения о грузе.  Функция “Сведения о выполнении заказа”. Функция реализуется в виде запроса с параметрами. При запуске запроса на исполнение открывается диалоговое окно, в которое пользователь заносит Номер заказа, ситуация с которым его интересует. Использование запросов с параметрами более технологично в условиях работы с базами данных. При выполнении запроса выдаются все необходимые данные о состоянии определенного заказа — Номер заказа, Наименование Грузоотправителя, Аэропорт назначения, Наименование, Дата поступления и Дата отправления груза. Запрос с параметром реализуется в Конструкторе запросов и имеет вид  Диалоговое окно в запросе имеет вид  Результат выполнения запроса  Рассматриваемая функция “Сведения о выполнении заказа” может быть реализована более полно, если использовать перекрестный запрос. И этом случае можно получить, в качестве результата, данные содержащие предварительно математически обработанные результаты. Например, простейшие обработки статистик и другие аналогичные данные. Более полная математическая обработка может быть получена при реализации следующей функции “Просмотр архива выполнения заказов”. Перекрестный запрос, реализующий функцию “Сведения о выполнении заказа”, в режиме Конструктора имеет вид  Результат выполнения запроса  Из приведенной таблицы видно: Какие грузы и в каком объеме перевозились за период с 01 октября 2003 года по 01 ноября 2003 года  Результат выполнения запроса  Из приведенной таблицы видно: Какие грузы и в каком объеме перевозились за период с 01 октября 2003 года по 01 ноября 2003 года Функция “Просмотр архива выполнения заказов”. Рассматриваемая функция реализуется в виде сводной таблицы, которая позволяет вести математическую и, в частности, статистическую обработку данных. В рассматриваемом задании, например, нас могут интересовать типы и объемы грузов, перевозимых за определенное время. Режим сводной таблицы может быть применим и к таблицам, и к запросам, и к формам. Наиболее эффективно применение режима сводной таблицы к данным, полученным в форме запроса, так как именно запрос позволяет объединить данные нескольких таблиц. Рассмотрим возможности Сводной таблицы, построенной на основе запроса, применительно к рассматриваемой задаче Запрос для построения Сводной таблицы имеет вид  Результат выполнения запроса представлен ниже  Сводная таблица для оценки Стоимости доставки грузов по Заказам  Та же таблица для выборки по одному дню — 09.10.03, имеет вид  Оценки Стоимости доставки грузов по Заказам в виде диаграммы  Литература 1. Базы данных. Системы управления базами данных: Методические указания по изучению раздела РАБОТА В СУБД MS ACCESS и выполнению лабораторных работ для студентов всех факультетов/Академия ГА. С—Петербург, 2002. 2. Бекаревич Ю. Б., Пушкина Н.В. Microsoft Access 2000 – СПб.: БХВ — Санкт- Петербург, 2001. 3. Базы данных: модели, разработка, реализация / Т. С. Карпова. — СПб.: Питер, 2002. 4. Дейт, К. Дж. Введение в системы баз данных: Пер. с англ. — 6-е изд. — К.: Диалектика, 1998. 5. Михеева В. Д., Харитонова И. А. Microsoft Access 2002. — СПб.: БХВ-Петербург, 2003. |