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.
Modificamos el campo Expression Class para retornar el tipo de dato correcto:
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:
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.
1. Primero debemos dejar los campos Double o Float de tipo String, no cambiarlo al tipo de dato correcto.
( $F{Field-field0}.isEmpty() ? null : Double.parseDouble($F{Field-field0}) )
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
$F{Field-field0}.isEmpty()
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.
Hola una consulta.
ResponderBorrarQuiero validar un parƔmetro donde me muestre valores mayores a 1
No puede mostrar si es null o cero.
ejemplo
Digamos yo genero un boleta, con el siguiente campo ${precio}.
Si no ingreso nada, obviamente no tiene que mostrar nada.
si ingreso un valor 0.0 tampoco debo visualizar ese campo.
pero si ingreso 0.05 ahora si de debe mostrar ese campo.
Necesito de su ayuda la verdad no se como hacerlo.
SALU2
Que tal CMAster, es muy sencillo en las opciones de tu campo ya aƱadido al reporte en la parte izquierda en el panel de opciones, habilita la opcion Blank when null, con eso si es 0, nulo o una cadena vacia, no agregara ninguna informacion.
BorrarPero que pasa si quiero agregar una informaciĆ³n. a mi conveniencia ¿?
BorrarPodrĆas aƱadir una variable y posteriormente en base a ella evaluarla con un Text Field Expression y enviar la informaciĆ³n resultante.
Borrar