I have a small application I am working on that is almost finished thanks to those who have assisted me here. I have one last task however. I need to be able to Filter a TClientDataSet on a NestedDataSet field.
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
I need to to filter ClientDataset1 to show all lakes that have Brook trout in the ClientDataset Species field.
Filtered:
Nate Pond
Brook trout
Creek chub
Golden shiner
Black Pond
Brook trout
Brown bullhead
Common shiner
How can a filter (or other means) be created to accomplish this? Are there any third-party componets that will do this?
Thanks,
Bill
Try adding an OnFilterRecord handler to the master dataset and use Locate on the nested dataset inside the handler to see if the record exists.
来源:https://stackoverflow.com/questions/465647/filtering-a-tclientdataset-on-a-nesteddataset-field