Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   no permitir print en qreport (https://www.clubdelphi.com/foros/showthread.php?t=65985)

perico 26-01-2010 15:08:57

no permitir print en qreport
 
amigos como puedo hacer para que en un momento dado cumpliendose una condicion, solo se pueda visualizar un reporte pero se deshabilite la opcion de print del mismo, en qreport?
si se podra hacer eso?

:confused::confused::confused:

jcarteagaf 26-01-2010 15:38:05

Si es posible, pero para hacerlo deberas crear una vista previa personalizada. En este link tienes un demo de como hacerlo. Es cuestion de habilitar/deshabilitar los botones de la barra de herramientas del formulario.

Espero te sirva. Saludos

perico 26-01-2010 16:17:31

esta bueno
 
esta bueno, pero me gustaria saber si se puede hacer usando el preview normal de todos modos gracias, porque con esto puedo trabajar

jcarteagaf 26-01-2010 17:16:39

Lastimosamente en la vista previa no tienes control sobre las opciones, el único metodo que te queda es crearte tu propia Vista Previa.

Si necesitas mas ayuda no dudes en avisar.

Saludos.

perico 26-01-2010 17:49:04

muchas gracias
 
muchas gracias, voy a trabajar en eso :D

rgstuamigo 26-01-2010 23:15:01

Yo tambien era uno de los que creía que no se podia Deshabilitar esos botones amenos que ,como dice jcarteagaf personalizemos la vista previa, pero esta tarde(viendo tu problema ;)) me he tomado la molestia de investigar mas a fondo el asunto y haciendo una :o tras otra :o prueba He conseguido deshabilitar cualquier boton de la vista previa...:D.
El truco esta en que QuickReport Utiliza Internamente un formulario prediseñado con todos los TToolButton que estan dentro de un TToolBar y todas las demas cosas...; bueno dicho formulario tiene como nombre de Clase TQRStandardPreview ;) (Incluso puedo ver dicho formulario en tiempo de diseño con F12 :eek: ), ahora el problema era: ¿Cómo poder acceder a dicho formulario y de ahi poder accesar al boton(ToolButton) en cuestion para poder deshabilitarlo(enable=true)?:confused:.
Revisando un poco de codigo por aqui y por allá pues lo he logrado haciendo lo siguiente:
Código Delphi [-]
Uses QRPrev,...;
...
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).Print.Enabled:=False; //dehabilito el boton de imprimir
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).SaveReport.Enabled:=False;//dehabilito el boton de guardar 
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).LoadReport.Enabled:=False;//dehabilito el boton de abrir 
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).CancelButton.Enabled:=False;//dehabilito el boton de cancelar 
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).FindButton.Enabled:=False;//dehabilito el boton de Busqueda
 ...
 ... //INCLUSO PUEDO HACER LA SIMULACION DE PULSACION DE CUALQUIER BOTON.. //POR EJEMPLO 
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).CancelButton.Click;// ...
OJO en el unico lugar que se puede acceder a dichos botones (segun mis pruebas) es en el evento AfterPreview del componente QuickRep.;). sino se podria tener una Excepcion.;)
Saludos...:)

perico 26-01-2010 23:39:16

me da un error de compilacion con PreviewControl
 
muchas gracias por tu ayuda. aunque.
:confused:
lo hago tal como me dices y en el evento que me dices pero al compilar me da error [Error] QrepCalc.pas(127): Undeclared identifier: 'PreviewControl' a que se debera,

rgstuamigo 26-01-2010 23:45:54

Cita:

Empezado por perico (Mensaje 351934)
muchas gracias por tu ayuda. aunque.
:confused:
lo hago tal como me dices y en el evento que me dices pero al compilar me da error [Error] QrepCalc.pas(127): Undeclared identifier: 'PreviewControl' a que se debera,

Talves tienes una version de QuickReport menor que la que uso yo....
Bueno haber.. intentalo asi:
Código Delphi [-]
TQRStandardPreview(QuickRep1.QRPrinter.Client.Parent).Print.Enabled:=False;
No te olvides de poner la unidad QRPrev en el Uses y poner el anterior codigo en el evento AfterPreview de tu QuickRep.;)
Saludos...:)

perico 27-01-2010 01:44:47

deja el error pero no hace lo que se necesita
 
bueno dejo el error pero igual no deshabilita el boton print, que podra ser ????

bueno yo uso delphi 7 y estoy usando el qreport que trae esta version de delphi

rgstuamigo 27-01-2010 15:43:52

Cita:

Empezado por perico (Mensaje 351944)
bueno dejo el error pero igual no deshabilita el boton print, que podra ser ????

bueno yo uso delphi 7 y estoy usando el qreport que trae esta version de delphi

Por alguna Razon extraña en la version 3.0.9 que viene en el propio delphi 7 (segun mis pruebas) de alguna forma internamente hay codigo que nuevamente hace habilitar los Botones(ToolButton) al momento de visualizar el reporte.Entonces la única solucion que veo es recurrir a la propiedad Visible de los ToolButton y hacer que éstos no sean visible al previsualizar el reporte.;)
Segun mis pruebas la version 3.0.9 no trabaja de igual forma que la version que tengo que es la 5.02. Ya que segun he observado ,algunos eventos se disparan en una forma diferente entre ambas versiones, y he ahí..que por eso que no te funciona igual como me funciona a mi...;).
Bueno..como te decia antes, simplemente has que dichos botones no sean visible;haaah... y ahora en ves de usar el evento AfterPreview, mejor utiliza el evento BeforePrint de tu componente QuickRep (eso es por la version que tienes), quedando tu codigo mas o menos asi:
Código Delphi [-]
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
 TQRStandardPreview(QuickRep1.QRPrinter.Client.Parent).Print.Visible:=False;
 TQRStandardPreview(QuickRep1.QRPrinter.Client.Parent).PrintSetup.Visible:=False;
{En todo caso lo lógico es no hacer visible tanto el boton para selecionar 
impresora (PrintSetup) como tambien el Boton de Imprimir (Print) ;) }
end;
Nota: Probado en Delphi 7 y Quick Report 3.0.9 ;)
Saludos...:)

perico 27-01-2010 16:07:48

si ya esta listo
 
muchas gracias es lo que necesitaba, disculpa la molestia :rolleyes:

santiago14 21-09-2014 16:18:34

Cita:

Empezado por rgstuamigo (Mensaje 351933)
Yo tambien era uno de los que creía que no se podia Deshabilitar esos botones amenos que ,como dice jcarteagaf personalizemos la vista previa, pero esta tarde(viendo tu problema ;)) me he tomado la molestia de investigar mas a fondo el asunto y haciendo una :o tras otra :o prueba He conseguido deshabilitar cualquier boton de la vista previa...:D.
El truco esta en que QuickReport Utiliza Internamente un formulario prediseñado con todos los TToolButton que estan dentro de un TToolBar y todas las demas cosas...; bueno dicho formulario tiene como nombre de Clase TQRStandardPreview ;) (Incluso puedo ver dicho formulario en tiempo de diseño con F12 :eek: ), ahora el problema era: ¿Cómo poder acceder a dicho formulario y de ahi poder accesar al boton(ToolButton) en cuestion para poder deshabilitarlo(enable=true)?:confused:.
Revisando un poco de codigo por aqui y por allá pues lo he logrado haciendo lo siguiente:
Código Delphi [-]
Uses QRPrev,...;
...
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).Print.Enabled:=False; //dehabilito el boton de imprimir
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).SaveReport.Enabled:=False;//dehabilito el boton de guardar 
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).LoadReport.Enabled:=False;//dehabilito el boton de abrir 
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).CancelButton.Enabled:=False;//dehabilito el boton de cancelar 
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).FindButton.Enabled:=False;//dehabilito el boton de Busqueda
 ...
 ... //INCLUSO PUEDO HACER LA SIMULACION DE PULSACION DE CUALQUIER BOTON.. //POR EJEMPLO 
TQRStandardPreview(QuickRep1.QRPrinter.PreviewControl).CancelButton.Click;// ...
OJO en el unico lugar que se puede acceder a dichos botones (segun mis pruebas) es en el evento AfterPreview del componente QuickRep.;). sino se podria tener una Excepcion.;)
Saludos...:)

Revisando un poco este asunto del Preview, me encuentro con este hilo. Realmente muy bueno lo que has puesto.
Ahora bien, ¿cómo hago para que ejecutar algo en un evento? El botón "print" de la visualización previa debería tenerlo. Yo necesito hacer algo adicional cuando se presiona el botón "print" de la preview. ¿Cómo se podrá hacer?

Gracias.

Santiago.

ecfisa 21-09-2014 19:41:38

Hola Santiago.

En las QuickReport FAQS, revisa el demo llamado CustomPreview.zip.

Saludos :)


La franja horaria es GMT +2. Ahora son las 19:55:42.

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