Gráficos en iReport

   Bien, anteriormente publique una serie de entradas llamadas "Reportes en Java" (I, II, III y IV), explicaba como cargar parámetros y hacer los reportes para cargarlos desde nuestra aplicación, hoy explicare como crear reportes gráficos, tarea sencilla si entendemos los códigos que explique anteiormente. Antes de continuar debemos tener en cuenta que esta guía se basa en lo explicado anteriormente, por lo que no explicaré como instalar el iReport, como crear, cargar o manejar los parametros y variables ni nada de eso, ya lo explique en entradas anteriores.

   Bien, una vez en nuestra plantilla de reportes agregamos un "Chart" de nuestra paleta



   Arrastrando y soltando la colocamos en donde queremos que se muestre, en las propiedades de la derecha colocamos el título, sub-título, tipo de fuente, colores, etc...



   Ahora, haciendo click derecho sobre el gráfico nos vamos a su data (Char Data), nos ubicamos en la pestaña detalles (Details) y en series de pie (Pie Series), una vez allí veremos la siguiente pantalla.



   Es aquí donde definimos los datos y valores que tendrá nuestra gráfica o torta, "Key Expresion" se refiere a la expresión de la leyenda (nombre que tendrá en la leyenda), "Value Expresion" se refiere al valor numérico que tomara para realizar el gráfico, y "Label Expresion" se refiere la forma en que mostrara el valor en el gráfico, para comprender mejor esto coloquemos lo siguiente:

Key Expresion: "Valor1"
Value Expresion: $P{Mi_Parametro}.doubleValue / $V{Mi_Variable}.doubleValue
Label Expresion: $P{Mi_Parametro}.toString() / $V{Mi_Variable}.toString()

   Lo que nos dará un gráfico con la leyenda "Valor1" en la etiqueta tendremos el número del valor y en el gráfico se nos mostrara el porcentaje en números de dicho dato. Para ir agregando mas y mas valores hacemos click en "usar mas series" (use more series) y nos saldrá una lista como la siguiente (la lista tendrá una sola serie ya que aún no se han agregado más).



   Haciendo click en agregar (Add) se nos van mostrando mas ventanas como la anterior, donde iremos colocando los parámetros y tendremos nuestro gráfico listo, a la final tendremos un gráfico como este:



18 Comentarios

Escribir Comentario
Anónimo
AUTOR
8 de noviembre de 2011, 13:47 delete

amigo podrias colocar tutoriales de graficos pero de linea xy

Responder
avatar
8 de noviembre de 2011, 14:08 delete

Claro..... Esta pendiente que esa será la siguiente entrada... Saludos!!!

Responder
avatar
Anónimo
AUTOR
15 de noviembre de 2011, 15:33 delete

de donde sacaste $V{Mi_Variable} ?

Responder
avatar
15 de noviembre de 2011, 15:37 delete

No entiendo bien tu pregunta, no saco nada de ningún lado, $P{Mi_Parametro}.doubleValue es para utilizar parametros y $V{Mi_Variable}.doubleValue es para utilizar variables, puedes usar uno y otro, el que gustes o necesites...

Responder
avatar
Marcos MT
AUTOR
20 de octubre de 2015, 14:49 delete

y para hacerlo en un Line chart. No he buscado en la red sobre este tipo de grafico (solo abunda para el pastel y pa las barras) :(

Responder
avatar
21 de octubre de 2015, 20:12 delete

Buena pregunta, esta atento al blog que publicaré una entrada sobre ello... Gracias y saludos!!

Responder
avatar
13 de marzo de 2017, 20:31 delete

Hola...tengo un problema..en la vista previa de ireport los labels o etiquetas de mi gráfico PIE salen perfectas pero cuando ejecutó el archivo compilado .jasper en eclipse con el visor Jasper Viewer no me muestran las etiquetas y necesito que estas se muestren... Necesito de alguna otra librería para poder ver los graficos igual a como se ven en ireport?

Responder
avatar
14 de marzo de 2017, 19:27 delete

Hola... Primero que nada revisa si tienes todo bien instalado y configurado como menciono en esta entra: http://carlitoxenlaweb.blogspot.com/2010/09/reportes-en-java-parte-i.html, luego de eso si no se ven los labels lo mas seguro es que sea por bug o conflicto de versiones ya que si usas el mismo visor de Jasper no deberían aparecer este tipo de problemas.

Que versiones usas? Que librerías?

Responder
avatar
Anónimo
AUTOR
28 de marzo de 2017, 8:08 delete

Buenas, les comento mi problema.

Tengo una tabla executions con un campo llamado status. Los valores de ese campo son o passed o failed. Me gustaría devolver en ireport un gráfico con el porcentaje de ellos que están a failed y el porcentaje que esta a passed, por tanto sería un gráfico con dos elementos unicamente.

¿Podríais ayudarme?Muchas gracias

Responder
avatar
28 de marzo de 2017, 8:17 delete

Hola, primeramente el proceso seria exactamente el mismo solo que agregas 2 valores, te ha dado error en algún punto?

Responder
avatar
Anónimo
AUTOR
28 de marzo de 2017, 8:23 delete

Buenas, gracias por responderme,

no entiendo que quieres decir..igual no me he explicado bien. Me gustaría saber que porcentaje está a passed y cual a failled:

- Key exp: $F{status}
- Value exp: aquí me gustaría saber la expresión que hay que poner para que me devuelva el porcentaje(solo tengo un campo que consultar(status)y dentro de este campo uno de los dos valores)
-Label exp: "Porcentaje:"

No se si respondo a tu pregunta. Muchas gracias.

Responder
avatar
Anónimo
AUTOR
28 de marzo de 2017, 8:42 delete

Buenas,

creo que ya entiendo tu pregunta, los dos valores no me dan fallo, el gráfico es 50% passed y 50% failed, creo que me está cogiendo estos dos valores, y mi intención es que me devuelva la cantidad de cada uno de ellos que hay.

Muchas gracias.

Responder
avatar
28 de marzo de 2017, 14:07 delete

Ok, entonces suponiendo que guardas esos 2 valores (50 y 50) en parámetros separados (o en un query) puedes hacer lo siguiente:

- Agregar Serie
Key Expresion: "Passed"
Value Expresion: $F{count_passed}.doubleValue
Label Expresion: $F{count_passed_porcent}.toString() + "%"

- Agregar Serie
Key Expresion: "Failed"
Value Expresion: $F{count_failed}.doubleValue
Label Expresion: $F{count_failed_porcent}.toString() + "%"

Sabiendo que count_passed y count_failed son el total de la consulta por BD, y _porcent es el calculo del porcentaje en base al total de registros [(tot_passed * sum_passed_failed) / 100]

Responder
avatar
Anónimo
AUTOR
29 de marzo de 2017, 6:18 delete

Eso es lo que quería hacer.

Muchas gracias por tu ayuda!

Responder
avatar
Anónimo
AUTOR
6 de abril de 2017, 3:30 delete

Buenas, me gustaría hacer un grafico de barras(stacked bar) que me devuelva:

pasados: 34
fallidos: 22
bloqueados: 12

Me podrías indicar como se haría? es decir la query devuelve la suma de cada uno de esos elementos, pero no se como introducirlo en lenguaje del ireport para que lo devuelva...
Muchas gracias ante todo!

Responder
avatar
Unknown
AUTOR
18 de mayo de 2017, 13:04 delete

Hola! tengo un problema, Yo tengo un gráfico pastel en un subreporte, al agregarlo al reporte principal me muestra correctamente las etiquetas de los porcentajes. Pero cuando ya lo agrego al proyecto no me muestra las etiquetas. Todo se muestra excepto las etiquetas.
Alguna idea que me guíe?
Gracias

Responder
avatar
27 de abril de 2018, 11:15 delete

Revisa el comentario anterior, creo que encontrarás la respuesta... Saludos!

Responder
avatar

Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión