- •1.2. Установка рабочей директории
- •1.3. Создание таблиц базы данных
- •1.4. Установление связей между таблицами (определение ссылочной целостности)
- •1.6. Запуск сервера Firebird
- •1.7. Создание базы данных Firebird
- •1.8. Подключение базы данных Firebird
- •1.9. Создание и редактирование таблиц Firebird
- •1.10. Связи между таблицами Firebird
- •1.11. Перенос базы данных на другой компьютер
- •2.1. Создание формы для работы с одной таблицей
- •2.2. Ввод данных в таблицу с помощью созданной формы
- •2.3. Создание формы для работы с двумя таблицами
- •2.4. Редактирование формы
- •2.5. Ввод данных через отдельные компоненты
- •2.6. Редактирование данных через компоненты
- •3. Реализация сортировки, вычислений и фильтрациИ данных
- •3.1. Реализация сортировки
- •3.1. Вид формы для сортировки
- •1 Вариант – с использованием имени индекса:
- •2 Вариант - с использованием имени поля, по которому создан индекс:
- •3.2. Реализация вычислений
- •3.3. Реализация фильтрации записей
- •4.3. Создание запроса с групповыми вычислениями
- •4.4. Создание параметрического запроса
- •4.5. Параметрический запрос для поиска поля, выбранного из списка
- •5.1. Создание отчета в Delphi
- •5.2. Создание отчета на основе одной таблицы
- •5.3. Создание отчета с группировкой записей по определенному полю
- •Список книг
- •5.4. Создание отчета на основе параметрического запроса
- •Разработка автоматизированной системы продажи железнодорожных билетов
- •Справка о проданных билетах
- •Справка об остановках маршрута
- •Справка о продаже билетов
- •Справка о расписании групп
- •Списки групп
- •Тренеры
- •Списки больных, стоящих на учете
- •Список сотрудников
- •Список больных
- •Разработка приложения «Больница»
- •Медицинский персонал
- •Процедуры
- •Список больных
- •Разработка автоматизированной системы продажи авиационных билетов
- •Продажа билета
- •Список самолетов
- •Список автомобилей
- •Список водителей
- •Транзисторы
- •Справка о продаже транзисторов
- •Заказы на ремонт
- •Выпрямительные диоды
- •Закупка приборов
- •Список устройств
- •Расходная ведомость
- •Библиографический список
- •Оглавление
2.6. Редактирование данных через компоненты
Для реализации редактирования текущей записи через отдельные компоненты необходимо в форму добавить кнопки Редактировать и Сохранить изменения (рис. 2.7).
Рис. 2.7. Вид формы с кнопками для редактирования
С кнопкой Редактировать связана следующая процедура:
{Перезапись в компоненты полей текущей записи}
Edit1.text:= Table1['Sh_gr'];
ComboBox1.Text := Table1['Facul'];
ComboBox2.Text := Table1['Spec'];
ComboBox3.Text := IntToStr(Table1['Rurs']);
Edit2.text := Table1['Star'];
DateTimePicker1.Date := Table1['Dat_zach'];
С кнопкой Сохранить изменения связана следующая процедура:
{Перевод текущей записи в состояние редактирования с помощью метода Edit}
Table1.Edit;
{Присвоение полям текущей записи значений компонентов}
Table1['Sh_gr']:=Edit1.text;
Table1['Facul']:=ComboBox1.Text;
Table1['Spec']:=ComboBox2.Text;
Table1['Rurs']:=StrToInt(ComboBox3.Text);
Table1['Star']:=Edit2.text;
Table1['Dat_zach']:=DateTimePicker1.Date;
{Сохранение сделанных изменений в текущей записи с помощью метода Post}
Table1.Post;
3. Реализация сортировки, вычислений и фильтрациИ данных
3.1. Реализация сортировки
Для осуществления сортировки необходимо создать вторичные индексы (первичный индекс создается автоматически по ключевым полям). Создание вторичных индексов осуществляется следующим образом:
запустить утилиту Database Desktop (Пуск, Программы, Delphi 7, Database Desktop);
открыть таблицу, для которой создаются индексы (File, Open, Table, выбрать имя таблицы, перейти в режим редактирования структуры – Table, Restructure);
в окне свойств выбрать Secondary Indexes, кнопка Define, выбрать поле, по которому создается индекс; кнопка Add; кнопка ОК, ввести имя индекса (например, Ind_Avt).
Для отображения результатов сортировки на форму необходимо поставить следующие компоненты:
компонент TTable (Таблица); настроить свойства – имя базы данных (DatabaseName), имя таблицы (TableName), активизировать таблицу (Active – true);
компонент DataSource (источник данных); настроить свойство DataSet –Table1;
компонент DbGrid (таблица для отображения информации); настроить свойство DataSource – DataSource1.
Возможный вид формы представлен на рис. 3.1.
3.1. Вид формы для сортировки
Сортировка с помощью отдельной кнопки осуществляется следующим образом.
1 Вариант – с использованием имени индекса:
Поставить на форму компонент Кнопка (Button1), для свойства OnClick данной кнопки написать процедуру
Table1.IndexName:='Ind_shgr';
Данная процедура открывает индекс по имени Ind_shgr (данный индекс создан для поля Sh_gr – шифр книги, имя индекса – Ind_shgr). Открытие индекса автоматически сортирует записи по индексному полю.
2 Вариант - с использованием имени поля, по которому создан индекс:
Поставить на форму компонент Кнопка (Button2), для свойства OnClick данной кнопки написать процедуру
Table1.IndexFieldNames:='Avt';
Данная процедура открывает индекс, созданный по полю Avt (авторы).
Сортировка с помощью группы переключателей осуществляется следующим образом.
1. На форму можно поставить компонент Panel1, удалить надпись в свойстве Caption.
2. На панель поставить компонент Radiogroup1, для него в свойстве Caption задать надпись Вид сортировки; в свойстве Items задать подписи для переключателей (например, по автору, по области знаний, по шифру книги).
3. Добавить на форму кнопку Button1 (задать надпись Сортировать), для свойства OnClick данной кнопки написать процедуру (ItemIndex – номер выбранного переключателя)
case RadioGroup1.ItemIndex of
0: Table1.IndexName:='Ind_Avt';
1: Table1.IndexName:='Ind_Oblzn';
2: Table1.IndexName:='Ind_shgr';
end;
4. При выборе первого переключателя будет сортировка по полю Авторы, при выборе второго переключателя будет сортировка по полю Область знаний, при выборе третьего переключателя – по полю Шифр книги.