Фильтрация TClientDataSet в поле NestedDataSet - PullRequest
3 голосов
/ 21 января 2009

У меня есть небольшое приложение, над которым я работаю, оно почти закончено благодаря те, кто помог мне здесь. Однако у меня есть последнее задание. Мне нужно иметь возможность фильтровать TClientDataSet в поле NestedDataSet.

ClientDataset1
Field0: Name (Lake Name)
ClientDataset2
Field0: Species (Fish Species)

type
  TDataModule1 = class( TDataModule )
    ClientDataSet1: TClientDataSet;
    ClientDataSet2: TClientDataSet;
    ClientDataSet1Name: TStringField;
    ClientDataSet1County: TStringField;
    ClientDataSet1Town: TStringField;
    ClientDataSet1Area: TStringField;
    ClientDataSet1MaximumDepth: TStringField;
    ClientDataSet1MeanDepth: TStringField;
    ClientDataSet1MapFilename: TStringField;
    ClientDataSet1Species: TDataSetField;
    ClientDataSet2Species: TStringField;
    procedure DataModuleDestroy( Sender: TObject );
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Data:
Nate Pond
    Brook trout
    Creek chub
    Golden shiner
Black Pond
    Brook trout
    Brown bullhead
    Common shiner
Lake Placid
    Lake trout
    Smallmouth bass
    Yellow perch

Мне нужно отфильтровать ClientDataset1, чтобы показать все озера, которые имеют форель Брук в поле Виды набора клиентских данных.

Filtered:
Nate Pond
    Brook trout
    Creek chub
    Golden shiner
Black Pond
    Brook trout
    Brown bullhead
    Common shiner

Как можно создать фильтр (или другие средства) для достижения этой цели? Есть какие-нибудь сторонние компоненты, которые будут делать это?

Спасибо

Bill

1 Ответ

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

Попробуйте добавить обработчик OnFilterRecord к основному набору данных и используйте Locate во вложенном наборе данных внутри обработчика, чтобы проверить, существует ли запись.

...