FoxPro/Visual FoxPro - consultas para luego imprimir

 
Vista:

consultas para luego imprimir

Publicado por Edgardo (30 intervenciones) el 04/01/2010 23:58:57
Hola amigos que tal, tengo un problema con unas consulta y para que la tengan clara voy a explicar lo que quiero hacer: tengo una tabla en la cual tengo algunos 10 campos, pero ya tengo
hecho un formulario de consulta, en la cual tengo text1 y text 2, utilizados para poner los rangos de fechas. luego un boton buscar y uno para vista previa. tambien tengo un grid.

al poner el rango de fecha y presionar el boton buscar quiero que el grid me filtre los datos necesarios el cual solo quiero aproximadamente 3 campos, la fecha,nombre y cantidad, el filto lo hice de la siguiente manera:

SELECT PAGO
set filter to ((fecha>=.Text1.value) .and. (fecha<=.Text2.value))
GO TOP
.grdpago.refresh

el grid me muestra los datos ingresados en el rango, pero si me voy mas para arriba del grid tambien me muestra los registros anteriores del rango y si me voy mas para abajo me muestra los registros siguientes basados de la fecha, pero sea como sea me filtra los datos, siendo asi ya tengo diseñado el reporte para los datos necesarios, pero cuando presiono el boton vista previa y me muestra el reporte, me muestra todos los datos de esa tabla no me filtra ningun dato, me muestra desde el primer registro hasta el ultimo.

siendo asi mejor programe en el boton buscar una consulta de la siguiente manera:

vfecha1=.Text1.value
vfecha2=.Text2.value

Select fecha,nombre,cantidad FROM pago WHERE fecha betwee vfecha1 AND vfecha2

y realmente si me funciona y mejor que la filtracion devido a que solo me muestra los datos basados a los rangos de fecha que introduje el los textbox, pero no me los muestra en el grid, si no que me abre un browse, y yo quiero que me los muestra tambien el grid. como para una revision primaria antes de enviarlo al reporte. pero tambien cuando presiono el boton para vista previa tambien me abre la tabla tal como esta, o sea como que no reconoce la consulta,

quiero comentar que en el entorno de datos de el reporte tengo la tabla, y lo que pienso e sque necesito decirle al reporte que los datos no los obtenga de la tabla si no de la consulta realizada y mostrada en el grid del formulario.

tambien hice la misma consulta insertandola en una tabla temporal pero sin efecto alguno, no me lo muestra en el grid y pero en el reporte

realmente agradeceria su ayuda.....

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consultas para luego imprimir

Publicado por es_binario (757 intervenciones) el 05/01/2010 05:46:03
Es mejor con la consulta sql, tienes 2 opciones una usando un cursor y la segunda usando una vista parametrizada.

Bueno si vas a imprimir un reporte, te conviene que uses la vista parametrizada y si nada mas quieres mostrar los datos en pantalla te conviene el cursor, ambos igualemte rapidos.

En cursor

Asi como tienes tu consulta es correcto suponiendo que los datos sean los que busques agragandole un into cursor

Antes que nada te comento que en el evento -- init -- de la grilla pongas esto
This.Recordsource = ""

luego cuando hagas tu consulta seria de esta form
This.Recordsource = "" && esto para que no nos modifique la grilla
Select fecha,nombre,cantidad FROM pago WHERE fecha betwee vfecha1 AND vfecha2 ;
into cursro Mis_Pagos && Aqui los guardamos en el cursor
This.Recordsource = "Mis_Pagos"

Asi de facil

Para la vista parametrizada, pues creas la vista y creas un par de view parameters
uno debe ser Fecha_inicial de tipo Date y la fecha_final tambien de tipo date

en el filtro de tu diseñador de vistas, le pones >= para la inicial y para la final <= claro
y la agregas a tu data enviroment en tu form, y ahi le pones en propiedades de la vista NoDataload en .T.

y la llamas con un
=requery()

de sa forma podras llamar inmediatamente a tu reporte e imprimir un informe de los datos.

Saludos desde Mexico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar