Ver Mensaje Individual
  #4  
Antiguo 21-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 25
__cadetill Va por buen camino
A ver si te he entendido...

Tienes la siguiente relacion

Clients -> Movimientos -> Documentos

no? Bien, si es así, en Movimientos es de suponer que tienes un campo Id_Cliente (por decirlo de alguna manera) que es el que te establece la relación Maestro-Detalle
Documentos es una tabla donde se almacena (por lo que he entendido) Id_Documento y Descripción y, según lo que dices en el primer Post, en Movimientos tienes un campo (llamemosle Id_Documento) que indica el tipo de Documento

Bien, visto esto, puedes ir al DatabaseDesktop y definir un indice secundario en Movimientos que sea (por ejemplo) Id_Cliente + Id_Documento + Fecha (llamemosle I_CliDocF). Entonces, antes de lanzar el listado puedes asignarle este indice a la tabla de Movimientos

Código:
TMovimientos.IndexName := 'I_CliDocF';
Ahora, ya puedes hacer las roturas como quieres con un QrGroup.

Para la descripción del tipo de documento, puedes crearte un campo de tipo Calculate en el TTable de Movimientos que te de la descripción y, mostrar ésta en el Report

Esta es una solución. Otra solución sería hacer una Query que hiciera una JOIN entre las tres tabla

Código:
select *
from clientes c inner join 
      movimientos m on (m.Id_Cliente = c.Id_Cliente) inner join
      documentos d on (d.Id_Documento = m.IdDocumento)
where Condiciones que quieras
order by c.Id_Cliente, m.Id_Documento, m.Fecha
y hacer un report directamente de esta Query

Bueno, siento el rollo este

Espero te sirva
Responder Con Cita