Базы данных: Методические указания к выполнению практикума по одноименной дисциплине, страница 15

Двойной щелчок на первой кнопке позволяет нам включить в исходный код обработчик события нажатия кнопки OnClick:

Procedure TForm1.InsBtnClick (Sender: Tobject);

Begin

IF Table1.State=dsBrowse THEN Table1.Insert;

End;

Метод Insert переводит НД Table1 в состояние добавления записи dsInsert. Ввод значений полей осуществляется в визуальных компонентах управления для отдельных полей.

Определим обработчик события нажатия кнопки “Изменить”:

Procedure TForm1.EdBtnClick (Sender: Tobject);

Begin

IF Table1.State=dsBrowse THEN Table1.Edit;

End;

Метод Edit переводит НД Table1 в состояние редактирования записи dsInsert. Ввод значений полей осуществляется в визуальных компонентах управления для отдельных полей.

Определим обработчик нажатия кнопки DelBtn:

Procedure TForm1.DelBtnClick (Sender: TObject);

Begin

IF Table1.State=dsBrowse THEN

IF MessageDlg(‘Подтвердите удаление записи’, mtConfirmation, [mbYes, mbNo],0)=mrYes THEN Table1.Delete;

End;

Если набор данных находится в режиме просмотра записей, вызывается с использованием функции MessageDlg вызывается окно диалога и если пользователь нажимает кнопку Yes, происходит удаление текущей записи в наборе Table1.

Определим обработчик события, связанного с нажатием кнопки “ Запомнить”:

Procedure TForm1.PostBtnClick (Sender: Tobject);

Begin

IF Table1.State in [dsInsert,dsEdit] THEN Table1.Post;

End;

То есть если набор данных находится в режиме добавления новой записи или редактирования, происходит выполнения метода набора данных Post для запоминания текущего состояния записи в таблице базы данных. После запоминания НД переводится в режим просмотра.

Определим обработчик нажатия кнопки “Отменить ”:

Procedure TForm1.CanBtnClick (Sender: Tobject);

Begin

IF Table1.State in [dsInsert,dsEdit] THEN Table1.Cancel;

End;

То есть если набор данных находится в режиме добавления новой записи или редактирования, происходит выполнения метода набора данных Cancel для отмены запоминания текущего состояния записи в таблице базы данных и перевод НД в режим просмотра.

Для того, чтобы список студентов нельзя было переводить в состояние изменения данных, а также удалять и добавлять записи непосредственно с использованием компонента DBGrid1, установим свойство DBGrid1.ReadOnly в значение True.

Многотабличная экранная форма со связанными таблицами.

Таблицы Student и Group находятся в отношении «многие к одному». Поэтому можно сделать так, чтобы при установке указателя на определенную запись в таблице группы в DBGrid1 показывались только записи о студентах соответствующей группы. Это реализуется через механизм связи наборов Master-Detail.

Для этого требуется выполнить следующие действия:

–  - введем для таблицы Table1 новый индекс по полю Num;

–  в редакторе столбцов DBGrid1 сделаем столбец, соответствующий номеру группы первым по счету;

–  исключим из формы компоненту DBLookupComboBox,

–  разместим в форме компонеты DBText и DBNavigator соответственно для отображения наименования группы и перемещения по записям таблицы Group;

–  Установим свойства DataSource новых компонентов в Datasource2, а свойство DataFields компонента DBText в NumGr;

–  Сделаем невидимыми все кнопки DBNavigator, кроме кнопок для навигации по записям.

В инспекторе объектов для компонента Table1 установим значение свойства MasterSource в DataSource2. Переместимся на значение свойства Master Fields и нажмем кнопку эллипса. В появившемся окне Field Link Designer установим параметры связи. При этом будет использован новый индекс для таблицы Table1.

2.4. Лабораторная работа 3

"Проектирование экранной формы электронного аналога исходного документа"

2.4.1Содержание работы:

С использованием компонент DELPHI на основе локальной базы данных, созданной в первой лабораторной работе , сформировать экранную форму, которая отражала бы все данные, содержащиеся в документе из самостоятельной работы 1. Если в силу насыщенности документа данными студент затрудняется в их полном отражении в экранной форме, вместе с преподавателем определяется компромиссный вариант.