Для редактирования данных и управления приложением удобно создать главное меню. В моем приложении главное меню содержит следующие подпункты:
1. Файл;
2. Редактирование;
3. Сортировка;
4. Поиск;
5. Активность студентов;
6. Ведомость;
7. О программе.
Рассмотрим работу некоторых из них.
Добавление, редактирование и удаление данных
В пункте Редактирование создаем три подпункта: Добавить запись, Редактировать запись, Удалить запись. Для этого создадим новую форму, которую подключим к модулю Data Module2.
Напротив надписей (Label) создадим компоненты DBEdit с вкладки Data Controls. Эти компоненты представляют собой простые строки ввода для поля в базе данных. Чтобы компонент видел данные из нужного поля, следует указать для него в свойстве Data Source необходимую таблицу, а в свойстве Data Field указать поле, которое надо редактировать.
Для обработчика кнопки «Сохранить» код следующий:
if DataModule2.ADOTablel.Modified then DataModule2.ADOTablel.Post; Для кнопки «Отмена» нужно использовать метод Cancel, отменяющий изменения текущей строки, если они не были сохранены еще с помощью метода Post, т.е. написать следующий код:
DataModule1.ADOTable1.Cancel.
После разработки формы редактирования, ее можно использовать в обработчике пункта меню Добавить запись, написав код:
DataModule2.ADOTable1.Insert; // вставка строки в таблицу EditForm.ShowModal; // вызов формы редактирования
Обработчик меню Удалить запись может реализовать следующий код: if Application.MessageBox (РСhаr('Вы действительно хотите удалить запись?' +DataModule2.ADOTablei1.DesignerData), 'Внимание!!!', MB OKCANCEL)=id_ OK
then DataModule2.ADOTablel .Delete;
Сортировка данных В любой базе данных существует понятие индексного поля. Индексы увеличивают скорость поиска данных и позволяют сортировать все записи. Обязательным является только главный индекс (ключевое поле) и существует всегда. Можно создавать любое количество дополнительных индексированных полей, однако индексирование отнимает дополнительное место на диске, и если таких полей будет много, то можно снизить быстродействие программы.
Для обеспечения сортировки данных по каждому полю достаточно написать обработчики событий. В своем приложении сортировка
производится по полям: «По фамилии», «По группе».
Далее приведен пример кода для выполнения сортировки по фамилии:
procedure TForml.N9Click(Sender: TObject);
begin
DataModule2.ADOTable1.IndexFieldNames:='Фамилия'; DataModule2.ADOTable2.IndexFieldNames:='Фамилия';
end;
В данном случае сортировка будет производиться по возрастанию. Для отмены сортировки необходимо указать пустую строку.
Следует помнить о том, что, если вы хотите делать сортировку по какому-либо полю, то при объявлении названия поля в MS Access оно должно состоять из одного слова.
Фильтрация данных
Одним из эффективных и востребованных инструментов обработки данных является организация их фильтрации. Для организации фильтрации в компоненте TADOTable есть свойства Filter и Filtered. Свойство Filtered определяет является ли таблица фильтруемой и только если оно имеет значение true, то воспринимается свойство Filter как строка содержащая текст условия определяемого в виде:
Поле [Оператор сравнения] 'Значение'.
В приложении «Учет общественной активности студентов академической группы» реализована функция фильтрации данных для пункта главного меню Активность студентов.
Данный пункт содержит следующие подпункты :
1. По видам деятельности:
1.1. Спортсмены;
Код:
procedure TForml.N19Click(Sender: TObject);
begin
DataModule2.ADOTable1.Filtered:=true;
DataModule2.ADOTable2.Filtered:=true;
DataModule2.ADOTablel.Filter:='Cпopт="+"' ;
DataModule2.ADOTable2.Filter:='Cпopт="+'";
end;
1.2. КВНщики;
1.3. Старосты.
2. Актив Код:
procedure TForml.N17Click(Sender: TObject);
begin
DataModule2.ADOTable1.Filtered:=true;
DataModule2.ADOTable2.Filtered:=true;
DataModule2.ADOTablel.Filter:='Cпopт="+" and КВН ="+" and Староста ="+'";
DataModule2.ADOTable2.Filter:='Cпopт="+" and КВН ="+" and Староста ="+'";
end;
3. Неактивные студенты
4. Отменить отбор
Код:
procedure
TForml.N25Click(Sender: TObject);
begin
DataModule2.ADOTable1.Filtered:=false; DataModule2.ADOTable2.Filtered:=false;
end;
Нужно обратить внимание на то, что значения нужно указывать в одинарных кавычках. Но так как одинарные кавычки используются для ограничения строк, то чтобы внутри строки поставить одинарную кавычку, ее нужно поставить дважды. Именно таким способом ставиться одинарная кавычка перед значением. После значения нужно поставить одинарную кавычку и закрыть строку, поэтому ставиться три одинарных кавычки (две для того, чтобы поставить кавычку для значения и одна для конца строки).
Организация поиска данных
В данном приложении организован поиск по фамилии, по группе, и по обоим параметрам. Он организован в виде формы
Далее приведен пример кода для выполнения поиска по фамилии: procedure TForm4.Button1Click(Sender: TObject);
begin
DataModule2.ADOTable1.Filtered:=true;
DataModule2.ADOTable2.Filtered:=true;
DataModule2.ADOTable1.Filter:= 'Фaмилия='"+Edit1.Text+"";
DataModule2.ADOTable2.Filter:= 'Фaмилия='"+Edit1.Text+"";
end;
Для отмены поиска используется код:
procedure TForml.N14Click(Sender: TObject);
begin
DataModule2.ADOTable1.Filtered:=false;
DataModule2.ADOTable2.Filtered:=false;
end;
Дата: 2019-12-10, просмотров: 209.