Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Problema no resuleto. (https://www.clubdelphi.com/foros/showthread.php?t=4318)

Jose_Pérez 10-10-2003 13:06:45

Problema no resuleto.
 
Hola a todos.

Tengo un problema con QuickReport. Buscando en el histórico del foro he encontrado el tema... ¡pero no está resuelto!. :mad:

http://www.clubdelphi.com/foros/arch...hlight=preview

¿Alguien podría ayudarme?

Sincenramente, yo soy de los que muy pocas veces han contestado a los problemas de otros conmpañeros. Pero cuando se me plantea uno, y nadie me contesta, cuando consigo resolverlo cuelgo la solución, para quien pueda interesar... De este modo, entre todos, creamos una gran fuente de datos para resolver problemas de Delphi. :)

Saludos.

Investment 10-10-2003 14:33:19

Hola Jose_perez.
Una vez tuve un problema parecido al tuyo que solucione con las dos lineas siguientes:

Código:


    Application.ProcessMessages;
    Nombre_del_Listado.Release;

Ojalá te sirva.

Jose_Pérez 10-10-2003 14:56:50

Muchas gracias Investment. Lamentablemente no funciona.

Voy a aportar algún dato a mi caso en particular.

Dentro de un bucle, ralizo una consulta utilizando un TQuery, y posteriormente realizo un Preview del QuickReport. He podido comprobar que la primera vez el Query realiza la consulta correctamente, pero en la siguiente pasada del bucle, me devuelve la consulta en blanco (0 registros).

Lo curioso es que si en lugar de realizar un Preview, hago directamente un Print, funciona perfectamente. Podría ahorrarme el Preview, pero el usuario necesita ver el listado por pantalla.

Saludos.

Jose_Pérez 10-10-2003 14:59:38

... olvidé decir que el query está conectado al QuickReport. ¿Ya se suponía? ;)

Viet 10-10-2003 15:28:04

Hola , has mirado que dentro del Reporte no cierras la Query en ningun evento?....

Para confirmar que no es eso podrias poner antes del preview un Close/Open de la Query en cuestion.

Suerte ;)

Jose_Pérez 10-10-2003 15:30:54

Gracias Viet. No es eso. Totalmente descartado.

Viet 10-10-2003 15:34:38

La verdad que yo no creo los reportes dinamicamente al momento de llamarlos, sino que lo hago una unica vez con:
Código:

  Application.CreateForm(TReporte, Reporte);
  Reporte.Preview;

La variable reporte es la misma que define delphi en el momento de diseño, y la verdad nunca he tenido problemas...... no puedes implementarlo de esta forma?

Jose_Pérez 10-10-2003 15:53:13

He probado de dos maneras: Incluyendo el objeto TQuickReport en el formulario desde donde ordeno el listado, o en otro TForm, que cargo dinámicamente. En ambos casos falla!!!.

Esto es lo que hago.

Código:

  For Contador:=Low(Agencias) To High(Agencias) Do
      Begin

      Ficha:=TfrmQRFactProvE.Create(Self);

      With Ficha.Query Do
          Begin
          Close;
          SQL.Clear;
          Consulta:='Select * from Linvales Where  ¡Agc_lval='+IntToStr(Agencias[Contador])+
                    ' And extract(month from Fec_lval)='+IntToStr(cboMes.ItemIndex+1)+
                    ' And extract(year from Fec_lval)='+IntToStr(cboYear.ItemIndex+1990)+
                    ' And fac_lval=0 Order by Num_lval';
          SQL.Add(Consulta);
          Open;
 
          End;

      If Not cbxPantalla.Checked Then
        Ficha.QuickReport.Print
        else
        Ficha.QuickReport.Preview;
      Ficha.QuickReport.Dataset:=Nil; 
      Ficha.Free;
      Application.ProcessMessages;
      End;


Jose_Pérez 10-10-2003 15:56:33

Me equivoqué....

No es

Código:

Consulta:='Select * from Linvales Where  ¡Agc_lval='+IntToStr(Agencias[Contador])+
sino

Código:

Consulta:='Select * from Linvales Where Agc_lval='+IntToStr(Agencias[Contador])+
sin !

Jose_Pérez 10-10-2003 15:58:37

Ficha.QuickReport.Dataset:=Nil;

Esto lo pusde para probar, pero tampoco funcionó.

delphi.com.ar 10-10-2003 17:06:19

Porqué no nos muestras como ha quedado el código, después de tantas idas y vueltas??

Saludos!

Jose_Pérez 10-10-2003 19:40:21

Queda así...

Código:

  For Contador:=Low(Agencias) To High(Agencias) Do
      Begin

      Ficha:=TfrmQRFactProvE.Create(Self);

      With Ficha.Query Do
          Begin
          Close;
          SQL.Clear;
          Consulta:='Select * from Linvales Where Agc_lval='+IntToStr(Agencias[Contador])+
                    ' And extract(month from Fec_lval)='+IntToStr(cboMes.ItemIndex+1)+
                    ' And extract(year from Fec_lval)='+IntToStr(cboYear.ItemIndex+1990)+
                    ' And fac_lval=0 Order by Num_lval';
          SQL.Add(Consulta);
          Open;
 
          End;

      If Not cbxPantalla.Checked Then
        Ficha.QuickReport.Print
        else
        Ficha.QuickReport.Preview;
 
      Ficha.Free;
      Application.ProcessMessages;
      End;

Siento la confusión... :p

delphi.com.ar 10-10-2003 21:12:49

Prueba cambiando Preview por PreviewModal, así detiene el hilo de ejecución antes de hacer el free (100% teoría, pues no lo he probado).
Si me aceptas una sugerencia, te recomiendo crear una sola vez es TfrmQRFactProvE, y por cada iteración del for hacer el resto.


Saludos!

Jose_Pérez 13-10-2003 12:35:17

Muchas gracias, pero tampoco funciona.

Insisto en que el fallo se produce sólo cuando hago el Preview del CrystalReport.

Dado que no puedo tener mucho más tiempo al usuario parado, se me está ocurriendo conectal el TQuickRep con un TRXMemoryData de la librebría de RX, y volcarle el resultado del Query. Irá más lento, pero dado los resultados, vale más esto que nada.

Saludos.

Lepe 14-10-2003 16:25:16

Ficha:=TfrmQRFactProvE.Create(Self);


no sería


Ficha:=TfrmQRFactProvE.Create(NIL);

es que estas diciendo que el padre es el formulario, pero al final eres tu mismo quien destruye la ficha¿?

¿ me llevo la chochona o no ? :D

delphi.com.ar 14-10-2003 16:32:44

Cita:

Posteado originalmente por Jose_Pérez
Insisto en que el fallo se produce sólo cuando hago el Preview del CrystalReport.
Nunca nos has dicho que se trataba de Crystal, es más por el código siempre supuse que se trataba de QuickReports... (Ficha.QuickReport....)

Viet 14-10-2003 16:43:11

Cita:

Hola a todos.

Tengo un problema con QuickReport. Buscando en el histórico del foro he encontrado el tema... ¡pero no está resuelto!.

Me sumo a Delphi.com.ar

Jose_Pérez 15-10-2003 10:17:50

En que estaría pensando...

Quería decir QuickReport y no CrystalReport.

De todos modos he decidido probar con FreeReport. Por cierto, mi primera impresión sobre FreeReport ha sido muy buena. Espero no tener tantos problemas como con QuickReport y CrystalReport.

Muchas gracias por vuestro interés.

Saludos.


La franja horaria es GMT +2. Ahora son las 23:25:02.

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