PDA

Ver la Versión Completa : No imprimir valores en cero


rruffino
05-07-2012, 13:54:34
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
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:

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
Gracias gente por las respuestas.
Al final lo logre desde el query, con los eventos OnGetText y OnsetText.
Muchas gracias!!!!