ВУЗ:
Составители:
Рубрика:
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 maxLTable1.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
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »