Programacion Interactiva

Descubre una Nueva y Poderosa Herramienta.

FrameWork de Nueva Generacion

Acceso a tu Informacion desde cualquier Dispositivo con Navegador.

Enfoque en el Backend

Frontend de forma facil con Odoo y XML.

Creacion de Verticales

Creacion de nuevas Verticales Conquistando nuevos Mercados.

Tu marca aqui mismo

Llega a miles de personas.

Publicidad

Mostrando las entradas con la etiqueta print when null. Mostrar todas las entradas
Mostrando las entradas con la etiqueta print when null. Mostrar todas las entradas

lunes, 5 de octubre de 2015

Imprimir 0.0 cuando el valor es Nulo en Jasper Reports

Print 0.0 when null in Jasper Reports



    Al crear reportes con Jasper Reports un problema muy frecuente era poner el valor 0.0 para campos float, despuĆ©s de buscar y probar las soluciones ofrecidas en foros, en la documentación de Jasper Reports, nunca encontrĆ© una solución real. Pensando y probando con las caracterĆ­sticas que ofrece iReport encontrĆ© una solución muy sencilla, los pasos son muy simples y los describo a continuación:

1. Primero debemos dejar los campos Double o Float de tipo String, no cambiarlo al tipo de dato correcto.

2. Añadimos el campo al reporte y modificamos el campo Text Field Expression, para convertir el campo a Double de forma manual y en caso de que sea null, retornar null sin ningún error.

( $F{Field-field0}.isEmpty() ? null : Double.parseDouble($F{Field-field0}) )


Modificamos el campo Expression Class para retornar el tipo de dato correcto:

java.lang.Double

Nota: La conversión a Double te permitirÔ usar la propiedad Pattern y dar formato al campo Double (Currency, # Decimals, etc.)

3. Al campo anterior activar el Campo Blank when null, para que no ponga nigĆŗn texto null en nuestro PDF.


4. AƱadir al reporte un elemento Static Text Field y poner el valor que deseamos que ponga cuando el campo sea 0.0 o null, en mi caso quiero que ponga $ 0.0


5. Para el Texto anterior activaremos el campo Print When Expression, añadiendo la expresión:

$F{Field-field0}.isEmpty()


Esto harĆ” que cuando el campo sea nulo escriba nuestro Texto y en caso contrario el valor correcto del Campo.

6. Lo Ćŗnico que haremos es encimar los 2 campos, uno encima del otro, asĆ­  el Reporteador pondra un valor u otro cuando tengamos un valor null.


Espero que esta información los ayude tanto como a mi.