Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-11-2005
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Poder: 19
Jesús Pena Va por buen camino
Question Deshabilitar botones del preview hasta que el preview del report no haya termindo

Tengo el siguiente problema: He definido un informe (con QuickReport) base el cual tiene asociado un formulario de Preview, dicho formulario tiene una ToolBar en la que tengo dispuestos una serie de botones, lo que quiero hacer (si es posible y alguno puede ayudarme) es mientras el informe no esté totalmente realizado no se pueda acceder a los botones de la toolbar (excepto al de salida, pero eso ya es lo de menos). Dicho con otras palabras ¿como deshabilitar los controles de la toolbar del formulario de previsualización mientras que el informe no se haya previsualizado por completo?

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 22-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En el toolbar tendrás un boton que al pulsarlo, activas el preview; pues en ese mismo evento, añade un try ... finally e inhabilitas el toolbar.

Código Delphi [-]

procedure Tform1.TToolbutton1Click(...)
begin

try 
  Toolbar1.Enabled := false;

... // crear el preview y visualizarlo;

finally
  toolbar1.Enabled:= true;
end;
end;

[/saludos]
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 23-11-2005
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Poder: 19
Jesús Pena Va por buen camino
Angry No me sirve esta opción

El preview se ejecuta automáticamente (Como lo hace quickreport). El preview es igual que el que tiene el quickrepor mas una serie de botones para realizar exportaciones a distintos formatos y esos botones son los que quiero inutilizar mientras se esté construyendo el informe pues solo serán operativos una vez que se ha completado la previsualización del informe.
Responder Con Cita
  #4  
Antiguo 23-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Aps, lo entendí de otra forma.

Para tu Preview Personalizado, tendrás que hacer uso de TQRPreview, y dicho Objeto tiene un evento de Page Available

Preview : TQRPreview;

Código Delphi [-]
uses QRPrntr, QuickRpt, QRCTRLS;

procedure TPrevi.PreviewPageAvailable(Sender: TObject; PageNum: Integer);
begin

  case Preview.QRPrinter.Status of
    mpReady: StatusBar1.Panels[0].Text := 'Listo';
    mpBusy: StatusBar1.Panels[0].Text  := 'En Proceso';
    mpFinished:StatusBar1.Panels[0].Text := 'Finalizado';
  end;
No creo que necesites otros "uses" y puede que incluso te sobren.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 24-11-2005
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Poder: 19
Jesús Pena Va por buen camino
Gracias por tu solución me ha servido de mucha ayuda. Ahora solo se me plantea una pequeña duda, tengo asociado al botón de cierre del preview el siguiente código
Código Delphi [-]
  If QRPreview1.QRPrinter.Status = mpBusy then
    QRPreview1.QRPrinter.Cancel;
  Close;
y lo que ocurre es que si hago click en el mientras se prepara el listado da un access violation at ...... ¿donde está el fallo?

Gracias de antemano
Responder Con Cita
  #6  
Antiguo 24-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Ahora no tengo delphi a mano para comprobarlo, intenta esto:

Código Delphi [-]
  if Assigned(QRPreview1.QRPrinter) then
  If QRPreview1.QRPrinter.Status = mpBusy then
  begin
    QRPreview1.QRPrinter.Cancel;
    Application.processMessages;
  end
  else
    Freeandnil(QRPreview1); // esto hará desaparecer el QRPreview
  Close
  end;

Si eso no funciona, entonces tendrás que obligar a que no se cierre el listado mientras esté ocupado el QRPrinter, podrías usar el evento OnCloseQuery y denegar la petición de cerrado.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 24-11-2005
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Poder: 19
Jesús Pena Va por buen camino
Thumbs up He probado lo que me enviaste y ...

Lo dicho he probado lo que me has enviado y puede valer (me explico, me dá un error de tipo EwriteError pero investigaré para solucionarlo).

Gracias por tú atención.

Una cosa mas, sobre el preview, tengo definido el registro de la clase en el menú principal de la aplicación y me pregunto si no sería mejor definirla en el formulario base (del cual heredan todos los formularios que tienen acceso a datos, el resto son formularios normales).

Repito, MIL GRACIAS.
Responder Con Cita
  #8  
Antiguo 25-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Jesús Pena
Una cosa mas, sobre el preview, tengo definido el registro de la clase en el menú principal de la aplicación
me he perdido, igual estoy un poco espeso. ¿A qué te refieres exactamente con lo puesto en negrita?

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 27-11-2005
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Poder: 19
Jesús Pena Va por buen camino
Thumbs up El mas espeso de todos ...

el mas espeso de todos soy yo, ya tengo el tema totalmente resuelto, me habia hecho la p...a un lio con las declaraciones, procedimientos duplicados, etc. Las explicaciones anteriores me han servido de gran ayuda y una gran fuente de inspiración. El fin de semana ha sido muy productivo.

Gracias a todos por la ayuda y colaboración con mi causa.
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 18:45:53.


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