NADIE ME AYUDA...Y SE ME ACABA EL TIEMPO
Tu solucion es my facil, lo que tenes que hacer es ver en tu diccionario una tabla de un solo registro y crear details dentro y renombrarlos como mejor te guste. Estos details deben ir en FALSE en las propiedades del report en el tab Filters.
Bueno, lees tu tabla con un set, loop y controlas la informacion con la clave de tu tabla y en takerecord antes del parentcall debes ir tirando por usuario los movimientos cvaculados que debe y cada vez que hay uno hacer un PRINT(RPT:DETAIL) o como lo hayas llamado, hace un corte por usuario y listo.
Ahi te va un ejemplo a ver si te da una idea:
CLEAR(LOC:Promotor)
CLEAR(LOC:Prom)
CLEAR(LOC:NombrePromotor)
CLEAR(Variable_Contrato)
CLEAR(Variable_Bajas)
CLEAR(Variables_Totales)
LOOP X# = 1 TO RECORDS(QImpresion)
GET(QImpresion,X#)
LOC:Promotor = WHAT(QImpresion,1)
CLEAR(PROM:Record)
PROM:Codigo = LOC:Promotor
Access:Promotor.TryFetch(PROM:Pk_Promotor)
LOC:NombrePromotor = PROM:Nombres
IF WHAT(QImpresion,1) <> LOC:Prom THEN
PRINT(RPT:BandaPromotor)
END
LOC:Prom = WHAT(QImpresion,1)
PRINT(RPT:BandaContrato)
CLEAR(CTR:Record)
CTR:Fecha = GLO:Fecha_Ini
SET(CTR:PK_ContratoC,CTR:PK_ContratoC)
LOOP UNTIL Access:Contrato.NEXT()
IF ERROR() THEN BREAK END
IF ~INRANGE(CTR:Fecha,GLO:Fecha_Ini,GLO:Fecha_Fin) THEN BREAK END
IF CTR:Promotor <> LOC:Promotor THEN CYCLE END
CLEAR(Variable_Contrato)
Fecha = CTR:Fecha
FechaVigencia = CTR:FechaVig
Numero = CTR:Numero
CLEAR(CPL:Record)
CPL:Codigo = CTR:Plan
Access:CPlan.TryFetch(CPL:PK_CPlan)
Plan = CPL:Descripcion
CLEAR(CTP:Record)
CTP:Codigo = CTR:TipoPlan
Access:CTipPlan.TryFetch(CTP:PK_CTipPlan)
TipoPlan = CTP:Descripcion
Asegurado = CTR:Asegurado
CLEAR(ASE:Record)
ASE:Codigo = CTR:Asegurado
Access:Asegurado.TryFetch(ASE:PK_Asegurado)
NombreAsegurado = ASE:Apellidos
Importe = CTR:ImporteCuota
PrimerVencimiento = CTR:PrimerVenc
Cobrador = ASE:Cobrador
CLEAR(COBR:Record)
COBR:Codigo = ASE:Cobrador
Access:Cobradores.TryFetch(COBR:PK_Cobrador)
NombreCobrador = COBR:Nombres
CASE ASE:Activo
OF 1
Estado = 'ACTIVO'
OF 2
Estado = 'SUSPENDIDO'
OF 3
Estado = 'DE BAJA'
OF 4
Estado = 'BLOQUEADO'
ELSE
Estado = 'SIN ESTADO'
END
UltimoPago = ASE:UltimoVencimiento
PRINT(RPT:DetalleContrato)
END
PRINT(RPT:BandaBajas)
CLEAR(ASE:Record,-1)
ASE:Promotor = LOC:Promotor
SET(ASE:FK_Promotor,ASE:FK_Promotor)
LOOP UNTIL Access:Asegurado.NEXT()
IF ERROR() THEN BREAK END
IF ASE:Promotor <> LOC:Promotor THEN BREAK END
CLEAR(CTR:Record)
CTR:Numero = ASE:Codigo
Access:Contrato.TryFetch(CTR:Por_Contrato)
CLEAR(Variable_Bajas)
_Contrato = CTR:Numero
_Asegurado = CTR:Asegurado
_NombreAsegurado = ASE:Apellidos
CLEAR(CPL:Record)
CPL:Codigo = CTR:Plan
Access:CPlan.TryFetch(CPL:PK_CPlan)
_Plan = CPL:Descripcion
CLEAR(CTP:Record)
CTP:Codigo = CTR:TipoPlan
Access:CTipPlan.TryFetch(CTP:PK_CTipPlan)
_TipoPlan = CTP:Descripcion
IF ASE:Motivo
CLEAR(MOT:Record)
MOT:Codigo = ASE:Motivo
Access:Motivo.TryFetch(MOT:PK_Motivo)
_NombreMotivo = MOT:Descripcion
_FechaBaja = ASE:FechaAud
ELSE
CLEAR(BAG:Record)
BAG:Asegurado = ASE:Codigo
Access:BajasAseg.TryFetch(BAG:FK_Asegurado)
CLEAR(MBJ:Record)
MBJ:Codigo = BAG:Motivo
Access:MotBaj.TryFetch(MBJ:PK_MotBaj)
_NombreMotivo = MBJ:Descripcion
_FechaBaja = BAG:FechaBaja
END
_UltimoPago = ASE:UltimoVencimiento
_Importe = ASE:UltimaCuota
PRINT(RPT:DetalleBajas)
END
END