2_Access2007_Формы
.pdfТаблицы БД — |
Документы- |
Вид |
Этап |
Примечание |
объекты загрузки |
источники |
информации |
загрузки |
|
|
|
|
|
|
ПОКУПАТЕЛЬ |
Справочник |
Справочная |
I |
Независимые |
|
покупателей |
|
|
этапы |
|
|
|
|
|
ТОВАР |
Справочник |
Справочная |
I |
|
|
товаров |
|
|
|
|
|
|
|
|
СКЛАД |
Справочник |
Справочная |
I или II |
|
|
складов |
|
|
|
|
|
|
|
|
ДОГОВОР- |
Договоры |
Плановая |
II |
|
ПОСТАВКА_ПЛАН |
|
|
|
|
|
|
|
|
|
НАКЛАДНАЯ- |
Накладные |
Оперативно- |
III |
|
ОТГРУЗКА |
|
учетная |
|
|
|
|
|
|
|
После определения этапов загрузки базы данных можно приступить к определению подсхемы данных для каждого этапа загрузки, к проектированию макета форм и их созданию средствами Access.
Проектирование интерфейса для ввода и корректировки документа
Для ввода и корректировки данных плановых и оперативно-учетных документов пользователю нужно разработать удобный экранный интерфейс, который позволит минимизировать операции по вводу данных и контролировать их достоверность и корректность. При этом необходимо ограничиваться вводом только идентификаторов и количественных показателей. Справочные данные (наименования, нормативы, цены, тарифные ставки и т. п.) не должны вводиться с этих документов, а должны только отображаться в форме из ранее созданных таблиц справочной информации. Отображение справочных данных позволяет осуществлять визуальный контроль правильности вводимых с плановых или оперативно-учетных документов данных, в которых обычно присутствуют справочные данные.
Разработка интерфейса требует для каждого документа выполнить проектирование формы.
Рассмотрим процесс проектирования формы для ввода, просмотра и корректировки данных о договорах фирмы. Форма служит электронным
документом, вид которого должен соответствовать виду бумажного документа.
В соответствии с этапами загрузки базы данных Поставка товаров, определенными выше (см. табл. 1), загрузка данных из документа "Договор" должна производиться в таблицы ДОГОВОР и ПОСТАВКА_ПЛАН после загрузки таблиц со справочными данными ПОКУПАТЕЛЬ и ТОВАР, что обеспечит установление связей загружаемых записей с соответствующими записями этих таблиц.
При проектировании формы определяется подсхема данных, включающая объект загрузки формы, общая структура формы — проект макета и размещение реквизитов в соответствии со структурой документа "Договор" и подсхемой данных, учитываются особенности назначения и работы с формой.
Определение подсхемы данных
Выбор подсхемы данных для построения формы аналога документа "Договор", назовем ее ДОГОВОРЫ С ПОКУПАТЕЛЯМИ, определяется следующими соображениями.
Загрузка данных по договорам должна производиться в таблицы ДОГОВОР и ПОСТАВКА_ПЛАН, находящиеся в отношении 1 : М, следовательно, эти таблицы — объекты загрузки надо включить в подсхему данных формы.
В форме должны отображаться справочные данные по покупателям и товарам, указанным в договоре, поэтому в подсхему надо включить также таблицы ПОКУПАТЕЛЬ и ТОВАР, главные по отношению к таблицам ДОГОВОР и ПОСТАВКА_ПЛАН.
Многотабличная форма ДОГОВОРЫ С ПОКУПАТЕЛЯМИ обеспечивает загрузку двух взаимосвязанных таблиц, поэтому в ней должны быть определены две таблицы, одна из которых будет источником записей главной формы, а другая — источником записей подчиненной формы. Источником записей главной формы должна быть таблица ДОГОВОР, представляющая сторону один в отношении загружаемых таблиц. Для отображения справочных данных в этой форме должна использоваться таблица ПОКУПАТЕЛЬ. Источником записей подчиненной формы должна быть таблица ПОСТАВКА_ПЛАН, представляющая сторону многие в отношении загружаемых таблиц. Для отображения справочных данных в этой части формы должна использоваться таблица ТОВАР.
Таким образом, подсхема данных для формы ввода/вывода договоров фирмы должна иметь вид, показанный на рис. 27.
Рис. 27. Подсхема данных для формы ввода/вывода договоров фирмы
Замечание
В процессе проектирования базы данных все реквизиты документа разбиваются на подмножества, составляющие таблицы базы данных. Например, реквизиты документа "Договор" были распределены по таблицам ДОГОВОР, ПОСТАВКА_ПЛАН, ПОКУПАТЕЛЬ и ТОВАР. Очевидно, для того чтобы форма ДОГОВОР отображала полный документ, ее подсхема данных должна включать все эти таблицы.
Разработка макета
Макет формы разрабатывается в соответствии со структурой документа и полученной подсхемой данных. Макет формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ приведен на рис. 28.
Рис. 28. Проект макета формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ
В соответствии с определенными объектами загрузки с документа "Договор" многотабличная форма ДОГОВОРЫ С ПОКУПАТЕЛЯМИ должна состоять из двух форм: главной и включенной в нее подчиненной формы.
Источником записей главной формы будет ДОГОВОР, а таблица ПОКУПАТЕЛЬ будет использована для отображения справочной информации. Через эту часть многотабличной формы выполняется ввод, просмотр и корректировка общих сведений о договоре. Число доступных записей определяется количеством записей в таблице ДОГОВОР.
Источником записей подчиненной формы будет таблица ПОСТАВКА_ПЛАН, а таблица ТОВАР будет использована для отображения справочной информации. Через эту часть многотабличной формы выполняется ввод, просмотр и корректировка данных о
плановых поставках по договорам. Число доступных записей определяется количеством записей в таблице ПОСТАВКА_ПЛАН.
В макете как для главной, так и для подчиненной формы определяется состав и размещение элементов документа, а также их связь с полями таблиц подсхемы данных:
в главной форме обязательно должны размещаться: ключевое поле НОМ_ДОГ и поле код покупателя КОД_ПОК, по которому устанавливается связь с таблицей ПОКУПАТЕЛЬ. Эти поля должны быть взяты из таблицы ДОГОВОР — источника записей основной части формы. В противном случае нельзя будет ввести новую запись в таблицу ДОГОВОР;
в подчиненной форме должно обеспечиваться формирование ключа
таблицы ПОСТАВКА_ПЛАН — (НОМ_ДОГ, КОД_ТОВ, СРОК_ПОСТ). В противном случае станет невозможным ввод новых записей. Однако можно разместить только те ключевые поля таблицы, которых нет в главной форме, т. е. обязательно нужно разместить только поля КОД_ТОВ (код товара) и СРОК_ПОСТ (срок поставки) из таблицы ПОСТАВКА_ПЛАН, а поле НОМ_ДОГ (номер договора) можно не размещать.
Внимание
Если поле КОД_ТОВ выбрать из таблицы ТОВАР, то невозможно будет сформировать новую запись в таблице ПОСТАВКА_ПЛАН.
Многотабличная форма, соответствующая этому макету, обеспечит удобный интерфейс для ввода, просмотра и корректировки данных о договорах, позволит минимизировать операции по вводу данных и контролировать их достоверность и корректность. Вводить нужно только идентификаторы и количественные показатели. Справочные данные (наименования, цена и т. п.) не потребуется вводить из документа, они отобразятся в форме из ранее загруженных таблиц справочной информации. Отображение справочных данных позволяет осуществлять визуальный контроль правильности вводимых из документа данных.
После разработки макета можно приступать к конструированию многотабличной формы средствами Access.
Создание интерфейса для ввода и корректировки документа
С помощью мастера форм создайте в соответствии с результатами проектирования, форму ДОГОВОРЫ С ПОКУПАТЕЛЯМИ, состоящую из главной формы ДОГОВОР, которая включает подчиненную форму ПЛАН ПОСТАВОК. Многотабличная форма после редактирования в конструкторе должна обеспечивать удобный ввод записей из документа "Договор" в таблицы ДОГОВОР и ПОСТАВКА_ПЛАН. Доступ к отображаемым в форме полям справочных данных о покупателе и товарах должен ограничиваться только чтением, т. к. значения этих полей не должны вводиться и корректироваться из документа "Договор".
Откройте базу данных Поставка товаров. В области переходов выберите таблицу ДОГОВОР, которая будет служить источником записей главной формы. Для вызова мастера форм выполните на вкладке ленты Создание (Create) в группе Формы (Forms) команду
Другие формы | Мастер форм (More Forms|Form Wizard) .
В открывшемся окне мастера Создание форм (Form Wizard) в списке Таблицы и запросы (Tables/Queries) будет отображена выбранная таблица ДОГОВОР и ее поля. Выберите из таблицы ДОГОВОР в списке Доступные поля (Available Fields) те поля, которые вошли в спроектированный макет формы, перемещая их в область Выбранные поля (Selected Fields).
Последовательно выбирайте из списка Таблицы и запросы (Tables/Queries) таблицы ПОКУПАТЕЛЬ, ПОСТАВКА_ПЛАН, ТОВАР и включайте в область Выбранные поля (Selected Fields) нужные поля этих таблиц (рис. 29). Нажмите кнопку Далее (Next).
Для формирования главной формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ включите:
загружаемые поля таблицы ДОГОВОР:
•НОМ_ДОГ — номер договора (уникальный ключ);
•ДАТА_ДОГ — дата заключения договора;
•КОД_ПОК — код покупателя (поле связи);
•СУММА_ДОГ — сумма всего по договору;
поля из таблицы ПОКУПАТЕЛЬ, позволяющие отобразить справочную информацию о покупателе, с которым заключен договор:
•НАИМ_ПОК — наименование покупателя;
•ИНН;
•АДРЕС и другие справочные реквизиты покупателя.
Для формирования подчиненной формы включите поля:
загружаемые поля таблицы ПОСТАВКА_ПЛАН:
•КОД_ТОВ — код товара (часть уникального ключа);
•СРОК_ПОСТ — срок поставки (часть уникального ключа);
•МИН_ПОСТ — минимальная партия поставки;
•КОЛ_ПОСТ — плановое количество поставки товара;
•СУММ_ПОСТ — сумма поставки товара;
поля из таблицы ТОВАР, позволяющие отобразить справочную информацию о товарах, поставляемых по договору:
•НАИМ_ТОВ — наименование товара;
•ЕИ — единица измерения;
•ЦЕНА — цена товара.
Рис. 29. Окно мастера форм при выборе полей из таблиц, составляющих подсхему формы
В следующем диалоговом окне мастера (рис. 30) уже выделена таблица ДОГОВОР, предлагаемая в качестве базового источника для создания главной формы, и схематично отображен макет формы с перечнем полей в главной и подчиненной форме. Кроме того, мастером отмечен переключатель Подчиненные формы (Form with subform(s)) — вариант непосредственного включения подчиненной формы в главную. Переключатель Связанные формы (Linked forms) определяет вызов подчиненной формы по кнопке.
Рис. 30. Окно мастера форм при выборе вида представления данных
Для получения многозаписевой подчиненной формы с отображением полей каждой записи в одной строке с подписями (определенными в свойствах таблиц) в заголовке столбца выберите в следующем окне мастера вид формы Ленточный (Tabular). Далее выберите стиль оформления, например, Стандартная (Standard).
В последнем окне мастера задайте имя главной формы — ДОГОВОРЫ С ПОКУПАТЕЛЯМИ, а также имя подчиненной формы — ПЛАН ПОСТАВОК. Выберите дальнейшие действия мастера — Открыть форму для просмотра и ввода данных (Open the form to view or enter information). Это позволит после завершения работы мастера сразу приступить к работе с договорами.
Для завершения создания формы мастером нажмите кнопку Готово (Finish). Сохранение формы производится автоматически.
В форме выводятся данные по договорам, которые были ранее загружены в базу (рис. 31). Основная часть формы содержит сведения из одной текущей записи таблицы ДОГОВОР, в которую добавлены справочные данные из таблицы ПОКУПАТЕЛЬ. В подчиненной форме для каждой текущей записи договора выводятся только записи плановых поставок товаров данного договора, т. е. связанные с отображенной в главной форме.
Рис. 31. Форма с подчиненной формой, созданная мастером
Каждая запись в подчиненной форме образуется на основе одной из записей базового источника — таблицы ПОСТАВКА_ПЛАН, в которую добавляются справочные данные из таблицы ТОВАР.
Доработка интерфейса
Чтобы подготовить более удобный интерфейс для работы с документом "Договор", соответствующий макету формы, отредактируйте созданную мастером форму средствами конструктора.
Средствами конструктора форм можно как создать любую форму с нуля, так и отредактировать ранее разработанную любыми средствами форму. При создании и редактировании формы могут производиться: определение источника данных формы, добавление новых полей и надписей, включение полей со списком, создание кнопок, вычисления, добавление подчиненных форм, внедрение объектов из других приложений, например, рисунков, диаграмм и т. п. Большинство элементов управления доступно только в режиме конструктора. Наиболее точная и полная настройка структуры и внешнего вида всех разделов и элементов формы производится также в режиме конструктора.
Откройте полученную мастером многотабличную форму ДОГОВОРЫ С ПОКУПАТЕЛЯМИ в режиме конструктора. Для этого выберите ее в