Reporte con 2 tablas de detalle.

4,063 views
Skip to first unread message

mpulla

unread,
Sep 15, 2011, 9:20:05 AM9/15/11
to Comunidad de Visual Foxpro en Español
Buen dia.

Tengo la necesidad de hacer un porte que con 2 tablas independientes
para el detalle algo asi;

Detalle1
Ventas.
Nro. Documento Cantidad Valor
1 Facturacion 120 1452.00
X XXXXX
X XXXXX
Suman XXXX XXXXXX

Detalle2
Recaudacion por ventas.
Nro. Documento Cantidad A cobrar
1 Cheque 10 1030.00
X XXX X XXX.XX
Sumna: XXX XXX.XX

Se que con VFP 9.0 se puede, si me dan una guia o un ejemplo me
ayudaria mucho.

Saludos.
Mauricio

elkin dario uribe torres

unread,
Sep 15, 2011, 9:51:02 AM9/15/11
to publice...@googlegroups.com
Buenos dias Mauricio

Si lo que buscas es parecido a la imagen adjunta me dices y te explico como lo logre que a lo mejor no es la mejor forma pero si funciona.

Saludos


Elkin Uribe
Medellin - Colombia
extracto.JPG

mpulla

unread,
Sep 15, 2011, 10:11:49 AM9/15/11
to Comunidad de Visual Foxpro en Español
Correcto Elkin es lo que necesito..

Por favor explicame...

Gracias.
Mauricio.

On 15 sep, 08:51, elkin dario uribe torres <eduribe2...@gmail.com>
wrote:
> Buenos dias Mauricio
>
> Si lo que buscas es parecido a la imagen adjunta me dices y te explico como
> lo logre que a lo mejor no es la mejor forma pero si funciona.
>
> Saludos
>
> Elkin Uribe
> Medellin - Colombia
>
> El 15 de septiembre de 2011 08:20, mpulla <jmaurici...@yahoo.es> escribió:
>
>
>
>
>
>
>
> > Buen dia.
>
> > Tengo la necesidad de hacer un porte que con 2 tablas independientes
> > para el detalle algo asi;
>
> > Detalle1
> > Ventas.
> > Nro.  Documento  Cantidad         Valor
> > 1      Facturacion         120     1452.00
> > X      XXXXX
> > X      XXXXX
> >                  Suman    XXXX     XXXXXX
>
> > Detalle2
> > Recaudacion por ventas.
> > Nro.  Documento  Cantidad       A cobrar
> > 1      Cheque                 10        1030.00
> > X      XXX                        X          XXX.XX
> >             Sumna:         XXX          XXX.XX
>
> > Se que con VFP 9.0 se puede, si me dan una guia o un ejemplo me
> > ayudaria mucho.
>
> > Saludos.
> > Mauricio
>
>
>
>  extracto.JPG
> 161 KVerDescargar

elkin dario uribe torres

unread,
Sep 15, 2011, 10:35:18 AM9/15/11
to publice...@googlegroups.com
Mauricio todo el truco esta en la creacion de la tabla/cursor que utiliza el reporte te pongo los pasos y el ejemplo

1. Crear el cursor

CREATE cursor extracto1 (tipo c(1), tabla c(3), numero c(15), nombre c(50), ficha c(20), ;
    saldo n(12,2), intereses n(12,2), total n(12,2), cuota n(12,2), ;
    plazo n(3), abono n(12,2), fechaconv d, tasa n(6,3), acuerdo c(10), ;
    capital n(12,2), detsaldo n(12,2), cuotaconv c(3), dettotal n(12,2), ;
    detcapital n(12,2), detint n(12,2), detvence d, pagcuota c(3), ;
    pagpago d, pagdocto c(20), pagvrconsig n(12,2), pagbanco c(25), ;
    pagfecha d, pagelabora c(25), pagrecibo c(10),consecutiv n(3))

2. Traer datos para la cabecera y adicionarlas en el cursor

SELECT a.numero, a.nombre_moroso, a.ficha,a.saldo, a.intereses, a.total, a.valor_mensualida, ;
    a.plazos_meses, a.abono, a.fecha_convenio, a.tasa_de_interes, a.acuerdo_municipal, ;
    a.capital FROM encconvenio a WHERE a.numero = Lcconvenio INTO CURSOR temp1

INSERT INTO extracto1(tipo, tabla, numero, nombre, ficha, saldo, intereses, total, ;
    cuota, plazo, abono, fechaconv, tasa, acuerdo, capital) VALUES ;
    ("1","ENC",temp1.numero, temp1.nombre_moroso, temp1.ficha, temp1.saldo, temp1.intereses, ;
    temp1.total, temp1.valor_mensualida, temp1.plazos_meses, temp1.abono, ;
    temp1.fecha_convenio, temp1.tasa_de_interes, temp1.acuerdo_municipal, temp1.capital)
   
3. Traer los datos del primer detalle y adicionarlos al cursor

SELECT b.saldo, b.numcuota, b.total, b.capital, b.intereses,b.vence ;
    FROM detconvenio b WHERE VAL(b.numero) = Lcconvenio INTO CURSOR temp1

SCAN
    INSERT INTO extracto1(tipo,tabla,detsaldo, cuotaconv, dettotal, ;
        detcapital, detint, detvence) VALUES ;
        ("2", "DET",temp1.saldo, temp1.numcuota, temp1.total, temp1.capital, temp1.intereses,temp1.vence)
ENDSCAN        

4. Traer los datos del segundo detalle y adicionarlos al cursor

SELECT c.numero, c.numcuota, c.pago, c.documento, c.vrconsigna, c.banco, c.fechalog, c.elaboro, c.nro_recibo ;
    FROM pagos c WHERE c.numero  = Lcconvenio INTO CURSOR temp1
I = 1
SCAN
    INSERT INTO extracto1(tipo, tabla,pagcuota, pagpago, pagdocto, ;
        pagvrconsig, pagbanco, pagfecha, pagelabora, pagrecibo,consecutiv) ;
        VALUES ("3", "PAG", temp1.numcuota, temp1.pago, temp1.documento, ;
        temp1.vrconsigna, temp1.banco, temp1.fechalog, temp1.elaboro, temp1.nro_recibo, I)
    I = I + 1   
ENDSCAN   

Despues de tener todo armado llamas el reporte y listo.  En este caso la variable "Lcconvenio" se le pasa como parametro y el reporte como debe ser armado o como deberia quedar te lo adjunto en una imagen.

Espero haber sido claro, de todas formas si necesitas el reporte me avisas y te lo envio.


Saludos


Elkin Uribe
Medellin - Colombia

extracto1.JPG

mpulla

unread,
Sep 15, 2011, 10:42:03 AM9/15/11
to Comunidad de Visual Foxpro en Español
Gracias Elkin.

Vamos a ver como me va.

Saludos.
Mauricio

On 15 sep, 09:35, elkin dario uribe torres <eduribe2...@gmail.com>
wrote:
>  extracto1.JPG
> 157 KVerDescargar

mpulla

unread,
Sep 18, 2011, 2:58:42 AM9/18/11
to Comunidad de Visual Foxpro en Español
Hola Elkin..

Me tomo un poco de tiempo pero salio bien...

Gracias,

Estoy con trabajo atrazado, en cuanto me iguale me dedico a ver como
aprobechar las caracteristicas del reporteador de VFP 9 en lo que
tiene que ver a las multibandas y te comparto la experiencia.

Saludos.
Mauricio.

elkin dario uribe torres

unread,
Sep 18, 2011, 7:16:53 PM9/18/11
to publice...@googlegroups.com
Hola Mauricio, que gusto que ya lo solucionaste y esperare que comentes cuando puedas lo de las multibandas.


Saludos

Elkin Uribe
Medellin - Colombia

Ariel

unread,
Jun 18, 2012, 3:45:30 PM6/18/12
to publice...@googlegroups.com
hola elkin, estaba buscando ayuda sobre reportes con varias tablas, y llegue a esta conversación, la verdad q no es lo que busco, pero me intereso mucho la barra de  impresión, es una clase echa por vos o la puedo conseguir en algún lado? 



desde ya muchas gracias

Ariel 

mpulla

unread,
Jun 18, 2012, 4:05:59 PM6/18/12
to publice...@googlegroups.com
Hola Ariel

Es foxypreviewer mira el link http://foxypreviewer.codeplex.com/

Saludos.
Mauricio

Helder Martínez

unread,
Feb 29, 2016, 5:11:53 PM2/29/16
to Comunidad de Visual Foxpro en Español
HOLA ELKIN, DONDE PUEDO ADQUIRIR ESTE TIPO DE REPORTE? ESTOY HACIENDO UN REPORTE DE VARIOS DETALLES, NO HE ENCONTRADO NADA POR LA WEB, MIRE EL EJEMPLO QUE COMPARTISTE PERO NO SE COMO APLICARLI, SI ME AYUDAS POR FAVOR.

SALUDOS,

Helder Martínez

unread,
Feb 29, 2016, 5:12:45 PM2/29/16
to Comunidad de Visual Foxpro en Español
MI CORREO ES agosto...@gmail.com

elkin dario uribe torres

unread,
Mar 1, 2016, 10:10:47 AM3/1/16
to publice...@googlegroups.com
Buenos dias

El reporte como tal no es ningún programa, el truco esta en los cursores si lees detalladamente la secuencia de preguntas y respuestas encontraras la solución, si te envío el reporte como tal no te servirá de nada, ya que todos los reportes que utilizo no manejan entorno de datos, todos son con cursores (me va mejor con ello).

Pero igualmente si deseas ese reporte lo adjunto.


Cordialmente
estadodecuenta.FRT
estadodecuenta.frx

Helder Martínez

unread,
Mar 1, 2016, 10:46:31 AM3/1/16
to publice...@googlegroups.com
Elkin, buenos dias
Gracias por tu pronta respuesta,

Yo tampoco uso entorno de datos, lo que uso es cursores igual que tu, probare lo que me envias a ver que sucede, cualquier inquietud te hago llegar mis procesos por este medio.

Saludos, 
--
Lic. Helder Martínez 
IT Cooperativa de Ahorro
y Credito Yoro Ltda.
Tel.(504) 9728-1183
www.aula.helderc.com/
"En los momentos de crisis, sólo la imaginación es más importante que el conocimiento."

Helder Martínez

unread,
Mar 1, 2016, 12:17:11 PM3/1/16
to publice...@googlegroups.com
MIRA ESTA ES LA FORMA COMO LLAMO AL REPORTE;

LOCAL dFecIni, dFecFin as Date;
cCodPac as Character

with thisform
cCodPac = ALLTRIM(.txtCodigo_pac.Value)
dFecIni = .txtFecha_ini.Value 
dFecFin = .txtFecha_fin.Value 
** cursor antecedentes patologicos  ---------------------------------------------------------**********
SELECT Tblantepato
GO TOP 
SELECT fecha_ant, codigo_pac_ant,;
codigo_ant, descrip_ant;
FROM Tblantepato;
WHERE codigo_pac_ant == cCodPac AND;
TTOD(fecha_ant) >= dFecIni AND;
TTOD(fecha_ant) <= dFecFin; 
INTO CURSOR _TblantepatoRM 
SELECT _TblantepatoRM 


** cursor padecimientos -----------------------------------------------------------------***********
SELECT Tblpadeactu
GO TOP 
SELECT fecha_pda, codigo_pac_pda,;
codigo_pda, descrip_pda;
FROM Tblpadeactu;
WHERE codigo_pac_pda == cCodPac AND;  
 TTOD(fecha_pda) >= dFecIni AND;
 TTOD(fecha_pda) <= dFecFin;
INTO CURSOR _TblpadeactuRM
SELECT _TblpadeactuRM


thisform.Hide 
SELECT _tblPacientesRM 
SELECT _TblantepatoRM 
SELECT _TblpadeactuRM
REPORT FORM c:\csimp\reports\report1.frx;
NOCONSOLE TO PRINTER PROMPT PREVIEW 
thisform.Show 

ENDWITH 

TE ADJUNTO EL REPORTE PARA QUE LO MIRES, SI ME AYUDAS POR FAVOR, SALUDOS.

El 1 de marzo de 2016, 9:10, elkin dario uribe torres <eduri...@gmail.com> escribió:
report1.FRT
report1.frx

elkin dario uribe torres

unread,
Mar 1, 2016, 1:18:27 PM3/1/16
to publice...@googlegroups.com
el reporte que te adjunte como minimo manejaba 3 tablas

1. Los datos del deudor (en este caso el paciente)
2. Ls datos de la financiacion (son los antecedente?)
3. Los datos de los pagos (en este caso los padecimiento?)

Para que logres lo mismo seria crear un cursor con los campos de todos los datos involucrados en el reporte (tanto en la cabecera como los detalles), así como el código que en su momento le escribí a Mauricio y que te transcribo para que mires y lo adecues a tus necesidades.

Pero para poderte ayudar necesitaría las 3 tablas y miraria eso el fin de semana, porque en los actuales momento estoy hasta el cuello de trabajo con la informacion de la contabilidad de 3 empresas para el cierre de año y los informes (que por cierto son demasiado) de la DIAN aqui en colombia.

1. Crear el cursor

CREATE cursor extracto1 (tipo c(1), tabla c(3), numero c(15), nombre c(50), ficha c(20), ;
    saldo n(12,2), intereses n(12,2), total n(12,2), cuota n(12,2), ;
    plazo n(3), abono n(12,2), fechaconv d, tasa n(6,3), acuerdo c(10), ;
    capital n(12,2), detsaldo n(12,2), cuotaconv c(3), dettotal n(12,2), ;
    detcapital n(12,2), detint n(12,2), detvence d, pagcuota c(3), ;
    pagpago d, pagdocto c(20), pagvrconsig n(12,2), pagbanco c(25), ;
    pagfecha d, pagelabora c(25), pagrecibo c(10),consecutiv n(3))

2. Traer datos para la cabecera y adicionarlas en el cursor

SELECT a.numero, a.nombre_moroso, a.ficha,a.saldo, a.intereses, a.total, a.valor_mensualida, ;
    a.plazos_meses, a.abono, a.fecha_convenio, a.tasa_de_interes, a.acuerdo_municipal, ;
    a.capital FROM encconvenio a WHERE a.numero = Lcconvenio INTO CURSOR temp1

INSERT INTO extracto1(tipo, tabla, numero, nombre, ficha, saldo, intereses, total, ;
    cuota, plazo, abono, fechaconv, tasa, acuerdo, capital) VALUES ;
    ("1","ENC",temp1.numero, temp1.nombre_moroso, temp1.ficha, temp1.saldo, temp1.intereses, ;
    temp1.total, temp1.valor_mensualida, temp1.plazos_meses, temp1.abono, ;
    temp1.fecha_convenio, temp1.tasa_de_interes, temp1.acuerdo_municipal, temp1.capital)
    
3. Traer los datos del primer detalle y adicionarlos al cursor

SELECT b.saldo, b.numcuota, b.total, b.capital, b.intereses,b.vence ;
    FROM detconvenio b WHERE VAL(b.numero) = Lcconvenio INTO CURSOR temp1


Cordialmente


SCAN
    INSERT INTO extracto1(tipo,tabla,detsaldo, cuotaconv, dettotal, ;
        detcapital, detint, detvence) VALUES ;
        ("2", "DET",temp1.saldo, temp1.numcuota, temp1.total, temp1.capital, temp1.intereses,temp1.vence)
ENDSCAN         

4. Traer los datos del segundo detalle y adicionarlos al cursor

SELECT c.numero, c.numcuota, c.pago, c.documento, c.vrconsigna, c.banco, c.fechalog, c.elaboro, c.nro_recibo ;
    FROM pagos c WHERE c.numero  = Lcconvenio INTO CURSOR temp1
I = 1
SCAN
    INSERT INTO extracto1(tipo, tabla,pagcuota, pagpago, pagdocto, ;
        pagvrconsig, pagbanco, pagfecha, pagelabora, pagrecibo,consecutiv) ;
        VALUES ("3", "PAG", temp1.numcuota, temp1.pago, temp1.documento, ;
        temp1.vrconsigna, temp1.banco, temp1.fechalog, temp1.elaboro, temp1.nro_recibo, I)
    I = I + 1    
ENDSCAN    

Helder Martínez

unread,
Mar 1, 2016, 3:14:51 PM3/1/16
to publice...@googlegroups.com
BIEN GRACIAS ELKIN, 

ENTONCES EN EXTRACTO1 INSERTAS O AGREGAS TODA LA INFORMACION DE REPORT, AHI MISMO AGREGAS EL DEUDOR, FINANCIACION Y PAGOS ?

Víctor Hugo Espínola Domínguez

unread,
Mar 1, 2016, 5:09:18 PM3/1/16
to publice...@googlegroups.com
Hola Helder

Prueba los adjuntos y trata de entender los cambios efectuados.


Saludos,
Víctor.
Lambaré - Paraguay.

program1.prg
HistMed.FRT
HistMed.frx

Helder Martínez

unread,
Mar 1, 2016, 5:10:18 PM3/1/16
to publice...@googlegroups.com
Muchas gracias Victor, voy a probar,

saludos desde Honduras C.A.

Julio Cesar Medrano Melgar

unread,
Mar 1, 2016, 9:08:26 PM3/1/16
to Grupofox
Hace tiempo envie un ejemplito con multibandas, en este caso 2, adjunto nuevamente el mismo

Saludos
 
Lic. Julio Medrano
Consultor Informático

"Un buen programador nunca muere solo se pierde en un proceso"





Date: Tue, 1 Mar 2016 13:18:21 -0500
Subject: Re: [vfp] Re: Reporte con 2 tablas de detalle.
From: eduri...@gmail.com
To: publice...@googlegroups.com
Reportito.rar

Helder Martínez

unread,
Mar 2, 2016, 11:20:51 AM3/2/16
to publice...@googlegroups.com
Muchas gracias Julio Medrano, de verdad muy agradecido.

Helder Martínez

unread,
Mar 2, 2016, 11:21:44 AM3/2/16
to publice...@googlegroups.com
Hey Victor, genial, me funciono muy bien, de verdad muchas gracias. Te lo agradezco.



El 1 de marzo de 2016, 16:09, Víctor Hugo Espínola Domínguez <vich...@gmail.com> escribió:

Helder Martínez

unread,
Mar 2, 2016, 11:22:09 AM3/2/16
to publice...@googlegroups.com
Gracias totales  a todos los de este foro...

DAG

unread,
Mar 2, 2016, 12:02:56 PM3/2/16
to Comunidad de Visual Foxpro en Español
Te sugiero que mires como se hace una report con múltiples líneas de detalle. 
El truco está en hacer una relación entre las 2 tablas. Se debe poner en el "Detail band properties" el nombre de la tabla entre comillas.

Hay un documento que está muy bien, espero que te sirva:

Saludos.

Helder Martínez

unread,
Mar 2, 2016, 12:10:51 PM3/2/16
to publice...@googlegroups.com
Gracias DAG, estoy viendo el meterial .pdf y me sirve de mucho, gracias.
Reply all
Reply to author
Forward
0 new messages