Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция спбд.docx
Скачиваний:
59
Добавлен:
14.09.2019
Размер:
223.04 Кб
Скачать

Механизмы поиска в наборах данных

Как и в случае фильтрации, для поиска нужного значения в наборе данных существует несколько вариантов. Один из них основан на применении метода SetKey и используется для поиска только по индексированным полям. Индексные механизмы поиска не работают в наборах записей, полученнх с помощью запроса к нескольким таблицам базы данных. В это случае для поиска нужной записи используется метод Locate, который не требует наличие индекса. Этот метод наиболее общий способ поиска информации в наборе данных. Поиск можно производить по любому полю или набору полей, не обязательно составляющих индекс. Данный метод имеет несколько аргументов:

  1. Строка AnsiString, содержащая наименование полей для поиска (перечисление через “;”) ;

  2. Второй аргумент представляет собой массив значений типа Variant. Этот массив должен содержать список образцов поиска, соответствующей списку полей в первом аргументе;

  3. Множество типа TlocateOptions, содержащих два свойства: loCaseInSensetive (при поиске не будет учитываться регистр значений поля) и loPartialKey (разрешается сравнение образца поиска с чатью значения поля).

Обработчик события имеет следующий вид:

TlocateOptions L0;

IBTable1->Locate(“Field”,Edit1->Text, LO<<loPartialKey<<loCaseInsensitive);

В первой строке объявляется локальная переменная LO типа TlocateOptions, которая будет определять условие поиска. Во второй строке вызывается поиск с заданными параметрами в таблице IBTable1;

Механизм поиска LookUp:

Это метод пригодный для поиска нужно информации, но не связанный с перемещением указателя активной записи.

Метод LookUp разыскивает запись, удовлетворяющую указанным критериям и возвращает значение указанного поля. В качестве критериев поиска используются первые два аргумента, аналоичные методу Locate. Третий аргумент представляет собой строку AnsiString. Это строка содержит наименование поля, значение которого необходимо вернуть. При нескольких совпадениях возвращает первое значение;

Edit1->Text = IBTable(“FIO”,Edit1->Text,”Dol”);

В 4 рабораторной работе реализовать по одной таблице процедуры (добавление, изменение, удаление). И Создать отчет через специальный компонент.

Лекция 8 06.04.12

Тема: Создание отчетов при помощи компонентов QuickReport

Создание отчета при помощи мастера

Запускаем на выполнение мастер генерации отчета, выбрав пункт File->Other->Business. На этой вкладке выбираем позицию QuickReportWizard. Н аэкране будет оторажено первое окно мастера (состоит из трех окон). Первое: предназначено для выбора типа отчета. Выбоарть тип отчета можно при помощи комбинированного списке SelectReport, после выбора нажать на кнопку StartWizard. После этого откроется второе окно мастера: предназначено для выбора источника данных. В комбинированном списке Alias Or Directory выбирается база данных или псевдоним. При формировании отчета формируется Форма-контейнер отчета с горизонтальной и вертикальной разметкой, при помощи которой можно размещать все элементы управления отчетом так, как нам нужно. Так выглядит поверхность объекта TQuickRep ( конпонента на форме 2). Именно этот компонент является основой для формирования отчета. В результате работы мастера кроме Формы1 будет задействована так же Форма 2, которая называется Форма-контейнер для отчета, теперь их нужно связать друг с другом. Добавим заголовок Формы 2 в файл с Формой 1. Для этого выдлим форму 1 и в меню file выберем пункт IncludeUnitHdr и из появившегося диалогового окна выберем модуль unit2.h (заголовочный файл формы 2). Для вызова отчета нужно сздать кнопку ( необязательно), в обработчике событий которой напишем следующий вод для вызова формирования отчета:

Form2->QuickRep1->Preview();