Reporte con tablas temporales

235 views
Skip to first unread message

Arturo Ramos

unread,
Nov 19, 2013, 9:29:38 PM11/19/13
to publice...@googlegroups.com
Hola grupo,

Quiero hacer un reporte de UNO-MUCHOS con tablas temporales, estas tablas tienen sus datos de unas consultas hechas a una base de datos de Firebird, simplificando el código es algo más o menos así:

nIDVenta = Ventas.id

TEXT TO cSQLCommand TEXTMERGE NOSHOW PRETEXT 7
SELECT * FROM v_ventas WHERE id = ?nIDVenta
ENDTEXT 

cmd = ThisForm.oSQL.Ejecutar(cSQLCommand, "curVentas")
SELECT curVentas
INDEX ON id TAG id

TEXT TO cSQLCommand TEXTMERGE NOSHOW PRETEXT 7
SELECT * FROM vendidos WHERE id_venta = ?nIDVenta
ENDTEXT 
cmd = ThisForm.oSQL.Ejecutar(cSQLCommand, "curVendidos")
SELECT curVendidos
INDEX ON id_venta TAG id_venta

REPORT FORM pedido.frx PREVIEW 


La tabla "curVentas" es la cabecera de la venta y la tabla "curVendidos" son los productos de la venta relacionados a la venta con el campo id_venta.

Al mandar el reporte o me manda sólo uno de los productos de la venta o me manda el primero muchas veces.

¿Cómo manjar los datos antes de mandar el reporte?

Saludos.

Arturo Ramos
Cancún, México.

Francisco ji

unread,
Nov 19, 2013, 10:24:46 PM11/19/13
to publice...@googlegroups.com
Que tal Arturo, puedes usar algo como esto :


nIDVenta = Ventas.id

TEXT TO cSQLCommand TEXTMERGE NOSHOW PRETEXT 7
SELECT A.*,B.*
        FROM v_ventas A
        JOIN Vendidos B
            ON A.Id=B.Id_Ventas
        WHERE A.id = ?nIDVenta
ENDTEXT
cmd = ThisForm.oSQL.Ejecutar(cSQLCommand, "curVendidos")
SELECT curVendidos
REPORT FORM pedido.frx PREVIEW 

Espero te ayude, suerte!.




Date: Tue, 19 Nov 2013 18:29:38 -0800
From: irc...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Reporte con tablas temporales

Arturo Ramos

unread,
Nov 19, 2013, 11:14:11 PM11/19/13
to publice...@googlegroups.com, fiba...@hotmail.com
Y sólo manejar una tabla, ok... gracias Francisco eso funcionará seguro.

Arturo Ramos
Cancún, México.

Francisco ji

unread,
Nov 22, 2013, 12:01:37 AM11/22/13
to publice...@googlegroups.com
Prueba Arturo, y reportanos como te fue , saludos.


Date: Tue, 19 Nov 2013 20:14:11 -0800
From: irc...@gmail.com
To: publice...@googlegroups.com
CC: fiba...@hotmail.com
Subject: Re: [vfp] Reporte con tablas temporales

Arturo Ramos

unread,
Nov 26, 2013, 3:37:21 PM11/26/13
to publice...@googlegroups.com, fiba...@hotmail.com
Si, apliqué esta forma al reporte y a todos los reportes similares y ya funcionan bien, me quedo con las ganas de lo que quería hacer pero el chiste es que funcione, gracias por la ayuda francisco.

Arturo Ramos
Cancún, Mésico

Julián May

unread,
Nov 26, 2013, 4:11:42 PM11/26/13
to publice...@googlegroups.com
Hola Arturo dentro de la vista que realizas en FIREBIRD puedes hacer el join y ya solo ejecutas la consulta en un cursor y llamas a tu reporte. 

Jorge Kiernan

unread,
Nov 26, 2013, 5:13:52 PM11/26/13
to publicesvfoxpro
la ventaja adicional de un único cursor, es que con esa filosofía podes ir planteando que la salida de datos no necesariamente es el informe, sino que con lo mismo podes dejar una planilla excel, que muchas veces es preferido por el usuario.

Arturo Ramos

unread,
Dec 3, 2013, 6:41:57 PM12/3/13
to publice...@googlegroups.com
Julián y @jkiernan,

Gracias por sus comentarios, finalmente creo que mi problema no es en la consulta o la forma de mostrar el resultado, continúo con el mismo problema al generar el reporte aun usando una sola tabla para toda la salida, la parte de detalle en ocasiones es un sólo detalle y sale hasta 10-20 veces el mismo, en otras son 5 o 6 productos en el detalle y sólo muestra uno, no es siempre, la mayoría de las veces sale el reporte como debe de ser. No importa si se hace desde una u otra máquina, incluso el mismo detalle en sucursales diferentes. El usuario cierra la ventana, abre de nuevo y manda a imprimir y ya sale bien.

¿Dónde podrá esta el problema?

Saludos.

Arturo Ramos
Cancún, México.

GeoSys Diseño de Software

unread,
Dec 3, 2013, 6:48:41 PM12/3/13
to Comunidad de Visual Foxpro en Español
Antes de enviar tu reporte ponle GOTO TOP para que te refresque el cursor.

SELECT curVendidos
INDEX ON id_venta TAG id_venta

GOTO TOP

REPORT FORM pedido.frx PREVIEW 

Saludos
Anthony Contreras Peralta
Costa Rica.

Arturo Ramos

unread,
Dec 3, 2013, 7:04:26 PM12/3/13
to publice...@googlegroups.com
Antony,

Ya tengo un GO TOP ejecutando la consulta con el JOIN que queda en el cursor curVenta

SELECT curVenta
GO TOP

REPORT FORM pedido.frx PREVIEW


Saludos
Arturo Ramos
Cancún, México.

GeoSys Diseño de Software

unread,
Dec 3, 2013, 7:08:06 PM12/3/13
to Comunidad de Visual Foxpro en Español
Les has dado un BROWSE para que recorrer por los registros a ver si todo está bien.

Eso es raro.

ZeRoberto

unread,
Dec 3, 2013, 7:15:19 PM12/3/13
to publicesvfoxpro
Seguramente debes tener un grid activo que te quita el SELECT() desactivalo hasta imprimir y luego lo activas. 
El problema puede ser que el grid activa otra tabla con mas registros y tu reporte navega esa tabla y imprime los datos de tu cursor.

Saludos

Arturo Ramos

unread,
Dec 3, 2013, 7:20:39 PM12/3/13
to publice...@googlegroups.com
Si le doy BROWSE lo muestra bien, el problema es que no es siempre, incluso elimino el cursor después de imprimir con USE IN SELECT("curVenta") para evitar que se este montando o algo así.

A menos de que sea cosa de foxypreviewer !!

Igual lo veo muy raro.

Saludos.

Arturo Ramos
Cancún, México.

GeoSys Diseño de Software

unread,
Dec 3, 2013, 7:42:32 PM12/3/13
to Comunidad de Visual Foxpro en Español
Bueno Arturo si es el Foxy entonces puedes desactivarlo y luego volverlo a activar para probar solamente a ver si te lo hace igual o no.

Antes de lanzar el reporte:
SET REPORTBEHAVIOR 80 && Los reportes se ejecutan sin el Foxy.

Luego de reportar lo vuelves a activar:
SET REPORTBEHAVIOR 90 && Los reportes se ejecutan con Foxy.

Hay que dar con el problema a ver que pueda ser...


Arturo Ramos

unread,
Dec 3, 2013, 7:57:01 PM12/3/13
to publice...@googlegroups.com
Ok, listo, trabajaran con el foxypreviewer desactivado todo el día de mañana a ver que pasa, mantengo informado.

Gracias por tu ayuda.

Saludos.

Arturo Ramos
Cancún, México.

Miguel Canchas

unread,
Dec 4, 2013, 8:15:29 AM12/4/13
to publice...@googlegroups.com

Manda tu reporte y una tabla..

 

 

MK

Arturo Ramos

unread,
Dec 4, 2013, 7:13:44 PM12/4/13
to publice...@googlegroups.com, mcan...@ximesa.com
Va... es un zip.

Gracias.

Arturo Ramos
Cancún, México.
nota.zi(p)
Reply all
Reply to author
Forward
0 new messages