Ver Mensaje Individual
  #6  
Antiguo 25-08-2017
tiqui_loquito tiqui_loquito is offline
Miembro
 
Registrado: oct 2013
Posts: 56
Reputación: 11
tiqui_loquito Va por buen camino
Hola ecfecia

Primero que todo, agradezco tu colaboración.

El ejemplo quedo muy claro, pero mi problema es el siguiente

El filtro esta insertado en la columna del advStrinGrid, estilo excel. Cuando le doy click sobre el filtro, el lo carga con las opciones que se han definido en un .txt. Hasta ahí muy bien.

Una vez escojo la opcion, ya sea M o F, se llama al procedimiento siguiente

Código Delphi [-]
procedure TFrmGrilla4505.AdvStgGrid4505FilterSelect(Sender: TObject;
  Column, ItemIndex: Integer; FriendlyName: String;
  var FilterCondition: String);
begin

  if (FilterCondition = 'Clear') or (FilterCondition = '')  then //Si se selecciona clear si le quita el color a la columna
  begin
    FilterCondition := '';
    AdvStgGrid4505.Colors[Column,0] := clNone;
  end
  else//Si se escoge alguna opción le coloca el color verde a la columna
    AdvStgGrid4505.Colors[Column,0] := clGreen;

end;

Cuando sale de la linea
Código Delphi [-]
AdvStgGrid4505.Colors[Column,0] := clGreen;
empieza a operar en la unit AdvGrid; que es propia del delphi; la parte del filtrado, es ahí donde se realiza el filtrado, por lo cual no he podio obtener el número de registros filtrados.

No se si estoy usando mal el procedimiento FilterSelect propio del advstringrid.

Hice una prueba creando un botón y luego de filtar le doy click

Código Delphi [-]
  ShowMessage(Format('Total:%d, Filtrados:%d, Ocultos:%d',
    [FpTemporal.RecordCount, AdvStgGrid4505.RowCount-1,
     FpTemporal.RecordCount-(AdvStgGrid4505.RowCount-1)]));

y me arroja los datos como son, pero la idea no es usar un botón para mostrar el total de filas filtradas, sino que cuando le de click en el icono del filtro, al terminar el filtrado me muestre en una etiqueta el valor que necesito sin necesidad de dar otro click.

No se si he sido claro o me he hecho entender.

O se me acaba de ocurrir, que cuando se ejecuta la linea
Código Delphi [-]
AdvStgGrid4505.Colors[Column,0] := clGreen;
se marque un check de manera automatica, para que me muestre lo que deseo. El lío es en que momento luego de salir de procedure TFrmGrilla4505.AdvStgGrid4505FilterSelect hago la verificación del check.
Responder Con Cita