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 imprimir valores en cero (https://www.clubdelphi.com/foros/showthread.php?t=79440)

rruffino 05-07-2012 13:54:34

No imprimir valores en cero
 
Hola gente, estoy usando RaveReports 5 con Delphi 7. Tengo en el reporte un componente Region, para mostrar los detalles de un comprobante, con un Datatext conecto el componente al campo para que me muestre el valor y de hecho lo hace, lo que necesito es que cuando ese valor esta en cero no se muestre en el reporte, por ejemplo si tengo
CARAMELOS 0,50
GALLETAS 0,00

necesito que me muestre
CARAMELOS 0,50
GALLETAS

Desde ya muchas gracias y saludos a todos!:)

Casimiro Notevi 05-07-2012 14:21:11

En otros programas de ese tipo que he usado, sólo había que hacer click con botón derecho en el dato y elegir en un menú contextual que aparecía la opción "Blanco cuando es cero".
En otro programa recuerdo que era una propiedad más: "Dejar en blanco si valor=0".

Seguramente ravereports también tiene algo parecido.
En caso contrario tendrás que "programarlo", en su evento beforeprint controlas si es cero y entonces le cambias el valor a '' (cadena vacía).

rruffino 05-07-2012 14:55:13

Sigo con problemas
 
Hola, gracias por la respuesta, la verdad estoy buscando como hacerlo pero no me sale, si alguien tiene algun ejemplo o lo ha hecho de alguna forma se lo agradezco, no encuentro como hacerlo con el beforeprint.
Agradezco cualquier ayuda y/o sugerencia.
Saludos!!!

Casimiro Notevi 05-07-2012 17:00:14

Seguramente en la banda donde está colocado ese componente tendrás un evento beforeprint.

Loviedo 05-07-2012 18:26:46

Lo que normalmente suelo hacer es poner el valor 0 a null en el Query ó la tabla. Rave los interpreta como cadena vacía.

La otra solución es la siguiente:
En rave en el componente DataText (Datatex5 por ejemplo), que quiere que no se vea el 0, lo selecciona y haz lo siguiente:
ve al evento editor y en 'Available events' elige 'OnBeforePrint' y escribe este código:

Código Delphi [-]
if datatext5.text = '0,00' then
   datatext5.visible := false;
 else
  datatext5.visible := true;
 end if;

A mí me funciona. Saludos.

Loviedo 05-07-2012 18:30:45

He puesto DataText5.text := '0,00' como ejemplo, evidentemente si en el campo tienes '0' entonces sería DataText5.text := '0'.
Es una perogrullada, pero por si acaso.
Saludos nuevamente.

rruffino 05-07-2012 18:56:59

Funcionando
 
Gracias gente por las respuestas.
Al final lo logre desde el query, con los eventos OnGetText y OnsetText.
Muchas gracias!!!!


La franja horaria es GMT +2. Ahora son las 00:09:19.

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