在NestedDataSet字段上过滤TClientDataSet

时间:2009-01-21 15:01:49

标签: delphi tclientdataset

我正在处理一个小应用程序,这几乎完成了,谢谢 那些在这里帮助我的人。然而,我有最后一项任务。 我需要能够在NestedDataSet字段上过滤TClientDataSet。

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来显示所有有鳟鱼的湖泊 在ClientDataset Species字段中。

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

如何创建过滤器(或其他方法)来实现此目的? 是否有任何第三方组件可以做到这一点?

谢谢,

比尔

1 个答案:

答案 0 :(得分:2)

尝试将OnFilterRecord处理程序添加到主数据集,并在处理程序内的嵌套数据集上使用Locate来查看记录是否存在。