Filtar fecha en power builder

Mi duda es la sgt: tengo un dw la cual contiene código, nombres y apellidos y fecha, la duda es la sgt e filtrado por código y nombres todo ok, el detalle es como hago para filtrar por una fecha especifica por medio de un sle_buscar ingreso la fecha 15/12/2009 y al darle clic a un rb_fecha o un botón buscar me de el dato en el dw de esa fecha hasta el momento e buscado y no encuentro solución alguna si alguien pudiera seria de gran ayuda. Gracias de antemano expertos...
Y otra preguntita coo se haría con un datepicker al seleccionar la fecha me de el dato en el dw bueno espero algunas sugerencias

1 respuesta

Respuesta
1
Si el formato de fecha ingresado en un sle_buscar es: 15/12/2009 (es decir: dia/mes/año), entonces solamente tienes que tener en cuenta el formato del campo [fecha] del datawindow.
*Vas al datawindow, te ubicas en el campo [fecha] y en sus propiedades del datawindow, haces click en la pestaña [edit], luego en [style type] elijes [editmask] y mas abajo en la casilla [Mask] digitas el formato siguiente: dd/mm/yyyy (este formato hace que la fecha del datawindow se presente como: dia/mes/año), cierras el datawindow.
*Ahora te ubicas en el window que contiene el datawindow control.
*Para filtrar los registros por fecha solemente tienes que comparar la fecha ingresada en el sle_buscar y la fecha del datawindow.
*Mediante un commandbutton llamado cb_buscar digitas lo siguiente:
//evento clicked del commandbutton cb_buscar
string ls_m //variable que almacena el campo de comparacion
integer li_buscar //variable que almacena los registros encontrados de la comparacion
ls_m="" //limpiamos la variable
li_buscar=0 //inicializamos a cero la variable
//convertimos el campo fecha del datawindow a string y le damos un formato
ls_m="string(fecha,'dd/mm/yyyy')='"+sle_buscar.text+"'"
//hacemos una busqueda desde el primer hasta el ultimo registro del datawindow
li_buscar=dw_1.find(ls_m,1,dw_1.rowcount())
//hacemos un scroll de todos los registros encontrados
dw_1.scrolltorow(li_buscar)
//filtramos los registros que coinciden
dw_1.setfilter(ls_m)
dw_1.filter()
//ordenamos los registros por appellidos o el campo que quiera
dw_1setsort("apellidos a")
dw_1.sort()
*Con el control datapicker es algo similar (fijate que tipo de dato devuelve el control datapicker si es date o datetime), ten en cuenta que lo unico que tienes que hacer es convertir el campo [fecha] del datawindow a string y darle un formato, ya que dependiendo de la base de datos que uses, cada motor tiene su propio formato de almacenamiento de las fecha. 
Si utilizas un Datapicker entonces seria algo asi:
ls_m="string(fecha,'dd/mm/yyyy')='"+string(dp_1,'dd/mm/yyyy')+"'"
y todo lo demas seria igual.
*Porque convertir la fecha a string y darle un formato, simplemente porque el sle_buscar es de tipo string y el campo fecha del datawindow tiene el tipo date o datetime.
Excelente tu respuesta me sirvió de gran ayuda.
Había buscado por doquier y naa ojala la hubiese publicado 2 semanas antes ya que tenia un parcial en la universidad y salí jalado justo por esto jajajaja...
Bueno experto gracias se agradece el interés de tu parte bay.
Otra duda te preguntare gracias o si tas interesado te pasaría mi examen que me toco a ver si le encuentras una solución.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas