![]() |
Contar registros en un ClientDataSet con filtro
Hola que tal
Tengo la siguiente duda: Aplico u filtro a mi ClientDataSet y me muestra los registros filtrados, ahora quiero saber cuantos registros me realizo el filtro. He intentado y siempre obtengo el total de registros de mi ClientDataSet mas no los registros que he filtrado. Espero me puedan brindar una luz, gracias |
Hola.
La propiedad RecordCount te devuelve la cantidad total de registros actuales. Pero si lo que deseas es tener la cantidad total de registros, los filtrados y los ocultos podrías hacer: Al filtrar:
Ejemplo; mostrar resultado:
Saludos :) |
Hola ecfisa
Tengo una inquietud A la propiedad Tag le asigno el Total de registros. Por lo tanto, Tag tendría el mismo valor de RecorCount, entonces a la hora de imprimir tendrían los mismos valores y no el total de registros filtrados. |
Esto es lo que estoy realizando
1 Archivos Adjunto(s)
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
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
Me muestra total 7, Filtrados 7, ocultos 0 Adjunto imagenes Espero haberme dado a entender |
Hola.
Cita:
Un ejemplo funcional sobre la tabla country que trae Delphi:
Salida: ![]() Saludos :) |
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
Cuando sale de la linea 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
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 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. |
Hola.
Creo que el problema se produce por que no estas filtrando sobre el TClientDataSet sino mediante el componente TAdvStringGrid que no es nativo de Delphi. No he usado ese componente y lamento no poder ayudarte con él. Lo que se me ocurre es que consultes en los ejemplos del enlace anterior, en el foro de TMS Software, o tal vez algún compañero los haya usado y te pueda orientar al respecto. Saludos :) |
Hola ecfisa
Muchas gracias por tu ayuda. Sí, el filtro se hace en el componente advstringGrid. Voy a buscar una solución para tomar ese filtro que se escoge en el advstringrid y usarlo para realizar el filtro en el TDataClient. Si encuentro una solución la posteo aquí, porque lo más seguro es que este post le sirva a otra persona. Muchas gracias |
Solucionado
Hola ecfisia
Te cuento que puedo realizar lo que necesita. Puse una etiqueta por fuera de mi AdvStringGRid donde voy a poner el total de filas filtradas. Luego de que sale del evento FilterSelect, sigue al evento ColumnFilter del AdvStringGrid al final de este puse la siguiente sentencia y me muestra los datos que necesito. Gracias por tu colaboración. Espero que este hilo pueda servir de guía para alguien. Doy por cerrado este hilo |
Hola.
Me alegra que lo resolvieras ^\||/ y gracias por darnos la solución. Saludos :) |
La franja horaria es GMT +2. Ahora son las 03:07:34. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi