Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Prepare del QReport (https://www.clubdelphi.com/foros/showthread.php?t=58716)

lbidi 29-07-2008 20:07:45

Prepare del QReport
 
Hola, estimado foro.

Resulta que tengo un dbgrid el cual quiero imprimir con un QR. En el caso que la grilla tiene pocos registros, super, anda barbaro, pero en el caso que la grilla tengo muchos registros, y/o el reporte termine siendo de varias paginas, mas de 70, es que me veo en la necesidad de que no se pueda imprimir el reporte hasta que termine de cargar todo en una preview que hace en primera instancia.

A veces pasa que el usuario es muy "impaciente" :mad: y le da al boton de imprimir antes que haya terminado de cargar, entonces menudo lio.

He encontrado que haciendo un prepare antes del preview, se soluciona xq ya estan todos los registros procesados y el preview es rapido.
Tambien note que al procesar los registros, la grilla "tintineaba" por la cual le
hice un disablecontrols y se soluciono, pero tambien sale el preview aun antes
de haber terminado de prepararlo y contar todos los registros.

Ahora mi pregunta.. esta bien hecho asi?? Porque igual me sale el preview antes de haber procesado todo?? Se puede deshabilitar el boton de print
del QR hasta que haya terminado de procesar ??

Espero haberme explicado bien..

Gracias

Leonardo

coso 29-07-2008 20:14:56

Hola, desde la ayuda de delphi

Cita:

property Available : Boolean (read only)

Applies to

TCustomQuickRep, TQuickRep

Description

Use the Available property if you need to know if it's safe to call a report's Preview or Print method. If the report is already active Available will return False and the report cannot run. If Available is True it's ok to run the report.

nunca la he usado, pero estara la solucion usandola. (por ejemplo, imprimirbtn.Enabled := QuickRep1.Avaible; ) saludos

lbidi 29-07-2008 21:26:07

Hola, coso. Gracias por responder antes que nada.

Ese codigo que pusistes en mi caso no funcionaria porque el boton de imprimir , es el que crea el reporte , lo prepara, lo imprime y lo destruye.

Algo asi es lo que tengo..

Código Delphi [-]
Application.CreateForm(Tf_Reporte, f_Reporte);
qrydatos.DisableControls;
f_reporte.RepListas.Prepare;
while not f_reporte.RepListas.Available do
begin
end;
f_reporte.RepListas.Preview;
qrydatos.EnableControls;

No se me ocurrio otra manera de utilizar la propiedad "available".
Y aun asi, se muestra el preview antes de terminar de procesar todos los
registros.

Cualquier monedita sirve.. :)

Gracias

ctrl_attack 11-01-2009 21:15:55

Hola pues no se si sea la mejor manera pero se me ocurrio, que si usaras un progressbar, que este en otro formulario, y lo mostraras en lo que se prepara el form donde esta el quick report, pues no seria mucho lio, aunque solo es una idea a lo mejor funcione, yo tuve un problema, con una aplicacion qu demoraba mucho en mostrar un form, asi que le hice esto

Código Delphi [-]
form_espere.Show;
  form_espere.Update;
     form_espere.progressbar1.StepIt;
         Form_amostrar := TForm_amostrar.Create(Application);
form_espere.progressbar1.StepIt;
       Form_amostrar.Show;
              form_espere.progressbar1.StepIt;
       Form_amostrar.Update;
      form_espere.progressbar1.StepIt;
  form_espere.close;

yo asi lo hice con un form, supongo que no habra muchos problemas en adaptarlo al qreport, intentalo pero con el prepare, para que asi muestre el form donde pongas el progressbar, y mientras se valla cargando el prepare, valla cargando el progressbar, cuando finalize ya le pones el Preview;

Bueno amigo es solo una idea, pero si la llevas a cabo y la pruebas, por lo menos asi sabremos si funciona o no, :D

Kipow 12-01-2009 02:48:34

Código Delphi [-]
try    
   qryDatos.DisableControls;    
   imprimirbtn.enabled := false;    
   Application.CreateForm(Tf_Reporte, f_Reporte);    
   f_reporte.RepListas.Prepare;    
   f_reporte.RepListas.Preview;     
finally    
   qrydatos.EnableControls;    
   imprimirbtn.enabled := true; 
end;


:)

Kipow 12-01-2009 02:49:48

post repetido.

ctrl_attack 12-01-2009 02:52:39

con eso se deshabilitan los controles del preview??

o los del form de donde se llama el preview?

Kipow 12-01-2009 03:09:59

Cita:

Empezado por ctrl_attack (Mensaje 334189)
con eso se deshabilitan los controles del preview??

o los del form de donde se llama el preview?

Los del form que llama al preview, los del preview solo que tengas un preview a medida (custom preview). el unico boton que hay que deshabilitar es el que genera el preview (imprimebtn)


La franja horaria es GMT +2. Ahora son las 08:05:24.

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