Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problemas con OnfilterRecord (https://www.clubdelphi.com/foros/showthread.php?t=31964)

Besto 23-05-2006 11:53:53

Problemas con OnfilterRecord
 
Hola,
resulta que tengo una aplicación en la que realizo varios filtros y ahora quieren que ponga el número de registros que cumplen las condiciones (son como 10 ò 12 filtros).

Para filtrarlos uso el evento de la base de datos OnFilterRecord y lo que he intentado hacer es que cuando el evento devuelve true entonces sumo 1 a una variable.
El caso es que cuando el número de registros que devuelve es menor de 15 me funciona bien, pero cuando el número es mayor de 15 me devuelve siempre 15 y no sé que es lo que puede pasar.

Si alguien me puede decir como solucionarlo, o alguna forma de saber el número de registros que cumplen los filtros os lo agradecería.

Un saludo.

Al González 23-05-2006 22:55:57

¡Hola a todos!

¿Podrías mostrarnos algo del código?

Un abrazo confundido.

Al González. :)

Besto 24-05-2006 08:23:03

Bueno la cosa sería algo así:

procedure TfrDatosApli.TbEquFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := true;
//pongo las condiciones para el filtro

if Accept then
NumRegistros := NumRegistros + 1;

//NumRegistros es la variable donde voy guardando los registros que cumplen la condición. La inicializo a cero antes de filtrar la tabla.

end;

Lo que necesito saber es cuantos registros cumplen la condición, si hay alguna otra forma que no consuma mucho tiempo tampoco me importa.

karocs 24-05-2006 16:13:00

Saludos

podrías intentar asignar a la variable que te guarda el total de registros la propiedad recordcount del dataset despues que termine de filtrar todos los datos. espero sea lo que necesitas

....

Paoti 24-05-2006 18:12:04

CAMPO CALCULADO Y RECORno
 
¡Hola!

A mi se me ocurre lo siguiente.

En tu dataset, crear un campo calculado. Ejemplo: NumRegistro. (click boton derecho sobre tu dataset, fieldseditor, add field, calculated)

y en el evento OnCalcFields del dataset. asignar esta sentencia.


Código Delphi [-]
procedure TFrmArticulos.TablaCalcFields(DataSet: TDataSet);
begin
TablaFiltradaNumRegistro.asInteger := TablaFiltrada.Recno - 1;
end;


asi, tendrás un campo 2persistente" que te dice en que registro estas, y cuantos son los que tienes.

Besto 25-05-2006 08:14:53

Gracias karocs, pero con el recordcount me devuelve el número total de registros de la tabla y yo necesito el número de registros filtrados.

Respecto a la respuesta de Paoti no entiendo bien lo que me indica, con el recno tendría el puesto del registro en la tabla, pero con eso no puedo saber el número de registros filtrados.

Gracias a los dos. Sigo esperando porque todavía no he encontrado la solución.


La franja horaria es GMT +2. Ahora son las 16:21:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi