Расположение фильтра обновления набора данных - PullRequest
2 голосов
/ 21 января 2009

Это всегда заставляло меня думать, что это лучший способ сделать следующее ...

с простым от одного до нескольких дБ, когда у вас есть 2 таблицы / сетки на форме и 2-я отфильтрованная по первой.

где лучше всего разместить код фильтра
то есть:

procedure TForm1.tblCustormersAfterScroll(DataSet: TDataSet);
begin
  if tblCustormersCustormerID.AsString <> '' then
   begin
     tblCustormersThings.Filter := 'CustormerID = ' + tblCustormersCustormerID.AsString;
     tblCustormersThings.Filtered := true;
   end;
end;

Кажется, что AfterScroll работает большую часть времени, но некоторые события, например, после публикации, не запускаются. Обычно у меня была бы процедура, чтобы сделать обновление фильтра и поместить его туда, где это кажется необходимым.

Но мне было интересно, есть ли лучший способ, это похоже на то, о чем должен знать дельфи ...

Не думаю, что это имеет значение, но я использую Delphi7 и NexusDB1

1 Ответ

4 голосов
/ 21 января 2009

Вы должны установить MasterSource и свойства мастер-полей на стороне "много".

Это называется отношением Мастер - Детализация, и вам следует обратиться к справке NexusDB за способом создания этого отношения между таблицами.

Если ваша таблица поддерживает индексы, вы можете создать индекс для CustomerID , а также использовать метод SetRange () .

Способ установки фильтра самый медленный.

...