Crear informe apartir de una select from de sql

864 views
Skip to first unread message

emr

unread,
Jul 16, 2010, 9:10:11 PM7/16/10
to Comunidad de Visual Foxpro en Español
Hola Saludos a todos

Mi pregunta es la siguiente, quisiera saber si alguien me puede decir
como puedo hacer un informe desde el report form apartir de una vista
creada con el select from de sql.

Si alguien tiene un ejemplo se lo agradeceria, pero si me pueden decir
como hacerlo me agradaria mejor.

Saludos y muchas gracias de antemano.

Enrique Martinez
Puerto Vallarta, Jalisco México

Hugo Carlos Aguilar Zapata

unread,
Jul 16, 2010, 9:32:44 PM7/16/10
to publice...@googlegroups.com
mm aver si entendi

Quieres hacer un reporte basado en una consulta ?

en mi caso yo creo un formulario con con un evento que genere la consulta con 2 botones una para imprimir y otro para viasta previa (puedes hacer una clase visual)

En el metodo de consulta pongo el codigo para generarla
en el vento click de los botones pongo
With thisform
      .generaconsulta
      if _tally > 0

      else
             messagebox("no existen datos con ese criterio", 0+16, "Atencion")
      endif
endwith

Hugo Carlos Aguilar Zapata

unread,
Jul 16, 2010, 9:34:07 PM7/16/10
to publice...@googlegroups.com
le di enter otra vez jajaja
va de nuez


mm aver si entendi

Quieres hacer un reporte basado en una consulta ?

en mi caso yo creo un formulario con con un evento que genere la consulta con 2 botones una para imprimir y otro para viasta previa (puedes hacer una clase visual)

En el metodo de consulta pongo el codigo para generarla
en el vento click de los botones pongo
With thisform
      .generaconsulta
      if _tally > 0
             report form reporte.frx to printer prompt preview  && para el boton vista previa

      else
             messagebox("no existen datos con ese criterio", 0+16, "Atencion")
      endif
endwith


Es eso lo que requieres ?

saludos

Enrique Martinez

unread,
Jul 16, 2010, 9:49:29 PM7/16/10
to publice...@googlegroups.com
Mira se como hacer un informe desde una tabla, pero no se como hacerlo desde un select, entonces lo que puedo hacer es una tabla para el informe en la cual grabar los datos que genero dependiendo de los parametros que pido al usuario antes de generar el informe, pero segun he leido es que se puede hacer un informe desde un cursor o select y no se como hacer eso.
 
Voy a intentarlo con lo que me dices y si algo se me complica te estaré molestando.
 
Saludos
 
Y muchas Gracias
 
Enrique Martinez

Enrique Martinez

unread,
Jul 16, 2010, 9:51:23 PM7/16/10
to publice...@googlegroups.com
Ok. creo que esto me aclara mas mis dudas, te agradezco mucho tu ayuda voy a intentar hacerlo.
 
Saludos
 
Enrique

El 16 de julio de 2010 20:46, Roberto Matarrita <rmat...@gmail.com> escribió:
Lo que puedes hacer es insertar los datos en un cursor desde la vista.
Haces el select * from nombre dela vista  into cursor datos
 
Luego generas tu reporte
 
Report form nombre del reporte
 
Ok.

Hugo C.

unread,
Jul 16, 2010, 10:06:43 PM7/16/10
to Comunidad de Visual Foxpro en Español
Inicia con algo asi.

SELECT nombre, direccion ;
FROM clientes;
INTO CURSOR curClientes

SELECT curClientes
CREA REPORT xReport

y en el menu del reporteador.
selecciona QUICK REPORT

Saludos.

Enrique Martinez

unread,
Jul 16, 2010, 10:08:37 PM7/16/10
to publice...@googlegroups.com
Muchas Gracias
 
Saludos

Roberto Matarrita

unread,
Jul 16, 2010, 10:12:13 PM7/16/10
to publice...@googlegroups.com
Es muy facil, mira asi.
Se supone que tu tienes ya las tablas con la información, lo que procedería es hacer el select y que incluyas la informacion en un cursor.
Ejemplo.
 
Select a.cod_empleado, a.nom_empleado, b.fec_pago, b.monto from empleados a, pagos b
where a.cod_empleado = b.cod_empleado
into cursor datos
 
Ya aqui tienes los datos incluidos en el cursor.
Ahora bien se supone que ya tienes el reporte diseñado.
 
Ahora lo que tienes que hacer es invocar el reporte
 
Report form nombre del reporte preview o to print
 
Y asi de esta forma te funcionaria.
 
 
Ok.
 
Roberto
Costa Rica.

Roberto Matarrita

unread,
Jul 16, 2010, 10:14:04 PM7/16/10
to publice...@googlegroups.com
Hecho el cursor creas el reporte
 
CREATE REPORT nombre del reporte FROM nombre del cursos que hiciste.

El 16 de julio de 2010 19:49, Enrique Martinez <emr9...@gmail.com> escribió:

Enrique Martinez

unread,
Jul 16, 2010, 10:17:03 PM7/16/10
to publice...@googlegroups.com
logicamente al diseñar el reporte en lugar de poner el campo de una tabla pongo el campo del cursor verdad ?
 
por que normalmente en el reporte al poner un campo hago esto  (tabla.campo) y ahora sería (cursor.campo) esto es asi ?
 
gracias por tu ayuda.
 
Saludos

Hugo Carlos Aguilar Zapata

unread,
Jul 17, 2010, 12:26:01 AM7/17/10
to publice...@googlegroups.com
asi es
cursor.campo

Hugo C.

unread,
Jul 17, 2010, 12:56:28 AM7/17/10
to Comunidad de Visual Foxpro en Español
asi de simple, solo en VFP.

Saludos.

On 16 jul, 22:26, Hugo Carlos Aguilar Zapata
<hugocarlosagui...@gmail.com> wrote:
> asi es
> cursor.campo
>
> El 16 de julio de 2010 21:17, Enrique Martinez <emr99...@gmail.com>escribió:
>
>
>
> > logicamente al diseñar el reporte en lugar de poner el campo de una tabla
> > pongo el campo del cursor verdad ?
>
> > por que normalmente en el reporte al poner un campo hago esto
> > (tabla.campo) y ahora sería (cursor.campo) esto es asi ?
>
> > gracias por tu ayuda.
>
> > Saludos
>
> > El 16 de julio de 2010 21:12, Roberto Matarrita <rmatar...@gmail.com>escribió:
>
> >  Es muy facil, mira asi.
> >> Se supone que tu tienes ya las tablas con la información, lo que
> >> procedería es hacer el select y que incluyas la informacion en un cursor.
> >> Ejemplo.
>
> >> Select a.cod_empleado, a.nom_empleado, b.fec_pago, b.monto from empleados
> >> a, pagos b
> >> where a.cod_empleado = b.cod_empleado
> >> into cursor datos
>
> >> Ya aqui tienes los datos incluidos en el cursor.
> >> Ahora bien se supone que ya tienes el reporte diseñado.
>
> >> Ahora lo que tienes que hacer es invocar el reporte
>
> >> Report form nombre del reporte preview o to print
>
> >> Y asi de esta forma te funcionaria.
>
> >> Ok.
>
> >> Roberto
> >> Costa Rica.
>
> >> El 16 de julio de 2010 19:49, Enrique Martinez <emr99...@gmail.com>escribió:
>
> >>  Mira se como hacer un informe desde una tabla, pero no se como hacerlo
> >>> desde un select, entonces lo que puedo hacer es una tabla para el informe en
> >>> la cual grabar los datos que genero dependiendo de los parametros que pido
> >>> al usuario antes de generar el informe, pero segun he leido es que se puede
> >>> hacer un informe desde un cursor o select y no se como hacer eso.
>
> >>> Voy a intentarlo con lo que me dices y si algo se me complica te estaré
> >>> molestando.
>
> >>> Saludos
>
> >>> Y muchas Gracias
>
> >>> Enrique Martinez
>
> >>> El 16 de julio de 2010 20:34, Hugo Carlos Aguilar Zapata <
> >>> hugocarlosagui...@gmail.com> escribió:
>
> >>> le di enter otra vez jajaja
> >>>> va de nuez
>
> >>>> mm aver si entendi
>
> >>>> Quieres hacer un reporte basado en una consulta ?
>
> >>>> en mi caso yo creo un formulario con con un evento que genere la
> >>>> consulta con 2 botones una para imprimir y otro para viasta previa (puedes
> >>>> hacer una clase visual)
>
> >>>> En el metodo de consulta pongo el codigo para generarla
> >>>> en el vento click de los botones pongo
> >>>> With thisform
> >>>>       .generaconsulta
> >>>>       if _tally > 0
> >>>>              report form reporte.frx to printer prompt preview  && para
> >>>> el boton vista previa
>
> >>>>       else
> >>>>              messagebox("no existen datos con ese criterio", 0+16,
> >>>> "Atencion")
> >>>>       endif
> >>>> endwith
>
> >>>> Es eso lo que requieres ?
>
> >>>> saludos
>
> >>>> El 16 de julio de 2010 20:32, Hugo Carlos Aguilar Zapata <
> >>>> hugocarlosagui...@gmail.com> escribió:
>
> >>>> mm aver si entendi
>
> >>>>> Quieres hacer un reporte basado en una consulta ?
>
> >>>>> en mi caso yo creo un formulario con con un evento que genere la
> >>>>> consulta con 2 botones una para imprimir y otro para viasta previa (puedes
> >>>>> hacer una clase visual)
>
> >>>>> En el metodo de consulta pongo el codigo para generarla
> >>>>> en el vento click de los botones pongo
> >>>>> With thisform
> >>>>>       .generaconsulta
> >>>>>       if _tally > 0
>
> >>>>>       else
> >>>>>              messagebox("no existen datos con ese criterio", 0+16,
> >>>>> "Atencion")
> >>>>>       endif
> >>>>> endwith
>
> >>>>> El 16 de julio de 2010 20:10, emr <emr99...@gmail.com> escribió:
>
> >>>>> Hola Saludos a todos
>
> >>>>>> Mi pregunta es la siguiente, quisiera saber si alguien me puede decir
> >>>>>> como puedo hacer un informe desde el report form apartir de una vista
> >>>>>> creada con el select from de sql.
>
> >>>>>> Si alguien tiene un ejemplo se lo agradeceria, pero si me pueden decir
> >>>>>> como hacerlo me agradaria mejor.
>
> >>>>>> Saludos y muchas gracias de antemano.
>
> >>>>>> Enrique Martinez
> >>>>>> Puerto Vallarta, Jalisco México- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Enrique Martinez

unread,
Jul 17, 2010, 1:26:32 AM7/17/10
to publice...@googlegroups.com
muchas gracias a todos por su ayuda, estoy por terminar el reporte que necesitaba.
 
como siempre agradecido por sus aportaciones.
 
Saludos
 
Enrique

Walter R. Ojeda Valiente

unread,
Jul 17, 2010, 9:55:32 AM7/17/10
to publice...@googlegroups.com
Hola Enrique

Si escribes:

Resultado = SQLExec(hSQL, "SELECT CLI_CODIGO, CLI_NOMBRE FROM CLIENTES WHERE CLI_NOMBRE >= 'H'", "TEMP")

- El Visual FoxPro creará una tabla llamada TEMP cuyo contenido serán todos los clientes cuyos nombres empiecen con la letra "H" o posterior
- Puedes usar la tabla TEMP exactamente como usarías cualquier otra tabla que hayas creado con el comando CREATE
- A tu tabla le puedes dar cualquier nombre, no debe llamarse necesariamente TEMP
- Puedes poner cualquier condición que desees, si ningún registro cumple con esa condición, la tabla TEMP estará vacía
- La variable "Resultado" se utiliza para saber si la consulta se realizó con éxito o no. Si Resultado > 0, la consulta tuvo éxito aunque TEMP puede estar vacía.
- Si "Resultado" es menor que cero, tuviste algún problema al conectarte a la Base de Datos
- Para saber si al menos un registro cumplió la condición puedes verificar que la función RecCount("TEMP") te devuelva un número mayor que cero.

Saludos.

Walter.



Hotmail: Trusted email with powerful SPAM protection. Sign up now.

Enrique Martinez

unread,
Jul 17, 2010, 11:19:57 PM7/17/10
to publice...@googlegroups.com
Walter te agradezco mucho tu ayuda, me quedó muy claro, voy a ponerlo en practica.
 
Saludos y de nuevo Muchas Gracias
 
Enrique

Reply all
Reply to author
Forward
0 new messages