Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2005
mar65 mar65 is offline
Registrado
 
Registrado: ene 2005
Posts: 6
Poder: 0
mar65 Va por buen camino
error al ejecutar un reporte varias veces

Hola, tengoa una aplicacion en delphi5 con paradox. Tengo un reporte que utiliza un maestro detalle y tengo que imprimirlo varias veces para diferentes personas. Meti la creacion y liberacion del reporte dentro de un do while con la tabla maestro dando un next al final luego pregunto si desean seguir imprimiendo y despues de algunas impresiones, empieza a marcar un erro de que el componente qrstandardpreview ya existe e interrumpe las impresiones, este error lo marca despues del next y nunca es en el mismo numero de impresion.

Gracias

Mar
Responder Con Cita
  #2  
Antiguo 25-01-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Supongo que cierras el formulario en donde está el informe y lo vuelves a abrir, para que se destruyan todos sus componentes?
Código Delphi [-]
 While .....
   Application.CreateFomr(TMiFormReporte, MiFormReporte);
   MiFormReporte.MiReporte.Print;
   MiFormReporte.Close
 
 end:
y en en OnClose del Formulario que contiene el informe:

Código Delphi [-]
 Application.ProccessMessages;
 FreeAndNil(MiReporte);
 Action:=CaFree;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 26-01-2005
mar65 mar65 is offline
Registrado
 
Registrado: ene 2005
Posts: 6
Poder: 0
mar65 Va por buen camino
muchas gracias lo intente pero no resulto, el mensaje que manda es: ' a component named qrstandardpreview already exist' y el codigo es el siguiente:
Código Delphi [-]
   while not tbrecibo.Eof do
   begin
     rec := inttostr(tbrecibo.fieldbyname('n_recibo').asinteger);
     qrrecibo := Tqrrecibo.Create(Application);
     with qrrecibo do
     try
       tbrecibo.open;
       tbrecibo.filter := '(n_recibo=' + chr(39) + rec + chr(39) + ')';
       tbrecibo.filtered := true;
       tbdetallerecibo.open;
       (folio viene de la forma que manda llamar el reporte)
       if folio = 1 then
         qrlfolio.caption := 'RECIBO:  ' + tbrecibo.fieldbyname   ('n_recibo').asstring
       else
         qrlfolio.caption := '';
          preview;
       tbrecibo.close;
       tbdetallerecibo.close;
     finally
         free;
     end;
     tbrecibo.next; (aqui manda el error en cualquier momento)
     if MessageDlg('¿Deseas Seguir Imprimiendo Recibos?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
       folio := 0
     else
       break;
   end;
 


Última edición por marcoszorrilla fecha: 26-01-2005 a las 15:03:51.
Responder Con Cita
  #4  
Antiguo 26-01-2005
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Hola,

Te recomendaría utilizar las etiquetas del club que le hacen la vida más fácil al que lee el mensaje y vive una vida de indetados de códigos

No sé que reporteador estás utilizando ni si le llamás "imprimir" a mostrar una formulario con vista previa por pantalla. Lo cierto es que tenés un problema con la creación de los objetos y su liberación, puesto que si es una vista previa y le hacés un Free te va a estar matando el objeto cada tanto por lo que deberías mover el Try fuera del bucle. Caso contrario la respuesta del amigo Marcos es totolmente adecuada.

Saludos!
__________________
Suerte
.: Gydba :.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:19:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi