PDA

Ver la Versión Completa : si todas las variables zero, no imprima


alcides
31-10-2005, 19:26:58
Hola a todos,

delphi 7 y las tablas estan access.

utilizando Report Builder tengo lo siguiente.

Cuenta descripcion uno dos tres control c_control

=====================================================
1116 cuenta banco variable1 variable2 variable3 variable4 variable5

en el on print de cada una de las variables se realiza el calculo.

lo quiero es lo siguiente cuando se calcule la ultima variable que es la variable5 si todas las variables son igual a zero que no se imprima ese registro.

puede ser esto posible.


Gracias mil,


Alcides
Rep.Dom.

Casimiro Notevi
31-10-2005, 19:34:41
Tienes varias formas, lo más simple es ponerlas invisibles en caso de que sea cero y visibles en caso contrario.

Ejemplo, algo parecido a esto, en el BeforePrint de la variable5

if value=0 then
begin
variable1.visible:=false;
variable2.visible:=false;
variable3.visible:=false;
...
...
end
else
begin
variable1.visible:=true;
variable2.visible:=true;
variable3.visible:=true;
...
...
end;

alcides
02-11-2005, 14:06:33
Gracias Casimiro Notevi,

esto es lo que tengo:

if ((ppVariable2.value=0) and
(ppVariable3.Value=0) and
(ppVariable4.Value=0) and
(ppVariable5.Value=0) and
(ppVariable6.Value=0)) then begin
qry_catalogocuenta.Visible:= false;
qry_catalogodescripcion.Visible:=false;
ppVariable2.visible:=false;
ppVariable3.visible:=false;
ppVariable4.visible:=false;
ppVariable5.visible:=false;
ppVariable6.visible:=false;
end
else
begin
qry_catalogocuenta.Visible:= true;
qry_catalogodescripcion.Visible:=true;
ppVariable2.visible:=true;
ppVariable3.visible:=true;
ppVariable4.visible:=true;
ppVariable5.visible:=true;
ppVariable6.visible:=true;
end;
ppReport1.Print;
es correcto preguntar de esta forma por las variable que estan en zero, porque no me esta funcionando cuando todas las variables son zeroes.


Gracias mil,


Alcides
Rep.Dom.

marcoszorrilla
02-11-2005, 14:39:43
Por qué no las sumas todas y si el resultado es = 0 es que todas son 0 de esa manera te quedaría mas simple la comparación.

Un Saludo.

Lepe
02-11-2005, 14:45:58
Solo un detalle que no me queda claro porque no uso ReportBuilder; El cálculo lo realizas en ¿el Onprint o BeforePrint?

En principio, deberías pasarlo todo al BeforePrint, y en el BeforePrint de ppvariable5, añades esto:

procedure SetVisible(Values:Boolean);
begin
qry_catalogocuenta.Visible:= Values;
qry_catalogodescripcion.Visible:=Values;
ppVariable2.visible:=Values;
ppVariable3.visible:=Values;
ppVariable4.visible:=Values;
ppVariable5.visible:=Values;
ppVariable6.visible:=Values;
end;

//En el BeforePrint:

SetVisible( not((ppVariable2.value=0) and
(ppVariable3.Value=0) and
(ppVariable4.Value=0) and
(ppVariable5.Value=0) and
(ppVariable6.Value=0)));


saludos

alcides
02-11-2005, 15:00:30
Gracias Marcoszorrilla,

buena idea, chequeare.


Gracias mil,


Alcides
Rep.Dom.

alcides
02-11-2005, 15:02:24
gracias Lepe,

en el onprint



Gracias Mil,

Alcides
Rep.Dom.

alcides
02-11-2005, 16:02:43
Hola a todos,

tengo un problemita las variables en Report builder no me presentan before print solo tienen on print, y por este motivo no he podido utilizar la ayuda de Lepe.

y con la ayuda de Marcoszorrilla necesitaria tambien el before print,

si me pueden dar otra idea por fa.


Gracias mil,


Alcides
Rep.Dom.

marcoszorrilla
02-11-2005, 17:53:51
Otra idea, si he captado bien lo que quieres, es utilizando mi método de sumar todas las variables, si están sumán 0 evaluarlo antes de llamar a ReportBuilder, y si es así no llamar a ReportBuilder y en caso contrario llamarlo.
Estoy entendiendo que quieres lanzar un informe solamente cuando las variables no sean 0 ???????

Un Saludo.

alcides
02-11-2005, 18:04:36
Gracias Marcoszorrilla,

eso es precisamente lo que quiero: un informe que cuando todas esten en zero obviar esa linea, eso es correcto, ahora cuando dices antes de llamar al report builder, te refieres en un qry.


Gracias mil,

Alcides
Rep.Dom.

marcoszorrilla
02-11-2005, 18:30:07
Pues aunque no trabajo con ReportBuilder, por lo que comentas me parece que no tendrás más remedio que utilizar el OnPrint de la banda en la que se encuentra esas líneas que se van a imprimir o no y Inhabilitarlas cuando convenga.

Un Saludo.

alcides
02-11-2005, 18:33:52
ok.
Gracias Marcoszorrilla por tus recomendaciones




Gracias Mil,


Alcides
Rep.Dom.