Лабораторная работа № 4

Тема: Навигационный доступ к записям таблицы. Создание формы для ввода информации в таблицу «Товар».

Цель: Приобретения навыков работы с записями таблиц. Использование компонентов среды Delphi для работы с таблицами.

Контрольный пример:

Для работы с таблицами удобно использовать формы, содержащие поля для ввода, списки, комментарии и другие элементы, которые помогают пользователю при занесении данных в базу. Если таблица большая, то ее представление в том виде, которые предлагает компонент BDGrid не удобен, а использование всех кнопок компонента DBNavigator в приложении может не понадобиться.

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

Для того чтобы начать вводить в таблицу данные, ее необходимо активизировать (или открыть), например, процедурой Open. Для закрытия таблицы используется процедура Close. Для работы с записями могут быть использованы следующие процедуры:

Ø  First – установка на первую запись в таблице;

Ø  Next – установка на следующую запись;

Ø  Last – установка на последнюю запись;

Ø  Prior – предыдущая запись;

Ø  Insert – вставка строки;

Ø  Delete – удалить строку;

Ø  Edit – редактирование

Ø  и др.

Используя описанные выше методы, создадим новую форму для ввода информации о товаре в таблицу. Дополним таблицу «Товар» новой колонкой Склад, в которой будем указывать количество оставшегося товара. Для этого в Database Desktop дополним в структуре таблицы «Товар» колонку Sklad типа Number, а так же указав минимальное значение 0. Сохраняем таблицу (кнопка Save) и введем некоторые численные значения для нового поля.

НЕ нашли? Не то? Что вы ищете?

Переходим в Delphi и открываем рабочий проект.

1.  Перейдем на закладку «Товары» Form2 и удалим находящиеся на ней компоненты DBGrid и DBNavigator.

2.  Расположим необходимое количество компонента Label с закладки Standard. Свойству Caption присвоим соответствующие значения (Код, наименование, цена и т. д.).

3.  Перейдем на закладку Data Controls и выберем компонент DBEdit (), который будет отображать поле из таблицы. Напротив каждого Label разместим DBEdit.

4.  Изменим следующие свойства DBEdit:

§  DataSourceDM.DS_tovar (связанный с таблицей «Товары»);

§  DataField – указать соответствующее поле из таблицы.

5.  Для компонента DBEdit, который соответствует «Коду товара», установим свойство Enabled – False (недоступен), так как пользователь не должен вводить код.

6.  Разместим на форме следующие кнопки: Следующий, Новый товар и Сохранить. В свойстве кнопки «Сохранить» по умолчанию укажем недоступность для пользователя, так как она необходима только при добавлении или корректировании записей. Форма будет иметь вид как на рис. 1

Рис. 1. Форма «Товар»

7.  Изменим имена (свойство Name) всех кнопок на соответствующие им английские с префиксом bt (напр., кнопка «Сохранить» будет иметь свойство Name – btSave). Изменение имен компонентов, предложенных по умолчанию, делается для придания смыслового значения именам объекта. К тому же пользовательские имена чаще всего гораздо короче, чем предложенные средой Delphi.

8.  Обработаем процедуру нажатия на кнопку «Новый товар» (btNew):

DM. Tovar. Insert; {указываем: где находиться таблица (модуль DM), после указываем имя элемента, соответствующего таблицы «Товары» (Tovar) и действие (вставка строки – Insert)}

btSave. Enabled:= true; {делаем кнопку «Сохранить» доступной для пользователя}

9.  Обработаем процедуру нажатия кнопки «Сохранить» (btSave):

DM. Tovar. Post; {Сохраняем изменения в таблице}

btSave. Enabled:= false; {Делаем кнопку «Сохранить» снова недоступной}

10.  Обработаем процедуру нажатия кнопки «Следующий» (btNext):

DM. Tovar. Next;

11.  Самостоятельно настройте последовательный переход по компонентам формы при использовании клавиши Tab. По умолчанию в приложении при переходах курсор будет «прыгать» в той последовательности, в какой объекты располагались при проектировании (чаще всего хаотично). Используйте свойство компонентов Tabolder. Для DBEdit, соответствующего «Коду товара», установите свойство TabStop – False, чтоб на этот компонент нельзя было попасть, используя клавишу Tab.

Индивидуальное задание:

1.  Четные варианты. Создайте кнопки «Корректировать», «Последняя запись», «Предыдущая запись» и обработайте их процедуры.

2.  Нечетные варианты. Создайте кнопки «Удалить», «Первая запись», «Предыдущая запись» и обработайте их процедуры.