Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VP_LAB_BD_DELPHI_RUS.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.93 Mб
Скачать

6.1.8. Методы подменю Показать данные

Отбор данных для показа производится с помощью фильтров компонентов Table1 и Query1 и с помощью статического и динамических запросов компонен­тов Query2 и Query3. Пример текста модуля основной формы дан в листинге 6.1.

Показ всех данных производится с помощью метода N8Click. Для этого устанавливается запрет фильтрации данных с помощью компонента Table1 операто­ром: Table1.Filtered:= False; - в случае, если она была разрешена.

Затем формируется подключение данных к компонентам просмотра с помо­щью Table1 оператором: DataSource1.DataSet := Table1;

Отбор данных по запросам производится с помощью компонентов Query1,Query2 и Query3.

Отбор данных с заранее заданным условием отбора данных производится ме­тодом N11Click с помощью статического запроса компонента Query1. Для этого в свойстве SQL компонента формируется текст статического запроса оператором:

SELECT * FROM Stud1 WHERE Stud1.NZ > 150

где Stud1 - имя файла таблицы БД.

Затем устанавливается свойство Query1:Active = True.

При выборе команды пункта меню ‘Показать данные - отбора запросами - с NZ>150’ (с именем N11) для отбора данных активизируется компонент Query1 и производится подключение данных к компонентам их просмотра с помощью Query1 операторами:

If Query1.Active = False THEN Query1.Active := True;

DataSource1.DataSet := Query1;

В процессе выполнения приложения производится также отбор данных по заданному значению номера зачетки:

по динамическому запросу (с помощью компонента Query2, пункт N12);

- с помощью динамически формируемого фильтра компонента Table1 (N13);

- с помощью динамически формируемого фильтра компонента Query1 (N14);

- с помощью динамически формируемого запроса компонента Query3 (N15).

Отбор данных для заданного значения NZ производится в 2 этапа: подготовка к отбору и выполнение операторов для реализации процесса отбора данных. Подготовка к отбору производится в методе N12Click. Это - один разделенный метод для всех перечисленных способов отбора. Для пунктов меню N13, N14, N15 он выбирается из списка методов для OnClick - события пунктов меню на странице Events.

В методе N12Click производится показ панели Рапеl2 с меткой (‘Введите но­мер зачетки:’) и компонентом MaskEdit1. При этом используется одно и то же окно для ввода требуемого значения номера зачетки или размера стипендии.

Кроме того, в этом методе устанавливается признак пункта меню, которым вы­зван метод. Это производится по значению свойства Tag пункта меню, которое определяет значение глобальной переменной J - признака способа отбора. Таким способом идентифицируется пункт меню. Значения свойства Tag соответствую­щих пунктов меню устанавливаются в процессе разработки приложения. Соответ­ствие пунктов подменю ‘Показать данные’ и их значений свойства Tag дано в табл. 6.2.

Таблица 6.2. Соответствие наименований пунктов подменю и их значений свойства Tag = J

Наименование и назначение пункт меню

J

Отбор запросами - с заданным NZ (динамический запрос с Query2)

1

Отбор фильтром - для таблицы (Filtr для Table1)

2

Отбор фильтром - для Query (Filtr для Query1)

3

Отбор запросами - с заданным запросом (SQL для Query3)

4

После ввода требуемого значения номера зачетки и двойного щелчка в окне MaskEdit1 вызывается метод MaskEdit1DblClick, который в зависимости от значения J выполняет отбор данных.

Отбор данных по условию, которое формируется во время выполнения приложения, производится с помощью компонента Query2 с динамическим запро­сом (J=1). Для формирования динамического запроса надо в свойство SQL ком­понента Query2 ввести текст оператора отбора данных:

SELECT * FROM Stud1 WHERE Stud1.NZ > :TNZ

где TNZ - это формальный параметр, значение для которого можно ввести во время выполнения приложения; пробел перед TNZ недопустим.

После ввода текста свойства SQL надо вызвать EditingQuery2.Params - ре­дактор его параметра - нажатием на многоточие свойства Params. Затем активизировать строку с именем параметра (TNZ); в Инспекторе объектов появятся его свойства. Установить его свойство DataType выбором из списка его значений. Например: DataType = ftInteger.

В методе MaskEdit1DblClick для пункта меню ‘отбора запросами - с заданным запросом’ (для J = 4) производится стирание текста прежнего запроса методом Query3.SQL.Clear;

Затем формируется новый запрос с использованием значения номера зачетки из окна MaskEdit1 оператором:

Query3.SQL.Add (‘SELECT * FROM Stud1 WHERE Stud1.NZ >’ + MaskEdit1.Text);

Для отбора данных с помощью фильтра компонента Table1 в окно MaskEdit1 вводится требуемое значение номера зачетки. По двойному щелчку в окне MaskEdit1 вызывается метод MaskEdit1DblClick, в котором по значению J = 2 устанавливается фильтр для работы с компонентом Table1 операторами:

DataSource1.DataSet := Table1;

Table1.Filtered := True;

Table1.Filter := NZ >' + MaskEdit1.Text;

Аналогично устанавливается фильтрация данных с помощью компонента Query1. Дополнительно перед установкой фильтра Query1 производится отклю­чение Query1 от БД оператором Query1.Close; а после установки фильтра - под­ключение Query1 к БД оператором Query1.Open;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]