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