Per il filtro, la guida ti serve solamente per vedere come specificarlo, cioè per conoscere la sintassi di composizione del filtro.
A livello teorico, ti basta sapere che è possibile limitare il numero di record che il ClientDataSet ti restituisce (e che vedi nella griglia) definendo un criterio che va inserito in qualche modo nella proprietà Filter del ClientDataSet. Quando imposti la proprietà Filtered a True, il filtro entra in azione e i record vengono ricaricati e valutati uno per uno per vedere se corrispondono al filtro specificato. Quando devi cambiare il filtro (ad esempio, quando viene selezionata una nuova lettera iniziale), ti basta impostare Filtered a False, modificare la proprietà Filter e successivamente ripristinare Filtered a True per attivare il nuovo criterio di filtraggio record.
In alternativa, è possibile anche servirsi dell'evento OnFilterRecord del ClientDataSet che viene richiamato ogni volta che è necessario filtrare un record, cioè valutare se deve essere utilizzato oppure no; in questo evento, ti basta leggere il valore del campo interessato attraverso il parametro DataSet (che rappresenta il ClientDataSet) e impostare il parametro Accept a True se il record deve essere accettato (visualizzato) oppure False se deve essere scartato.
Un esempio:
codice:
procedure TForm1.ClientDataSet1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
var
s: string;
begin
// Acquisisce il campo NOME del record corrente
s := DataSet.FieldByName('NOME').AsString;
// Accetta il record solo se il NOME inizia per "a"
Accept := (s[1] = 'a');
end;
Ciao!