Ver Mensaje Individual
  #4  
Antiguo 28-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
karocs:

La costumbre en los foros es tratar los temas en los mismos foros con el fin de que todos puedan beneficiarse así que traslado aquí tu mensaje privado.


Cita:
Empezado por karocs en mensaje privado
Hola roman gracias por contestar... si no puedo controlar el evento OnFilterRecord , puedo de alguna forma en el mismo evento filtar por mas de un parametro o buscar un registro en especifico, te lo agradeceria inmensamente y con extrema urgencia
Me da la impresión de que lo que necesitas sí es el evento OnFilterRecord sólo que te falta entender un poco su funcionamiento.

El evento está diseñado precisamente para manejar filtrados más complejos que una simple comparación con un valor.

Cuando el DataSet requiere mostrar un registro en un control "data aware" (por ejemplo porque te estás desplazando en un DBGrid) mira primero si está asignado el evento OnFilterRecord. De ser así, él- el DataSet - es quien hace la llamada al evento pasando la variable Accept como parámetro. En ese momento entonces es cuando se ejecuta el código que tu hayas escrito. Al finalizar la llamada el DataSet examina el valor del parámetro Accept. Si Accept es true entonces muestra el registro y en caso contrario se lo salta.

En el código del evento debes entonces determinar- por los medios que sea -si se muestra o no el registro y asignar a Accept el valor true o false según sea el caso.

Por poner un ejemplo, suponte que tienes una tabla de clientes con dos campos, "deuda" y "fecha_deuda" y quieres mostrar únicamente los registros con "fecha_deuda" de más de 30 días y deuda mayor que 500. En el evento OnFilterRecord pondrías:

Código Delphi [-]
Accept :=
  (DaysBetween(DataSet['fecha_deuda'], Now) > 30) and
  (DataSet['deuda'] > 500);

De esta forma estás filtrando por más de un parámetro.

Ahora bien, en tu pregunta mencionas

"puedo de alguna forma en el mismo evento filtar por mas de un parametro o buscar un registro en especifico"

Nota que filtrar y buscar son dos cosas distintas. Si lo que deseas es buscar un registro entonces puedes usar métodos como Locate.

// Saludos
Responder Con Cita