Reporte a PDF con FXRX

160 views
Skip to first unread message

Roxana

unread,
Apr 2, 2020, 8:45:20 AM4/2/20
to Comunidad de Visual Foxpro en Español
Hola Colegas! Los molesto porque tengo un problema puntual con un reporte usando FXRX version 14.3
Tengo la versión paga y la uso para muchos reportes del sistema. En esta oportunidad necesito usarla con un reporte de Orden de Pago que es un reporte complejo.
El mismo esta armado con tres tablas. La tabla cabecera llamada Pagos y la tabla Pagos_Fa que son las facturas que se pagaron con ese pago (Acá puede haber N registros) y la tabla Pagos_va que son los valores que se usaron para los pagos. También N registros.
Es decir que el reporte tiene una cabecera y dos detalles.

El reporte en fox se genera perfectamente. Pero cuando lo genero con FXRX a PDF me pone solo un registros de las tablas de N registros relacionadas...
Es decir que si el pago numero 1 pago 5 facturas con 3 medios de pago, solo imprime la primera factura y el primer medio de pago.
Espero que se entienda.

Si alguien me puede tirar alguna pista, desde ya, estoy muy agradecida.


Este es el codigo del XFRX:
  
local loSession, lnRetval
loSession = XFRX('XFRX#INIT')
lnStatus  = loSession.SetParams('c:\auxi\orden.pdf', '', .F.,;
'', .T., .F., 'PDF')
if lnStatus = 0
    loSession.ProcessReport('reciboPago.frx')
    loSession.Finalize()
ELSE
* handle error
ENDIF
lnStatus = 0

Zarlu

unread,
Apr 2, 2020, 9:17:14 AM4/2/20
to Comunidad de Visual Foxpro en Español
Buenos días Roxana!

Apoyame con unas dudas para entender el contexto.

- Dices que en FOX se genera bien el reporte. Hablas del reporteador o de un formulario donde visualizas?
Osea ves bien el reporte en la vista previa?
-Estas usando Set Relación para "condicionar/agrupar" los registros secundarios  a  la tabla primaria (tabla "pagos" deduzco)

Si el reporte se visualiza bien en la vista previa la conversión a PDF supongo debería mostrar lo mismo

Puntualizo...éste reporte "reciboPago.frx" se ve bien en vista previa de FOX??

Si pudieras subir una imagen de la vista previa y/o del formulario que arroja el resultado de lo que requieres

suerte
zarlu
Chetumal, Quintana Roo, México




ggcagnola gmail

unread,
Apr 2, 2020, 9:18:49 AM4/2/20
to publice...@googlegroups.com

porque no armás UNA sola tabla con todos los datos de todas las tablas?

te ahorrás miles de problemas, solo tenés una tabla para "reportear"...

ni te cuento que fácil resulta de esa forma armar los grupos en el diseñador de reportes...

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/991cc353-907a-4cec-bd86-fd4f150f812f%40googlegroups.com.

Roxana Demattei

unread,
Apr 2, 2020, 9:37:30 AM4/2/20
to publice...@googlegroups.com

Hola! Gracias por contestar!

Antes de generar el reporte en PDF envió el reporte al previo de fox:

report form reciboPago2.frx for idPago = pIdPago preview

 

Y muestra el reporte perfecto.

Adjunto la imagen del reporte bien y mal.

 

Estas son las tablas relacionadas:

select proveedores

set order to tag IDPROVEEDO

 

select pago_co

set order to tag idpago

*SET FILTER TO idPago = pIdPago

 

select  pago_va

SET ORDER TO tag idpago

*SET FILTER TO idPago = pIdPago

 

select pago

set order to tag idPago

set relation to

set relation to idPago into pago_co additive

set relation to idPago into pago_va additive

set relation to idcodprove into proveedores ADDITIVE

 

select  pago

SET FILTER TO idPago = pIdPago

*report form reciboPago2.frx for idPago = pIdVenta preview

select pago

report form reciboPago2.frx  preview

*** Filtro por el ID de pago que quiero que saque el reporte y con el reporte de fox funciona re bien. El problema es al generar el PDF.

 

Gracias!

 

Ing. Roxana Demattei

--

Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/PbDRi8D-Mas/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/5d2d52c0-d998-473f-ad10-7035ade8e646%40googlegroups.com.

PdfGeneradodesdeXFRX.png
OrdenPagoDesdeReporteFoxComun.png

Roxana Demattei

unread,
Apr 2, 2020, 9:40:46 AM4/2/20
to publice...@googlegroups.com

La idea es que el mismo reporte me sirva en todos lados, si lo paso a una tabla solamente implica un montón de lógica para planchar las tres tablas en una sola…

Vos ya tenes algo armado para eso?

La verdad no entiendo bien como se vería el porte con todos los datos en una sola tabla. Si tenes un ejemplo te lo súper agradezco.

 

Saludos,

 

Ing. Roxana Demattei

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/PbDRi8D-Mas/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/794836fb-60b9-69a5-45b4-a3ee63a47e83%40gmail.com.

Zarlu

unread,
Apr 2, 2020, 2:21:49 PM4/2/20
to Comunidad de Visual Foxpro en Español
Qué tal Roxana!

Mira éste código y los imágenes que te adjunto

USE orders.dbf ALIAS orders IN 0
USE facts.dbf ALIAS facts IN 0
SELECT facts
SET ORDER TO TAG dato
SELECT orders
SET RELATION TO dato INTO facts
SET SKIP TO facts


local loSession, lnRetval
loSession = XFRX('XFRX#INIT')
lnStatus  = loSession.SetParams('orders.pdf', '', .F.,;

'', .T., .F., 'PDF')
if lnStatus = 0
    loSession.ProcessReport('orders.frx',"orders.dato=1")

    loSession.Finalize()
ELSE
* handle error
ENDIF
lnStatus = 0

Suerte
orden1.png
orden2.png

Marcelo Moreno

unread,
Apr 2, 2020, 2:52:38 PM4/2/20
to publice...@googlegroups.com
dale distinto nombre a cada uno de los pdf orden1, orden2, orden3

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Roxana Demattei

unread,
Apr 2, 2020, 3:28:27 PM4/2/20
to publice...@googlegroups.com

Gracias a todos!

Estoy muy cerca… me falta armar la banda de los reportes ya que no es como poner los totales de cada sección.

Me re imprime la línea del primer total en todas….

 

Si me pueden ayudar con esto último… Se lo agradezco..

 

Saludos,

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Marcelo Moreno


Enviado el: jueves, 2 de abril de 2020 15:52
Para: publice...@googlegroups.com

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/PbDRi8D-Mas/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAMv-BXcik%3D2cSLfzKnVib%3Dgo6k1T-yPwMsH-iM1cTOT6Yj6Atw%40mail.gmail.com.

Zarlu

unread,
Apr 2, 2020, 3:47:10 PM4/2/20
to Comunidad de Visual Foxpro en Español
Roxana!

Lo que te mandé funciona para VFP y XFRX
Debe funcionar sin que tengas que modificar tu reporte actual.
Las imágenes que te mande antes son PDF generados con XFRX.
Si te fijas se imprimen todas las facturas de las orden 1 y todas las facturas de la orden 2

Para VfP el complemento de código sería...(Que es algo que ya tienes)
SELECT orders
SET FILTER TO dato=2
REPORT FORM orders.frx TO PRINTER PROMPT  PREVIEW
SET FILTER TO

La imagen que adjunto es la vista previa de VFP
En mi primer mensaje te comenté "...Si el reporte se visualiza bien en la vista previa la conversión a PDF supongo debería mostrar lo mismo"
Osea que al reporte no debería cambiar en  nada.

Lo único que faltaba en tu código es la relación de UNO A VARIOS (Set Skip To)
reporvfp.png

Roxana Demattei

unread,
Apr 2, 2020, 5:57:58 PM4/2/20
to publice...@googlegroups.com

No funciono de esta manera porque yo tengo dos tablas  hijas… y por pantalla sale bien pero cuando mandas al XFRX nop.

Finalmente opte por la opción de planchar los datos en un tabla y ajustar el reporte con un solo detalle. La tabla la creo cargando los registros A y los Registros B. Luego ordeno por este campo y así primero se imprimen las facturas pagadas(Tipo A) y después los valores de pago (Tipo B)

Es una solución un poco “Parche”. En verdad debió haber andado con el reporte que tiene las 3 tablas relacionadas y funciona perfecto. Pero por alguna razón el FXRX pierde las relaciones…

 

Gracias a todos por ayudarme.

 

Saludos,

--

Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/PbDRi8D-Mas/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Zarlu

unread,
Apr 2, 2020, 7:11:48 PM4/2/20
to Comunidad de Visual Foxpro en Español
Hola Roxana!

Que bueno que de una u otra manera ya lo solucionaste.
Aquí te dejo el código para 2 tablas hijas por si deseas descifrar el funcionamiento con XFRX
(La que te había pasado era con una para que lo adaptaras)

USE orders.dbf ALIAS orders IN 0
USE facts.dbf ALIAS facts IN 0
USE medio.dbf ALIAS medio IN 0
SELECT medio

SET ORDER TO TAG dato
SELECT facts
SET ORDER TO TAG dato
SELECT orders
SET RELATION TO dato INTO facts, dato INTO medio
SET SKIP TO facts,medio

Toma nota de esto:
(XFRX versión xfrx191-9. VFP9)
2hijas.png

Roxana Demattei

unread,
Apr 2, 2020, 7:53:16 PM4/2/20
to publice...@googlegroups.com
Lo probé con las dos tablas según tu ejemplo adaptado. Imprime bien el reporte desde Fox, pero no lo genera bien el FXRX. Quizá sea mi versión? Tengo la 14.
Muchas gracias por todo!

Saludos,

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/PbDRi8D-Mas/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages