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

UptoLike

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

45
begin
Table1.Filter:='Category='+''''+Edit8.Text+'''';
Table1.Filtered:=True;
n:=Table1.RecordCount;
Label10.Caption:=
'Количество записей в заданной категории '+inttostr(n);
Table1.First;
maxL:=Table1.FieldByName('Length').AsInteger;
while not Table1.Eof do
begin
Table1.Next;
if maxL<Table1.FieldByName('Length').AsInteger
then maxL:=Table1.FieldByName('Length').AsInteger;
end;
Label11.Caption:=
'Максимальная длина в заданной категории '+inttostr(maxL);
end
else ShowMessage('Не задана категория');
end;
В примере проверяется, ввёл ли пользователь интересующее его название
категории. Если данные не введены, то вычисления не выполняются и выводит-
ся сообщение.
2.7.3. Событие OnfilterRecord
Если ограничения на запись выражений в свойстве Filter не позволяют
задать нужное условие, например сравнить поля таблицы между собой, то мож-
но воспользоваться событием
OnfilterRecord (рис. 15).
procedure TForm1.Table1FilterRecord(DataSet:TDataSet;
var Accept:Boolean);
begin
case RadioGroup1.ItemIndex of
0:Accept:=Table1.FieldByName('OnHand').AsInteger>
Table1.FieldByName('OnOrder').AsInteger;
1:Accept:=Table1.Fields[3].AsInteger<
Table1.Fields[4].AsInteger;
2:Accept:=Table1.FieldValues['OnHand']=
Table1.FieldValues['OnOrder'];
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
table1.Filtered:=true;
end;
  begin
   Table1.Filter:='Category='+''''+Edit8.Text+'''';
   Table1.Filtered:=True;
   n:=Table1.RecordCount;
   Label10.Caption:=
     'Количество записей в заданной категории '+inttostr(n);
   Table1.First;
   maxL:=Table1.FieldByName('Length').AsInteger;
   while not Table1.Eof do
    begin
     Table1.Next;
     if maxL
                   Table1.FieldByName('OnOrder').AsInteger;
  1:Accept:=Table1.Fields[3].AsInteger<
                                Table1.Fields[4].AsInteger;
  2:Accept:=Table1.FieldValues['OnHand']=
                                Table1.FieldValues['OnOrder'];
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 table1.Filtered:=true;
end;


                                     45