Curiously, I did this in a different application, and it works.

Dataset A is filtered, and every time a record is found, it is appended to
dataset B.

The rows on the grid for dataset B populate as they are found, exactly the
desired result.

Obviously, it is extra coding work and overhead.
Dataset B is an internal "memory set", has to bbe cloned from A etc. I was
hoping to get a grid updated using one dataset only.

Appreciate the feedback thank you.




> Hi
>
> the Filter/Filtered/OnFilterRecord set
> works more or less the way you describe.
>
> It seems that this is not the functionality you really need.
>
>  From what you describe I understand (possibly I'm wrong)
> that you want an operation where
>    1. a kind of filtering is applied to the rows of a dataset
>       testing the rows one by one
>    2. when a row passes the test, it is moved to SECOND dataset
>       and displayed to a second grid.
>
> If the above is correct, then you have to code it by yourself.
> The filtering capabilities of the TDataset do not cover that
> kind of functionality.
>



[EMAIL PROTECTED] Ýãñáøå:
>> Delphi 5.
>> Have a TDBGrid attached to a TDataset.
>> The dataset has a custom filter ie
>> procedure TForm1.OnFilterRecord(DataSet: TDataSet; var Accept:
Boolean);
>> ...
>> Sometimes, the filter will only pick out a handful of records from a large
>> dataset. Say 7 records.
>> I notice the grid does not display any entries until all 7 have been found
>> (the grid contains more than 7 rows). To find all 7, the entire file
has
>> been scanned.
>> Is there a way to update the grid immediately: as soon as
OnFilterRecord
>> has returned Accept=true ?
>> That is, the grid would populate rows (plop, plop, plop) as the entire
file was scanned and each of the records found. The user could then
CANCEL
>> when they saw their record come up. Instead of waiting for the entire file
>> to be filtered/scanned.
>> Dataset.Refresh starts the while process over again: that is not what I
want.
>> Feels like I want a "grid.refresh" method: an
>> Application.ProcessMessages
>> sort of thing, to ensure the grid is actually displaying the record which
>> I know has just been accepted in OnFilterRecord.
>> Is there a trick, or am I deluding myself, and should take a different
approach... ?
>> Many thanks in advance.
>




Reply via email to