PDA

Ver la Versión Completa : QuickReport - BeforePreview


ibstk
27-11-2004, 00:03:49
Hola amigos,

Estoy utilizando el QuickReport v3 para impresion. Mi gustaria de habilitar o no un QRLabel de acuerdo com el valor de un campo. Algo asi:

if ADOTable.CampoTabla = '' then
QRLabel.Enabled := 'False';
else
QRLabel.Enabled := 'True';

Cual es el evento dondo puedo cambiar la propriedad del QRLabel antes de abrir la ventana del Preview? En el Preview los qrlabels seran o no mostrados (en Detail Band) de acuerdo com el valor del campo. Hay un evento BeforePreview?

eduarcol
27-11-2004, 01:21:24
Los TqrLabel tienen un evento llamado OnPrint, este evento se dispara antes de imprimir las etiquetas, podrias hacer esto


if ADOTable.CampoTabla = '' then
Value := '';
else
Value := 'Lo que sea';

ibstk
27-11-2004, 07:21:02
hola eduarcol,

Gracias! Hey lido el manual y es exactamente esto pero, no hace efecto.

Para testar, en el evento OnPrint de un QRLabel estou hacendo:

Value := 'Madri, ' + FormatDateTime(dd "de" mmmm "de" yyyy',Date);

Nadia acontece! No hay una otra propriedad que tengo que cambiar tambien? Sabes que pasa?

eduarcol
27-11-2004, 13:16:33
De momento se me ocurre es una sola cosa, tienes programado el evento onPrint de un tQRDBText ese evento no se dispara si el campo que asocia esa etiqueta esta en blanco, podria ser eso?.

Otra cosa, en que banda lo colocastes?

Lepe
27-11-2004, 13:52:15
Usa la propiedad Enabled en ese evento, a mi me ha funcionado ( aunque he usado un QRDBtext).

Igual tampoco estoy entendiendo lo que quieres hacer ya que :

qrlabel.Enabled:= 'False';

entre comillas el false... no lo veo claro.

Si lo que quieres es que un campo determinado no salga en el informe, simplemente pon su propiedad Enabled := False. Por supuesto el origen de datos del control debe estar bien especificado, es decir, el datasource y Field.

saludos

marcoszorrilla
27-11-2004, 14:50:06
Abundando en lo dicho por Lepe, aquí va un ejemplo que lleva funcionado mucho tiempo. (esto está incluido en el evento BeforePrint.


//Analizar si hay descuento para mostrarlo en la factura
if DmVil.FactBase.Value < DmVil.FactSubtotal1.Value then
begin
lbSubtotal.enabled:=True;
lbDescuento.Enabled:=True;
lbBaseimp.Enabled:=True;
lbDescpor.Enabled:=True;
QrdbSubtotal1.Enabled:=True;
QrdbDescpor.Enabled:=True;
QrdbDescuento.Enabled:=True;
QrdbSubtotal2.Enabled:=True;
end;


Un Saludo.

le4br
28-11-2004, 23:10:29
... Nadia acontece! No hay una otra propriedad que tengo que cambiar tambien? Sabes que pasa?

Hola amigo,

El evento OnPrint no responde en el Preview. Los codigos en un event handler funcionam solo en runtime.

ibstk
29-11-2004, 23:18:08
Funciono! Gracias a todos!!!