- •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. Создание отчета на основе параметрического запроса
- •Разработка автоматизированной системы продажи железнодорожных билетов
- •Справка о проданных билетах
- •Справка об остановках маршрута
- •Справка о продаже билетов
- •Справка о расписании групп
- •Списки групп
- •Тренеры
- •Списки больных, стоящих на учете
- •Список сотрудников
- •Список больных
- •Разработка приложения «Больница»
- •Медицинский персонал
- •Процедуры
- •Список больных
- •Разработка автоматизированной системы продажи авиационных билетов
- •Продажа билета
- •Список самолетов
- •Список автомобилей
- •Список водителей
- •Транзисторы
- •Справка о продаже транзисторов
- •Заказы на ремонт
- •Выпрямительные диоды
- •Закупка приборов
- •Список устройств
- •Расходная ведомость
- •Библиографический список
- •Оглавление
4.5. Параметрический запрос для поиска поля, выбранного из списка
Создание пааметрического зароса, в котором искомое значение выбирается из поля с раскрывающимся списком, осуществляется следующим образом.
1. Создать форму для реализации параметрического запроса. На форму поместить компонент ComboBox (поле с раскрывающимся списком), компонент Label (надпись), компонент Button (кнопка), компонент Table (таблица, из которой будет выбираться список), компонент DataSourse. Возможный вид формы представлен на рис. 4.1.
Рис. 4.1. Форма для выбора значения из поля со списком
Для компонента Table настраивают стандартные свойства (DataBaseName – имя базы данных (псевдоним), TableName – имя таблицы, Active – true).
Для формы в целом в событии OnActivate записывают следующую процедуру:
Table1.First;
While not Table1.Eof do
begin
ComboBox1.Items.Add(Table1.fieldByName('Sh_gr').Value);
Table1.Next;
end;
Данная процедура для компонента ComboBox создает список шифров групп, который выбирается из компонента Table1, связанного с таблицей Group.
2. Расположить на форме компоненты Query (панель BDE), DataSource (панель Data Access), DBGrid (панель Data Controls).
3. Установить для Query в свойстве DataBaseName значение псевдонима, для DataSource – в свойстве DataSet значение Query1, для DBGrid – в свойстве DataSource значение DataSource1.
4. Для Query щелкнуть в свойствах в строке SQL по кнопке …, в открывшемся окне набрать SQL-запрос. Параметрами в этом запросе являются имена, перед которыми стоят двоеточия «:».В данном запросе имя параметра совпадает с именем поля (запрос выбирает записи по шифру группы (поле Sh_gr)).
Select *
from Stud
where Sh_gr = :Sh_gr;
Закрыть окно, щелкнув по кнопке ОК.
5. В Инспекторе Объектов выбрать свойство Params и щелкнуть по кнопке … в строке этого свойства. В появившемся окне будут показаны имена всех параметров, введенных в тексте параметрического SQL-запроса. Каждому параметру из списка необходимо поставить в соответствие определенный тип и стартовое значение. Стартовое значение задавать необязательно. В строке ParamType для поля Sh_gr задать ptInputOutput, раскрыть список Value и в строке Type задать OleStr (String) (текстовое поле). Активировать запрос (в свойстве Active выставить true). Нужно русифицировать столбцы в компоненте DBGrid. Возможный вид формы представлен на рис. 4.2.
Рис. 4.2. Параметрический запрос
6. Всякий раз, когда необходимо изменить значения параметров запроса, программа должна закрыть Query, присвоить значения параметрам поиска и повторно открыть его. Это реализует процедура, которая запускается при щелчке по кнопке Найти. При этом запускается следующая процедура обработки события.
With Query1 do
begin
Close;
ParamByName('Sh_gr').Value := ComboBox1.Text;
Open;
end;
7. Сохранить произведенные изменения и проверить работу запроса. В списке выбрать нужное значение (шифр группы). Для выполнения запроса щелкнуть по кнопке Найти. Возможный результат выполнения запроса представлен на рис. 4.3.
Рис. 4.3. Результат выполнения параметрического запроса
5. СОЗДАНИЕ ОТЧЕТОВ