Разработка приложений баз данных в Delphi. Шейкер Т.Д. - 44 стр.

UptoLike

Составители: 

44
Если поле, по которому выполняется фильтрация, содержит дату, то при
задании условия в Инспекторе объектов дату надо записать в апострофах. При
выполнении фильтрации программно с датой надо работать как с полем стро-
кового типа:
Table1.Filter:='Card_Exp <'+ ''''+(Edit4.Text)+'''';
Можно, например, использовать функцию QuotedStr:
Table1.Filter:='Card_Exp<'+ Quotedstr(Edit4.Text);
2.7.2. Выполнение вычислений
Часто требуется обработать данные по заданному полю: найти сумму,
среднее, минимальное, максимальное значения и т.п. Причем при выполнении
действий требуется учитывать данные не всех записей, а только тех, которые
удовлетворяют некоторому условию. Организовать вычисления можно сле-
дующими способами:
1) в цикле перемещения по всем записям проверять условие и, если усло
-
вие верно, выполнять вычисления;
2) отфильтровать данные по заданному условию, а затем выполнить тре-
буемые действия для отфильтрованного набора записей.
В отфильтрованном наборе данных (
Filtered равно True) методы
First, Last, Next, Prior учитывают критерий фильтрации, т.е. задают пере-
мещение в отобранных записях. Свойство
RecordCount компонента Table со-
держит количество записей в отфильтрованном наборе. Ниже приведён пример
работы с данными по методу 2:
выполнена фильтрация по полю
Category;
определено количество записей в отфильтрованном наборе;
найдено максимальное значение поля
Length в отфильтрованном на-
боре.
procedure TForm1.Button8Click(Sender:TObject);
var n, maxL:integer;
begin
Table1.Filtered:=False;
if Edit8.Text<>'' then
     Если поле, по которому выполняется фильтрация, содержит дату, то при
задании условия в Инспекторе объектов дату надо записать в апострофах. При
выполнении фильтрации программно с датой надо работать как с полем стро-
кового типа:
     Table1.Filter:='Card_Exp <'+ ''''+(Edit4.Text)+'''';
     Можно, например, использовать функцию QuotedStr:
     Table1.Filter:='Card_Exp<'+ Quotedstr(Edit4.Text);

     2.7.2. Выполнение вычислений
     Часто требуется обработать данные по заданному полю: найти сумму,
среднее, минимальное, максимальное значения и т.п. Причем при выполнении
действий требуется учитывать данные не всех записей, а только тех, которые
удовлетворяют некоторому условию. Организовать вычисления можно сле-
дующими способами:
     1) в цикле перемещения по всем записям проверять условие и, если усло-
        вие верно, выполнять вычисления;
     2) отфильтровать данные по заданному условию, а затем выполнить тре-
        буемые действия для отфильтрованного набора записей.
     В отфильтрованном наборе данных (Filtered равно True) методы
First, Last, Next, Prior учитывают критерий фильтрации, т.е. задают пере-
мещение в отобранных записях. Свойство RecordCount компонента Table со-
держит количество записей в отфильтрованном наборе. Ниже приведён пример
работы с данными по методу 2:
     − выполнена фильтрация по полю Category;
     − определено количество записей в отфильтрованном наборе;
     − найдено максимальное значение поля Length в отфильтрованном на-
        боре.
procedure TForm1.Button8Click(Sender:TObject);
var n, maxL:integer;
begin
 Table1.Filtered:=False;
 if Edit8.Text<>'' then

                                    44