В сведениях о студентах имя и отчество необходимо записывать полностью, а при выводе результатов аттестации достаточно фамилии и инициалов (поскольку в группе могут быть однофамильцы). С этой целью в таблице предусмотрено поле ФИО, которое формируется программно и используется там, где вывод полного имени и отчества не требуется.
Рисунок 6.5 – Взаимосвязь компонентов формы 3 с базой данных
Для того, чтобы это поле заполнялось автоматически, необходимо написать соответствующую процедуру, которая будет запускаться, к примеру, при закрытии окна.
Двойной щелчок на кнопке “Сохранить” переместит нас в окно редактора кода, в котором необходимо набрать операторы:
with DataModule2.Table1 do
begin
Edit;
FieldByName('ФИО').AsString:=FieldByName('Фамилия').AsString+
' '+copy(FieldByName('Имя').AsString,1,1)+'.'+
copy(FieldByName('От_во').AsString,1,1)+'.';
Post;
Append;
DBEdit1.SetFocus;
Label8.Caption:=IntToStr(RecordCount);
обеспечивающие необходимую функциональность обработчика события, связанного с нажатием кнопки “Сохранить”. Набирая эти операторы попытайтесь осмыслить, для чего они нужны.
Обработчик события, связанного с нажатием кнопки “Выход”, может быть следующим:
DataModule2.Table1.Delete;
RC:=DataModule2.Table1.RecordCount;
DataModule2.Table1.Active:=False;
with DataModule2.Table2 do
begin
Active:=True;
for i:=1 to RC do
begin
Edit;
Append;
Post;
end;
Active:=False;
end;
Close;
Между заголовком процедуры и операторной скобкой begin нужно поместить описание локальных переменных: var i,RC:integer;.
Щелчок на свободном месте формы и выбор события OnActivate для нее даст возможность создать обработчик события, связанного с активизацией формы. Он должен быть следующим:
if DataModule2.Table1.Active=False then
DataModule2.Table1.Active:=True;
DataModule2.Table1.Edit;
DataModule2.Table1.Append;
Label8.Caption:=IntToStr(DataModule2.Table1.RecordCount);
DBEdit1.SetFocus;.
Форма, которую мы сконструировали, должна появляться при выборе пункта меню “Ввод данных|Список” главной формы нашего приложения.
Для того чтобы это было так, перейдем к редактированию модуля Unit1. В окне редактора кода необходимо выбрать закладку Unit1 и нажать клавишу F12. Выбрав пункт File|UseUnit … в главном меню DELPHI, а в появившемся окне строку Unit3, добавляем ссылку на модуль Unit3. Переключимся в окно дизайнера форм и в меню формы выполним щелчок мышью на пункте “Ввод данных|Список”. Обработчик событий, ассоциированный с этим пунктом меню, представляет собой одну строку:
Form3.Show;.
Проверьте работоспособность разработанной части приложения с привлечением программы DatabaseDesktop.
Для этого необходимо запустить приложение, активизировать в меню пункт “Ввод данных|Список”, ввести данные для нескольких условных студентов, выйти из программы, последовательно нажимая кнопку “Выход” и активизируя пункт “Выход” меню главного окна приложения. Просмотреть результаты этой работы можно с помощью программы Database Desktop. Если в таблице “список.DB” появились вводимые ранее данные – все функционирует нормально.
Конструируем новую форму. Надпись на форме – “Аттестация”. Поместим на форму два компонента DBGrid и одну кнопку. Свойство DataSourse компонента DBGrid1 – DataModule2.DataSourse3, а компонента DBGrid2 – DataModule2.DataSourse2. Установим размеры компонентов и другие свойства в соответствии с рисунком 6.6.
В главном меню выберем пункт File|Use Unit …, в появившемся окне имя Unit2, нажмем Ok. Этим самым мы подключили модуль Unit2 для его использования в качестве интерфейсного элемента. Структура взаимосвязи компонентов может быть представлена в соответствии с рисунком 6.7.
Рисунок 6.6 – Вид четвертой формы
Обработчиков событий будет два: Один из них будет запускаться при активизации формы, а другой – при нажатии кнопки “Выход”. Первый из обработчиков имеет вид:
with DataModule2.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT ФИО FROM список.DB');
Open;
end;
if DataModule2.Table2.Active=False then
DataModule2.Table2.Active:=True;
DataModule2.Table2.Edit;.
Второй обработчик :
DataModule2.Table2.Post;
DataModule2.Table2.Active:=False;
DataModule2.Query1.Close;
Close
Рисунок 6.7 – Взаимосвязь компонентов формы 4 с базой данных
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.