Цель работы: Приобретение практических навыков создания программных приложений с использованием баз данных. Ознакомиться с фильтрацией записей.
Краткие сведения:
Фильтрацию можно отнести к одному из методов поиска. Потому что фильтрация – выбор из набора данных только тех записей, которые удовлетворяют конкретным условиям. Например, можно указать отображение только записей, в которых поле «Фамилия » содержит значение «Иванов ». Применение фильтра к набору данных определяется свойством Filtered логического типа. Значение True определяет применение в качестве фильтра выражения, указанного в свойстве Filter :
Поле [Оператор сравнения] ‘Значение’
Например, если отобразить все записи, в которых поле «Фамилия » равно значению «Сидоров», то нужно указать:
Table1.Filter:=’Фамилия=’’Сидоров’’’;
Фильтрация записей:
1. Открыть приложение.
2. Добавить на форму компоненту TEdit .
3. Текст процедуры для события OnChange :
begin
Table1.Filtered:=true; // включение фильтрации
Table1.Filter:='SNom = ‘+Edit2.Text;
// задает критерий фильтрации
end;
4. Этот способ фильтрации пригоден только для числовых полей.
5. При применении фильтра можно указать свойства:
a. foCaseInsensitive – нечувствительность к регистру букв;
b. foNoPartialCompare – поиск на точное соответствие.
6. Для фильтрации текстовых полей, например по полю «Фамилия» необходимо изменить текст процедуры.
procedure TForm1.Edit2Change(Sender: TObject);
begin
Table1.Filtered:=true;
Table1.Filter:='SFio='+#39+Edit2.Text+'*'+#39;
end;
7. В этом случае фильтрация проходит по текстовому полю. Знак «#39» означает знак апострофа, так как ввод фамилии при использовании фильтра происходит в апострофах. А символ «*» означает любые символы, то есть при вводе только одной буквы на экране появятся все фамилии начинающиеся на букву.
Задание:Организовать фильтрацию записей таблицы по выражению, которое задает пользователь.
Вариант 1.
Автоматизация складского учета в продуктовом магазине. Структура описания базы данных sklad
Назначение поля Наименование товара Единица измерения Цена за ед. изм. (в руб.) Остаток на начало дня Поступило на склад за день Отгружено со склада за день Вариант 2.
Автоматизация задач кадрового учета работников предприятия. В базе данных kadr имеются сведения о работниках предприятия. Структура записи базы данных Назначение поля Табельный номер работника Фамилия имя отчество Дата рождения Образование Специальность Должность Вариант 3.
Автоматизация услуг туристического агентства. Назначение поля Наименования маршрута Длительность (в днях) Дата начала маршрута Вид транспорта Условия проживания Условия питания Цена за одну путевку (в руб) Количество путевок
Вариант 4.
Автоматизация бронирования мест в кассах Аэрофлота.В базе данных Bilet имеются сведения о рейсах Аэрофлота. Назначение поля Номер рейса Пункт вылета Пункт назначения Дата вылета Тип самолета Количество свободных мест в бизнес классе Цена билета в бизнес классе (в руб) Количество свободных мест в I классе Цена билета в I классе (в руб) Вариант 5.
Автоматизация контроля за ходом выполнения графика работ. Назначение поля Наименование работы по плану Ответственный исполнитель Дата начала по плану Дата завершения по плану Дата начала по факту Дата завершения по факту Отставание в днях (опережения в днях) (+/-) от плана D N 2 Справка о незавершенных работах на начало (дату). Вариант 6.
Создание информационно-справочной системы "Налогоплательщик. Структура записи базы данных Doxod Назначение поля Ф.И.О. налогоплательщика
Адрес местожительства Дата рождения Место получения дохода Сумма дохода Сумма учитываемых налогов Вариант 8.