Фильтрация по составному индексу
Если индекс, по которому необходимо осуществить фильтрацию, состоит из более чем одного поля:
· при использовании метода SetRange значения полей должны перечисляться через запятую внутри квадратных скобок;
· при использовании SetRangeStart, SetRangeEnd и т. д. значение каждого поля должно устанавливаться явно.
Пример. Пусть рассмотренный выше НД отсортирован по индексу, состоящему из полей GrNum и Tovar. Реализуем фильтрацию записей по заданному значению поля GrNum и любому значению поля Tovar. Для простоты проверку правильности ввода номера группы не производим. Обработчик выбора CheckBox1 «Фильтровать» выглядит так:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
GrNumTmp: Integer;
TovarTmp: String;
Begin
if CheckBoxl.Checked then
Begin
GrNumTmp := StrToInt(Edit1.Text);
TovarTmp := Edit2.Text;
{------------фильтрация записей в НД----------}
with Table1 do
Begin
CancelRange;
SetRange([GrNumTmp,TovarTmp], [GrNumTmp,'яя']);
end; {with}