Cuando se escoge el filtro llama a la función FilterSelect la cual esta en el advGrid.
Estoy usando un advStrinGrid, una DataSetClient asociado a SetProvider
Código Delphi
[-]
procedure TFrmGrilla4505.AdvStgGrid4505FilterSelect(Sender: TObject;
Column, ItemIndex: Integer; FriendlyName: String;
var FilterCondition: String);
begin
if (FilterCondition = 'Clear') or (FilterCondition = '') then begin
FilterCondition := '';
AdvStgGrid4505.Colors[Column,0] := clNone;
end
else begin
FpTemporal.Filtered := False;
FpTemporal.Tag := FpTemporal.RecordCount;
AdvStgGrid4505.Colors[Column,0] := clGreen;
FpTemporal.Filtered := True;
end;
end;
Aquí me realiza correctamente el filtrado (escojo F o M). Hay 7 registros, si se escoge F me trae 4 registros, si se escoge M trae 3.
Pero a la hora de realizar
Código Delphi
[-]procedure TFrmGrilla4505.Button1Click(Sender: TObject);
begin
FpTemporal.Filtered := True;
ShowMessage(Format('Total:%d, Filtrados:%d, Ocultos:%d',
[FpTemporal.Tag, FpTemporal.RecordCount,
FpTemporal.Tag-FpTemporal.RecordCount]));
end;
Me muestra total 7, Filtrados 7, ocultos 0
Adjunto imagenes
Espero haberme dado a entender