Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование учебной БД.doc
Скачиваний:
26
Добавлен:
15.03.2015
Размер:
2.57 Mб
Скачать

Разработка форм ввода данных

Прежде чем проектировать формы, необходимо определить требования к ним.

Форма «Ввод справочника о товарах»

Форма должна позволять вводить наименование товара и его цену. Причем на экране должен быть виден не один товар, а список. При вводе нового товара должен формироваться его код, как последовательность натуральных чисел. Форма должна иметь кнопку закрытия.

Форма «Ввод списка клиентов»

Форма должна позволять вводить имя клиента и его реквизиты. Причем на экране должен быть виден не один клиент, а список. При вводе нового клиента должен формироваться его код, как последовательность натуральных чисел. Форма должна иметь кнопку закрытия.

Форма «Ввод данных о заказе»

Поскольку объем данных о заказе значителен и на экране должно быть размещено достаточно много информации, форма должна содержать сведения об одном заказе. Эта информация включает данные одной строки таблицы «Заказы» и нескольких строк таблицы «Спецификация», т.е. форма должна состоять из основной и подчиненной форм. Для создания нового заказа в форму необходимо включить кнопку, нажатие которой создаст новую запись в таблице «Заказы», сформирует новый номер заказа и добавит в дату заказа текущую дату. Для отметки оплаты заказа требуется кнопка, вызывающая форму регистрации оплаты. Подчиненная форма должна включать строки таблицы «Спецификация», в каждую из которых входит «Наименование товара», «Цена», «Наценка», «Скидка», «Количество», а так же «Сумма», рассчитываемая как:

«Цена» * (1 + «Наценка» - «Скидка») * «Количество»

При вводе наименования товара в поле «Цена» должна автоматически заносится цена из справочника товаров. В конце формы необходимо сформировать итоговую сумму заказа. Форма должна иметь кнопку закрытия.

Требования к отчетным формам будут рассмотрены ниже.

Описание создания формы «Ввод справочника о товарах»

Перейти к вкладке «Формы» и нажать кнопку создать или выбрать позицию «Создание формы с помощью мастера» на поле вкладки. В первом случае на экране появится окно подготовки к созданию форм следующего вида. В нем необходимо выбрать позицию «Мастер форм» и имя таблицы, для которой разрабатывается форма и нажать кнопку ОК.

На экране появится следующее окно, в котором надо выбрать поля для включения в форму. То же окно появится, если выбрана позиция «Создание формы с помощью мастера» на поле вкладки «Формы».

После выбора полей и нажатия кнопки «Далее >» появится окно.

Поскольку в требованиях к форме говорится о списке наименований, необходимо выбрать позицию «ленточный». Тот же результат достигается и в табличной форме, однако в этом случае возможностей оформления окна формы становится меньше. После нажатия кнопки «Далее >» на экране появится окно:

Здесь необходимо выбрать стиль оформления формы. Рекомендуется воспользоваться стилем «Стандартный».

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

Поскольку форма еще не имеет окончательного вида – выбрать второй из них. После нажатия кнопки «Готово» на экране появится макет формы в режиме конструктора «Товар».

В дальнейшем переход к правке формы или отчета, т.е. переход к режиму конструктора выполняется нажатием кнопкина панели инструментов. Переход к просмотру формы осуществляется нажатием кнопки.

Слева от макета формы расположена панель инструментов для создания объектов. Выносками обозначены кнопки создания объектов, которые будут использоваться в данном описании.

Макет формы имеет следующую структуру: раздел заголовка формы, область данных и примечание. В первом и последнем размещаются объекты, содержащие неповторяющиеся данные. В СУБД ACCESS используется объектно-ориентированный подход к проектированию приложений. Согласно этой концепции формы и отчеты рассматриваются как объекты, содержащие внутри себя другие объекты. Объекты области данных, как правило, связаны с данными таблицы или запроса и отображают экземпляры данных, содержащихся в них. Такие объекты называются связанными. В экранных формах различают следующие типы объектов: форма, надпись, связанные и несвязанные поля, кнопки, поля со списком, подчиненные формы и другие. Каждый объект имеет набор свойств и событий связанных с ним, которые можно посмотреть и изменить щелкнув правой кнопкой мыши на объекте и выбрав позицию «Свойства». В результате появится окно свойств, которое в зависимости от выбора вкладки имеет вид.

Все объекты имеют стандартный набор свойств соответствующий типу объекта. Свойства разделены на группы: «Макет», «Данные», «События» и другие. Свойства группы «Макет» отражают вид и расположение объекта на экране. Свойства «Данные» отражают состав и характеристики данных, которые содержит или с которыми связан объект. С каждым объектом в процессе работы с ним на экране могут происходить разные события. Причем для каждого типа объекта имеется свой набор событий. С помощью событий расширяются возможности работы с формой и ее объектами, путем связывания с любым из них фрагментов программ, которые выполняют действия по обработке события. Перечень событий каждого объекта отражается на вкладке «События».

Добавление объекта в форму выполняется так: на панели объектов щелчком левой клавиши мыши выбирается тип объекта, затем курсор переносится в место окна формы, где планируется разместить объект и удерживая нажатой левую клавишу мыши выделяется область объекта. После этого будет создан объект или запустится мастер его построения. При создании объекта ему присваивается имя состоящее из наименования типа поля и порядкового номера объекта. Имя является одним из свойств и при желании может быть изменено. Описанные выше общие замечания по разработке формы позволяют осознано подойти к выполнению следующих действий. Пользуясь описанной панелью и изменяя свойства объектов, преобразуем в режиме конструктора форму к виду показанному ниже, т.е. добавим в раздел заголовков текст с названием формы, в примечание кнопку и заменить поле «Единица измерения» на поле со списком. Для этого нужно:

  1. Создав объект надписи, установить в свойствах объекта цвет фона, размер и цвет надписи, ввести текст надписи.

  2. Создать кнопку для закрытия формы. При создании этого объекта запускается мастер построения кнопок.

  3. Единицы измерения представляют заранее известный перечень наименований. Для того, чтобы дать возможность пользователю не вводить единицу измерения вручную, а выбирать из заранее заданного списка необходимо заменить связанное поле «Единица измерения» на поле со списком.

Перейдя в режим просмотра формы и введя часть данных, получим:

Пояснения к выполнению указанных действий:

  1. Создание надписи «Справочник товаров» достаточно просто, поэтому дополнительных пояснений не требуется.

  2. При создании кнопки запускается мастер построения кнопок, первым окном которого является окно приведенное ниже. В этом окне выбираются категории и действия кнопки как показано на рисунке. Категория «Работа с формой» имеет набор действий, среди которых нужно выбрать «Закрыть форму». После нажатия кнопки «Далее» появляются еще два окна, для которых выбрать «Далее» и «Готово».

  1. Замену поля «Единица измерения» на поле со списком можно выполнить следующим образом. Удалить поле «Единица измерения» и вставить на его место поле со списком. При этом запустится мастер построения полей со списком:

Поскольку единицы измерения представляют конечный список, который можно определить заранее, то необходимо выбрать фиксированный набор значений и нажать кнопку «Далее>». В результате появится окно, в котором нужно заполнить список единиц измерения, как показано ниже и перейти к следующему окну нажав кнопку «Далее>».

В следующем окне просто нажмите кнопку «Готово». В результате в области данных формы появится поле со списком, у которого нужно убрать прикрепленную к нему надпись и выровнять с другими полями.

В результате выполнения указанных действий форма «Товар» в режиме просмотра должна выглядеть как показано выше. Недостатком такой формы является то, что для пользователя, который будет работать с приложением, непонятно, для чего нужен код товара. Он может ошибиться при его заполнении. Возникают дополнительные вопросы, которые к эксплуатации приложения отношения не имеют. Поэтому лучше организовать автоматическое формирование кода товара и скрыть его от пользователя приложения. Принцип создания кода товара для вновь вводимого наименования прост: сформировать новый код товара и занести его в поле «Код товара» перед тем, как запись из формы будет помещена в таблицу. Для этого можно воспользоваться следующим способом:

1. Создать несвязное поле в разделе примечаний, установить для свойства «Данные» в одноименной вкладке значение строки вычисляющей новый код товара

=Nz(DMax("[Код товара]";"[Товар]"))+1

2. Построить для события «До обновления» формы процедуру позволяющую добавлять во вновь вводимый товар код товара, вычисляемый в несвязном поле. Событие «До обновления» имеет следующий смысл. Связанные поля формы отражают данные содержащиеся в соответствующей таблице ( в данном случае таблице «Товар»). При вводе нового товара наименование, единица измерения и цена хранятся в полях формы и переносятся в таблицу только при переходе к следующей строке формы. Перед тем, как они будут помещены в таблицу, возникает событие «До обновления». Поскольку на этот момент для нового товара занесены все данные кроме кода товара, необходимо занести код, сформированный в несвязанном поле (см. предыдущий пункт) в поле «Код товара». Это делается с помощью фрагмента программы (см. рисунок ниже), который переносит рассчитанный в «Поле17» код нового товара в поле «Код товара». И уже полный набор сведений о товаре переносится в таблицу базы данных.

3. Перевести форму в режим просмотра, проверить правильность занесения кода товара и скрыть объекты «Код товара» и «Поле17».

Пояснения к выполнению указанных действий:

If Nz( [Код товара]) = 0 Then

[Код товара] = [Поле17]

End If

1. В примечании формы создадим несвязное поле. Система сама присвоит ему имя. В нашем случае это «Поле17». У вас может быть имя с другим номером. В позицию «Данные» одноименной вкладки с помощью построителя выражении вводится формула. Как пользоваться построителем выражений вам подскажет преподаватель. Ее смысл состоит в следующем. Функция DMax(“Код товара”;”Товар”) возвращает максимальное значение кода товара из таблицы «Товар». Если в таблицу не было введено ни одного данного, то функция вернет значение Null, которое соответствует понятию – нет данного. Функция Nz(Выражение) проверяет, является ли выражение в скобках равным Null. Если да она возвращает значение 0, в противном случае максимальный код товара. Таким образом, значением поля является 1, если в таблице «Товар» еще нет ни одной строки данных и увеличенный на единицу максимальный код товара, если в таблице уже существуют записи.

2. Для создания программы добавляющей код товара в новую запись необходимо с помощью правой кнопки мыши вызвать окно свойств, в котором выбрать вкладку «События» и для события «До обновления» выбрать позицию «Процедура обработки события». Далее, вызвав с помощью кнопки построитель процедур, ввести фрагмент программы.

If Nz( [Код товара]) = 0 Then

[Код товара] = [Поле17]

End If

Смысл фрагмента состоит в следующем: если код товара имеет значение Null или равен 0, т.е. создана новая запись о товаре, то полю «Код товара» присвоить значение, вычисленное в объекте «Поле17».

3. После того как будет проверена работоспособность этих средств, т.е. в режиме просмотра формы будет видно, что код товара формируется правильно, поле «Код товара» можно скрыть, установив свойство «Вывод на экран» в положение «Нет» и удалив совсем надпись «Код товара». Далее в форме можно установить размеры и вид шрифтов, цвета шрифтов и фона, после чего закрыть ее подтвердив предложение о сохранении изменений. В поле «Цена» нужно установить формат вывода на экран с двумя знаками после точки (копейки). Для этого в свойствах «Формат поля» и «Число десятичных знаков» нужно установить значения «Фиксированный» и 2 – соответственно. В итоге форма должна выглядеть примерно так.

Аналогичным образом разработайте форму «Ввод данных о клиенте».