Ver Mensaje Individual
  #3  
Antiguo 23-11-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Reputación: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Por lo que entiendo de tu mail, haces algo como esto:

Código Delphi [-]
{Genero un gran Memo y lo imrpimo}
Memo.Lines.Clear;
while (not Recibos.EOF) do
begin
   while (not LineasRecibos.EOF) do
   begin
      Memo.Lines.Add(LineasRecibos.Registros);
      LineasRecibos.Next;
   end;
   Recibos.Next;
end;
Imprimir(Memo);

Si es así, podrías romper la impresión, imprimiendo cada recibo y no todos los recibos en un mismo memo.

Puede ser que Vista esté trabajando de más, tratando de manejar grandes cantidades de memoria. (comentas que además de generar el Memo, haces muchos querys a tablas en memoria)

La idea es la siguiente:

Código Delphi [-]
{Genero un memo por recibo y lo imprimo}
while (not Recibos.EOF) do
begin
   Memo.Lines.Clear;
   while (not LineasRecibos.EOF) do
   begin
      Memo.Lines.Add(LineasRecibos.Registros);
      LineasRecibos.Next;
   end;
   Imprimir(Memo);
   Recibos.Next;
end;
Responder Con Cita